Package management (was: Why is there no platform independent way of clearing a terminal?)

Ben Finney ben+python at
Tue Aug 3 01:38:16 CEST 2010

Mark Lawrence <breamoreboy at> writes:

> How does any user or an admin cope with 500 packages?

Operating systems with good package management come with tools that help
the administrator do this job easily.

Also, operating systems with good package management encourage the
small-pieces-loosely-joined philosophy to apply to packages also: the
packages tend to be smaller and more focussed, and fit together in more
well-defined ways, than those on other OSen.

This isn't automatic, but the support of a good package management
system allows a robust policy to be implemented by the vendor for good
quality packages in the OS.

So “installing 500 packages” is not an unusual nor onerous thing to do
on such an OS. The job of making them all work well together is
delegated upstream, to one's distribution vendor. But the fact that
they're small pieces, loosely joined, means that if any one of them is
causing a problem, it's far more likely that a motivated administrator
can do something about it locally, rather than being at the mercy of the

> Can Python help here, assume an eight hour working day?

Sadly, Python's package management is rather lacking by these standards.
The Distutils legacy assumption of “package recipient, system
administrator, and end user are all the same person”, among other design
decisions, makes it unusually difficult to have the necessary separation
of concerns between OS packaging, system administration, and end user.

There have been great strides in recent years to improve the Distutils
shortcomings (see the Distutils forum archives for the details), but the
changes are in part backward-incompatible, and it will be some time
before Python is on a par with, e.g., Perl in this area.

> So every working day you have 57.6 seconds to use each package.

Your mistaken assumption is that one would use these packages separate
from each other. That's like assuming that the limit of usefulness of
modules in a Python program is how much one can use each of them
separate from all the others.

In both cases, they're not used separately most of the time; they're
used in conjunction, and their distinction is more to enable the people
responsible for maintaining them to do so as distinct pieces when it
makes sense to do so, and as larger aggregate collections when that
makes sense.

OS packages are not only applications. They are any discrete, coherent
“piece” of an operating system; applications usually encompass one or
several packages, and most packages are not applications.

 \       “We must respect the other fellow's religion, but only in the |
  `\       sense and to the extent that we respect his theory that his |
_o__)     wife is beautiful and his children smart.” —Henry L. Mencken |
Ben Finney

More information about the Python-list mailing list