[Distutils] Uninstall command, the return

David Cournapeau david at ar.media.kyoto-u.ac.jp
Fri Jan 30 10:28:56 CET 2009


Tarek Ziadé wrote:
> Reading your answer and Chris's, I am now wondering, if we have a
> global uninstall command,
> why we wouldn't have a global install command....
>
> How hard would it be, from your projects, to have the
> install/uninstall feature, on the top
> of today's distutils ? (since the record feature is in distutils)
>
> In other words, is the current "record" feature of distutils would be
> sufficient ?
>   

I can see several things which have a big impact on an uninstall feature
design:
    - how to handle multiple versions of one package ?
    - should it handle dependencies ?
    - should it work for packages installed anywhere, or only for a few
reserved places ?

Only the last point is worth considering at the distutils level - the
two others are specific to setuptools (or more exactly any system on top
of distutils). Once those decisions are made, we can make decision on
how to deal with uninstall.

For example, if uninstalling only packages installed in some blessed
locations is acceptable, the problem of a global registry of some kind
becomes much easier to deal with. If it is not, I don't see much choice
but to put the packages-specific uninstall data in the package itself.
Some people do not like setuptools stubborness about installing things
in some places - I am one of them. But not being able to uninstall
automatically would not bother me too much (actually, I install things
manually so that I can use stow, which provides me an uninstall feature).

I also wonder whether we should add uninstall feature to distutils
itself from a UI POV. Of course, distutils should have some support of
some kind, but the high level stuff could be done by another program, no
? After all, uninstall is NOT the opposite of install - many platforms
let you install things on a per program basis, but then uninstalling is
done in a centralized manner. I noticed that the ruby gems system, which
I don't claim to know, use this system:

http://www.rubygems.org/read/chapter/10#page38

Having a separate program would enable asking questions and co - which
is not something I would be pleased to see in the python setup.py dance,

cheers,

David


More information about the Distutils-SIG mailing list