[Distutils] Re: PEP 262: Database of Installed Python Packages

Mark W. Alexander slash@dotnetslash.net
Tue Apr 9 11:28:03 2002


Nicolas Chauvat asked:
> >My last question: why should we have package management system
> >"internal" to a Python installation. Isn't it the role of the
> >distro to handle packages and should't we focus on helping out the
> >existing distro tools deal with Python extensions instead?

Then Andrew asked:
> What do we do for people on systems without packaging systems such
> as DPKG or RPM?  

I did a bdist_pkgtool for Solaris and a bdist_sdux for HP. The
advantage that distutils gives me is that I can get a module and run
setup.py for each architecture. After that, everything is native for
whatever package system the OS uses. All python packages show up when
I list installed packages through the native package manager
interface. IIRC, the bdist_wininst is the same. Once installed,
packages on Windows show up in Add/Remove programs just like any other
installed component.

I think this is the way it should be. We don't want to create another
layer for admins to manage python packages. For example, if I didn't
use native packages on Solaris and HP, but did on Linux, in order to
automagically maintain an inventory of installed software on all
machines, I'd have to "know" that on certain OS'es to query both the
native package manager and the distutils DB. This places an extra
burden on administrators should they chose (or be coerced) to support
python package users on their systems.

If distutils is to help drive the growth of Python to other OS'es,
then it needs to make package installation and maintence _exactly_ the
same for any other packages on those OS'es. The way to do that is to
grow the number of bdist commands until it equals the number of native
package managers. By focusing on bdist commands, we don't have to
have an "internal" python package management system, and we don't have
to deal with non-Python oriented admins that don't care to deal with
another way of installing and managing packages. ("Please install this
package" is much more likely to be granted than "Can you build this
binary for me?")

mwa