This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Uninstall
- To: steveo at world dot std dot com
- Subject: Re: Uninstall
- From: Per Bothner <bothner at cygnus dot com>
- Date: Thu, 12 Nov 1998 20:33:02 -0800
- cc: egcs at cygnus dot com
> Not to sound effete, but I don't think that tar.gz packaging is intended
> to support an uninstall operation. What does make sense is some sort of
> package manager, like maybe, oh, RPM!?!
I think you are mixing two (or three) different things:
(1) The installed package data base;
(2) A file format used to distribute and install packages (usually
pre-compiled binaries), such as .rpm (for RedHat) and .deb (Debian);
(3) A program that manages (1) and (2) (rpm for RedHat and dpkg for Debian).
While for a *user* (and application distributors) it is most useful
to standardize on (1), from our point of view, it may be more
critical to standardize on (1).
It seems to me that installing a binary package should have
the same effect as 'configure && make && make install'.
If you want to be able to install a package installed from source,
it seems to me it should be using the same package database
as rpm or deb packages use.
However, note that packages installed using a package manager
normally install into /usr. However, a GNU source package by
default install into /usr/local, but may be installed elsewhere
(such as /usr) depending on the --prefix configuration setting.
That says that the locacation of the package database should be
somewhere underneath $prefix (or $exec_prefix).
Conclusion:
* There should be a standard package database format.
The format can be extensible, but it must support at least
"unstall PACKAGE_NAME". It should also support querying to
see which files belong to which package and vice versa.
* The location of the package database depends on the $exec_prefix
used to configure each package. In other words, there is a
separate package database for each $exec_prefix.
For discussion, assume this is $exce_prefix/lib/packages.
* 'make install' should should update the package database in
$exec_prefix/lib/packages/PACKAGE_NAME, such that a later call
to "unstall PACKAGE_NAME" will cleanly remove it.
* Binary package managers (such as RedHat's rpm, Debian's dpkg)
should use the same package database, which for normal system
installs would be /usr/lib/packages.
Now we just need a volunteer to study the RedHat and Debian
package database formats (at least), come up with a design that
fits both systems' needs, and then sell it to RedHat, Debian,
Slackware, SuSe, ... and the appropriate Linux standards-setting
groups ... (The critical people to get on board are Debian, as
most affiliated with GNU, and RedHat, as the most visible Linux
distributor. Plus of course the FSF (i.e Stallman), since we are
talking about extending a new GNU standard.)
> Is it maybe appropriate to propose that RPM be more widely used than just
> for RedHat distributions?
It is ...
--Per Bothner
Cygnus Solutions bothner@cygnus.com http://www.cygnus.com/~bothner