How do I manually uninstall setuptools (installed by egg)?

Nick Craig-Wood nick at craig-wood.com
Fri Dec 12 11:30:54 EST 2008


David Cournapeau <cournape at gmail.com> wrote:
>  On Thu, Dec 11, 2008 at 10:30 PM, Nick Craig-Wood <nick at craig-wood.com> wrote:
> > David Cournapeau <cournape at gmail.com> wrote:
> >>  On Wed, Dec 10, 2008 at 12:04 PM, Chris Rebert <clp at rebertia.com> wrote:
> >> > On Tue, Dec 9, 2008 at 6:49 PM,  <excord80 at gmail.com> wrote:
> >> >> On Ubuntu, I accidentally manually installed setuptools
> >> >> http://pypi.python.org/pypi/setuptools/0.6c9 (by running the .egg file
> >> >> as a shell script via sudo), and now realize I should just be using
> >> >> apt to take care of my system Python packages.
> >> >
> >> > Really, why? setuptools has more Python packages/programs available
> >> > and updates faster than Debian.
> >> > It's also likely that some of the Debian Python packages are installed
> >> > using setuptools anyway.
> >> > So, why do you think apt and not setuptools is The Right Way(tm)?
> >>
> >>  Setuptools is certainly not the right way to install packages
> >>  system-wide on debian, it is very likely to break the whole thing.
> >
> > It wouldn't be too difficult to make a .deb target which would collect
> > all the files that did get installed into a package.  It would be a
> > rather rough and ready package but would do the job.
> 
>  Depends what you mean by would do the job: rather rough certainly does
>  not mean "would do the job" for something as essential as a package
>  IMO.

Essentially a package has files in it in a fixed possition in the
filesystem.  The package manager's (dpkg at this level) job is to keep
track of those file and tell you about conflicts.

You can use alien to turn a tar.gz into a perfectly usable debian
package.  It won't have dependencies, or help or any of the other
things a package needs to be a proper package, but it satisfies my
basic needs that all software is installed as packages, so it can be
uninstalled cleanly.

> > The .deb would then be uninstallable in the usual (dpkg --purge) way.
> >
> > Did anyone think about that?
> 
>  Yes, there is stddeb which does that (make a .deb package from a
>  setuptools package).

Cool, I've not seen that before.  Probably because it isn't in debian!

> > easy_install can do that I think...
> 
>  Not without a lot of hoola, unfortunately; for example, it breaks
>  stow, so I have to use specialy scripts to circumvent the damn thing
>  and make it what I tell him to do. I never understood what's easy
>  about easy install: it is broken in so many ways, and has caused me so
>  many pains - even when I was not using - that I do not trust it at
>  all. I only use it to download packages (and even then it manage to
>  fail more than work), and always install them from setup.py afterwards
>  (at which step I of course also have to circumvent setuptools if the
>  package uses setuptools).

;-)

As a mostly linux developer I always install stuff in packages if
possible.

Failing that I'll use bdist_rpm then alien to convert to a deb which
works well enough I find.

However when I have to make my stuff work on Windows, I find
easy_install to be a fantastic timesaver as compared to looking for
the package on a web site, downloading it, unpacking it installing it
and then repeating for all the dependencies.

easy_install is a long way from being a proper package manager though
:-(

I guess it is aiming at the same territory as the cpan installer with
perl.  My experiences with that is that it works very well, but again
splatters untracked files all over your filesystem.  Debian comes with
dh-make-perl which can use CPAN directly to make .debs which works
quite well.  Something similar based on easy_install for python would
be ideal.  It looks like stdeb could become that one day.

-- 
Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick



More information about the Python-list mailing list