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

Re: user based package manager?



Wim De Smet <kromagg@gmail.com> wrote:
> >Most installed packages will mess $HOME more or less when compiled with
> >--prefix=$HOME. Though, keep the log of `make install' may be used as an
> >removing method if wanted latter.
> >Is there some package manager that can be used for normal user under their
> >home location?
> >By which the software can be cleanly purged and so on.
> >Or some extensions of checkinstall to make an simple one.
> 0install(0install.net) but that's a binary system. Why don't you just
> configure with --prefix=$HOME/myprograms/ or something like that?

  This is where the concept of "opt" comes in (for me, anyways).

  ./configure --prefix=$HOME/opt/anjuta
  ./configure --prefix=$HOME/opt/kismet

  etc... Then I have a "$HOME/bin" directory in my PATH, that I symlink the
binaries I use frequently into.

  I've longed for a "userspace dpkg" type thing as well, which would install
.deb's into my home directory, but unfortuantely in most cases this would be
impossible without rebuilding the package from source each time... and even
then, you'd need a "$HOME/var/lib/dpkg", etc etc etc... Really, there's two
problems that somebody is usually trying to solve here:

  1) Being able to install software as an unprivileged user... having to
compile from source for absolutely everything kind of sucks, but it's about
the best solution we have right now, and if you follow the "opt" convention,
the "packages" are at least easy to "manage"... Of course, if you find
yourself installing dependancies the same way then you end up with crazy
configure lines like

  CPPFLAGS="-I$HOME/opt/foo/include -I$HOME/opt/bar/include"
LDFLAGS="-L$HOME/opt/foo/lib -L$HOME/opt/bar/lib" ./configure
--prefix=$HOME/opt/baz

  etc... of course, this can all be alleviated by setting up symlink
directories for lib and include. And then there's the other problem,

  2) Clean separation of multiple tasks on the same system. For this, I use
cdebootstrap to create a chroot environment (usually something like
"cdebootstrap -f standard etch /var/lib/chroot/task_name
http://127.0.0.1/apt-cacher/ftp.yi.org/debian";), then chroot into there and
set it up like a brand new debian system. Since almost any system I'm
deploying stuff on, I'm root on, this method seems to work well.

  Cheers,
    Tyler



Reply to: