[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What do you wish for in an package manager?



Craig Sanders <cas@taz.net.au> writes:

> On Sun, Dec 24, 2000 at 08:41:43PM +0000, Mark Seaborn wrote:

> > I want a system where I can install multiple versions of a library
> > (or any package really) and say which version I want each program
> > on the system to use, possibly on a per-user basis.  The present
> > system is a disaster waiting to happen: If I install a package
> > from unstable, it often wants to replace my version of libc from
> > stable with one from unstable.  If this new libc is broken it
> > could bring down the whole system, when what I really want to
> > happen is for the new package to use the unstable libc and
> > everything else carry on using the stable libc.
> 
> this is the risk you take when you use unstable. if that risk is too
> great for you, then stick to the stable release.

Of course.  I know this.  It is repeated many times on this mailing
list.  But it does not have to be so.  Why should upgrading package X
affect unrelated package Y?  If one user wants to use packages from
stable, and another user wants to live on the bleeding edge, why
should they have to move to different computers?

Sure, you could set up a chroot environment for one of the users, but
this effectively is the same as using separate machines, and removes
many of the advantages of sharing a machine (eg. communication between
the two users, and saving disc space by sharing files).


> it's a small - tiny, even - risk, but it's there.  deal with it.
> 
> the amount of effort and bloat required to implement this idea for
> the handful of people who would find any use at all for it just
> isn't worth it. it's a gross violation of the KISS principle and
> would greatly increase the complexity of systems administration.

I strongly disagree.  I think it's a matter of finding the right
abstractions to make the problem appear simple.


> when i upgrade a package, i want it to replace the previous version
> - i don't want to keep the last n versions around just on the
> off-chance i might have some use for them (e.g. the last 10 versions
> of libc6 or the last 10 versions of xbooks would waste an enormous
> amount of disk space).

That's fine; an advanced package manager would let you express this
preference, and would let more cautious people express their
preferences (as well as allowing different preferences for critical
packages like libc6 and non-critical packages like xbooks).


> if i really need more than one version of a library installed, i can
> compile it in /usr/local and set LD_PRELOAD appropriately.

For LD_PRELOAD to work I have to somehow get it into the environments
of every program that will start programs that I want to use the new
library version.  This is particularly difficult for running programs
(eg. the GNOME panel).

Also LD_PRELOAD only works for C libraries.

A better solution might be what Plan 9 does:  Each process can have a
different view of the filesystem.  So you can map different libraries
into the filesystem of each process if you want, but leave the rest
unchanged.  This ought to be doable on the Hurd.

-- 
         Mark Seaborn
   - mseaborn@bigfoot.com - http://members.xoom.com/mseaborn/ -

         ``I owe a lot to my parents, especially my mother and
                  my father'' -- Greg Norman



Reply to: