EDIT: For the avoidance doubt, this question is not about how to get a list of files that a package installs, as in the suggested duplicate.
Is there a standard way to find out the purpose of a package, that is detailed enough that you can work out what you will get from the package and whether or not it is something that you want?
I'll give a couple of examples to explain what I mean. The first, postgresql-contrib
, is what lead me to ask this question. I've come across various installation instructions for PostgreSQL that tell you to install this package in addition to postgresql
, without explaining why in any meaningful way (example 1, example 2).
apt-cache show postgresql-contrib
only gives me a vague and general description:
additional facilities for PostgreSQL (supported version) This metapackage always depends on the currently supported PostgreSQL database contrib package.
PostgreSQL is a fully featured object-relational database management system. It supports a large part of the SQL standard and is designed to be extensible by users in many aspects. Some of the features are: ACID transactions, foreign keys, views, sequences, subqueries, triggers, user- defined types and functions, outer joins, multiversion concurrency control. Graphical user interfaces and bindings for many programming languages are available as well.
What I'm after is a proper description of what additional facilities I get if I install this package.
Another example is libreoffice-templates
, where apt-cache show
doesn't provide any useful information about what you'd actually get:
Additional set of templates for LibreOffice
Additional set of templates for:
- LibreOffice Calc spreadsheets
- LibreOffice Writer texts
- LibreOffice Impress presentations
Is there a standard way of getting more detailed information than apt-cache show
gives?
Let's focus on the first example: postgresql-contrib
The keyword here is that it is a metapackage. You will find many instances of metapackages in the repository. By itself, metapackages don't really contain anything, so there is nothing to document except what package it points to. If you look at the info provided by
apt-cache show postgresql-contrib
again, you'll notice there is a line there that shows:The actual documentation you need to look at is contained in this package. The following is the result of
apt-cache show postgresql-contrib-9.5
:You will notice that the documentation for the actual package is way more detailed.
From a general user's perspective, who just come to know a package name, his/her primary source of information on what this does is checking
apt-cache show
command. I always do so. This is the definitive and official way to discover a package's intent. Just like theman
command to know about a command.However, it is not the only way. Of course there are many other way to know about a package. But those aren't a cookbook style guide to follow. What usually I do is checking the homepage of the package description. I use synaptic package manage and there is a link for each package description. This should land you to the home page of the package or the (debian package) maintainer's page.
I also use https://packages.ubuntu.com to see the content and find other related links to the package. You can go to the launchpad page from it and then you can find the upstream/original developer's link. If still unsure, you can contact the mailing list, ask a question or even the developers. You can check the filelist and see what that package contains and then use some searching to find what they do.
For example, When I used
postgresql-contrib
package in the packages.ubuntu.com, I've found this file list. Now, it's just a goggle search to check what those commands do. For example, searching forpg_archivecleanup
yields this result in google. You should get a very good general sense about the purpose of the package from there. Another very good way to know about that command is usingman
, but if the package isn't installed yet, then you may need to use http://manpages.ubuntu.com/ instead.There may have other ways to find a package's purpose. Most of the people in Linux world follow this rather path. Having being said, if you're asking if there is a definitive way beyond
apt-cache show
orapt show
, then I'd say No. A debian package's description was supposed to be the official and first source of a package's purpose.