It started as an effort to keep a minimal install, but as my desktop use has progressed, at 992 packages, my install is now hardly minimal.
perl-modules) gives a good example of a codependency.
Here is a comment from a debian bug discussion which explains things somewhat
The co-dependency between perl and perl-modules is required as these
are fundamentally one package, split only into arch any/all parts.
Modules within perl use modules within perl-modules and vice-versa.
Python does not use this codependencies approach, but does have a package structure that also requires a bit of understanding when you first see it.
Python (python and python-minimal), seem to be instead, set and subset, with the latter intended on being enough to support the initial install process, whilst not taking too much space on install media.
These decisions are understandable when you remember that install media has a fixed size.
( This bartering, is perhaps similar to when you move house and have to discuss what goes where in the fixed size Ford Transit Luton/U-Haul )
Python diagram (with a particular leaning towards my install packages):
It is possible to install python 2.6 to python 3.1 in Squeeze, they are just not the default. There is not much relying on python 3.1 just now, except maybe if you wanted to beta test the latest Blender.
(Aside: you will find
libpython3.1in Squeeze but there is no python 2.5 equivalent)
Note: All version numbers checked in June 2010 which is likely 6 months or more ahead of Squeeze actual release. Version numbers are subject to change and may not be entirely accurate at and beyond Squeeze final release
Package circular dependencies:
tcpd, on a server, are examples as illustrated by the diagram below:
When I look at installed packages on servers, I see
tcpdand think...how did that get there.
The answer, of course, is that I have
openssh-serverinstalled, and, hopefully the diagram illustrates the rest.
I use the term 'circular dependencies' very loosely in this posting, as the term 'circular dependency', it could be argued, more properly applies where both packages strictly depend on each other.
Package confusing dependencies:
gaminis supposed to be a drop in replacement for
I use the Thunar file browser and this diagram shows some interesting dependencies:
seahorse-pluginsis something I also use on the desktop and I found it useful to include it in the diagram.
libgamin0to be a drop in replacement for
libfam0, there would have to be changes to both of the vfs packages shown, so that either of libgamin0 or libfam0 could be used.
libgamin0are also codependencies (as it appears today in aptitude), but the thing that is confusing to me is how I could possibly install gamin.
My thoughts are that if I try to install
libgamin0then it will break dependencies higher up :(
There must be slightly more to it than I thought, because although I received a dpkg complaint, when replacing
libgamin0, my system seems to be working without it wanting to remove