[Distutils] How we can get rid of eggs for 2.6 and beyond
Tres Seaver
tseaver at palladion.com
Mon Mar 24 23:12:59 CET 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Martin v. Löwis wrote:
>>> Sure, but what is precisely the semantics of uninstallation, in
>>> terms of changes to the system state?
>>>
>>> I think any model where uninstallation is merely the removal
>>> of files is too limited to be practical.
>> The distutils only support the *addition* of files, so I'm not sure
>> how only removing files is a limit here. Could you explain?
>
> For files, yes, it only supports addition. But it supports
> arbitrary other actions, such as:
> - addition of registry keys
> - addition of user accounts
> - creation of database tables in a relational database
> - updating the shared library loader path
> - creation and start of a system service
> - integration of documentation into info
> - registration of DTDs with the system catalog
> - ...
>
> It's turing-complete, and it has full interface to the operating
> system, so installation of a distutils package can do *much*
> more than merely installing files.
Which is exactly what is wrong with distutils: turing completeness in
an installer is an *anti* goal, from the perspective of manageability.
I'd be willing to bet that if you asked system packagers to list the
dozen or so packages which they *hate* to maintain, the large majority
of each list would be packages which acutally use the full power of
distutils.
(Note: I'm aware that people believe it to be necessary to munge the
Windows registry when installing Python packages; I just don't agree
with the practice, and don't think we should distort Python's process to
coddle it).
> Uninstallation needs to revert anything installation did,
> so it is often more than mere removal of files.
Practically speacking, nobody but the author of the TC-abusing setup.py
is *ever* going to be able to do this, and most of them won't get the
edge cases right. Maybe we can just punt on such packages, and make a
tool which actually works for the huge majority of distributions which
don't need to do more than install files.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD4DBQFH6Cdr+gerLs4ltQ4RAlFzAJi3gs8fzb9o8/Dtct1G9P0EJxNSAKCc7V7m
uT5MgTzltBDhdrgoNxt8nA==
=zgqI
-----END PGP SIGNATURE-----
More information about the Distutils-SIG
mailing list