I use aptitude as my package manager. Very often packages suggest some other packages.

xfce4 suggests xfce4-themes for example.

That makes sense.

But very often there are suggestions where I don't know why this is suggested. How does it help me? What are the implications?

eg. i3 package suggests things like libpoe-perl or libio-async-perl. Okay I can inspect the information about those packages too, but very often I'm not more knowledgeable about how those libraries help i3 in doing anything. If there is something in i3 that relies on them, why are they only suggested and not mandatory?

Is there a standard way of getting information about the collaboration of the package I'm installing and its suggested packages?


First about getting information about the packages. You can search the package name on the site launchpad.net to search for the functionality of some package is you are interested. For your reference, the following link is for the package you have mentioned:

libpoe_perl on launchpad

Similarly all packages have such details.

Second, for the question of suggestion, recommendation. This comes from the origins of Ubuntu i.e. Debian. The Debian FAQ (Debian FAQ on dependencies, etc...) gives details as following. (probably these principles come as such in Ubuntu.)

The Debian package system has a range of package "dependencies" which are designed to indicate (in a single flag) the level at which Program A can operate independently of the existence of Program B on a given system:

Package A depends on Package B if B absolutely must be installed in order to run A. In some cases, A depends not only on B, but on a version of B. In this case, the version dependency is usually a lower limit, in the sense that A depends on any version of B more recent than some specified version.

Package A recommends Package B, if the package maintainer judges that most users would not want A without also having the functionality provided by B.

Package A suggests Package B if B contains files that are related to (and usually enhance) the functionality of A.

Package A conflicts with Package B when A will not operate if B is installed on the system. Most often, conflicts are cases where A contains files which are an improvement over those in B. "Conflicts" are often combined with "replaces".

Package A replaces Package B when files installed by B are removed and (in some cases) over-written by files in A.

Package A breaks Package B when both packages cannot be simultaneously configured in a system. The package management system will refuse to install one if the other one is already installed and configured in the system.

Package A provides Package B when all of the files and functionality of B are incorporated into A. This mechanism provides a way for users with constrained disk space to get only that part of package A which they really need.

Usually for suggested packages, the package developer/maintainer judges (probably based on statistics of usage and added features ) that most users would not want some package A without also having the functionality provided by some package B. In such cases suggested packages show up.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.