[Distutils] [Python-Dev] How we can get rid of eggs for 2.6 and beyond
ext Phillip J. Eby
pje at telecommunity.com
Fri Mar 21 20:02:25 CET 2008
At 11:21 AM 3/21/2008 -0500, skip at pobox.com wrote:
> Joachim> I think, the uninstall should _not_ 'rm -rf' but only 'rm' the
> Joachim> files (and 'rmdir' directories, but not recursively) that it
> Joachim> created, and that have not been modified in the meantime (after
> Joachim> the installation).
>That's not sufficient. Suppose file C (e.g. /usr/local/etc/mime.types) is
>in both packages A and B.
> Install A - this will create C
> Install B - this might overwrite C, saving a copy, or it might retain
> A's copy.
> Uninstall B - this has to know that C is used by A and not touch it
Correct. However, in practice, B should not touch C, unless the file
is shared between them.
This is a key issue for support of namespace packages, at least if we
want to avoid using .pth files. (Which is what setuptools-built
system packages do for namespace packages currently.)
Of course, one possible solution is for both A and B to depend on a
"virtual package" that contains C, such that both A and B can install
it if it's not there, and list it in their dependencies. But this is
one of the handful of open issues that needs to be resolved with Real
Life Package Management people, such as Debian, Fedora, etc.
Neither overwriting, refusing to install, nor backups will properly
address this issue. However, this is properly a topic for the
Distutils-SIG or whatever SIG the actual spec goes to. On Python-Dev
I'm only looking for a go/no-go on the overall approach.
Python-Dev mailing list
Python-Dev at python.org
More information about the Distutils-SIG