[lsb-discuss] Packaging

Fabian Groffen grobian at gentoo.org
Thu Oct 26 14:24:15 PDT 2006

On 26-10-2006 16:05:58 -0400, Michael Sweet wrote:
>      1. System-wide packages that are installed once and shared
>         by all users on the system; this is by far the most
>         prevalent use case for a business or home environment,
>         and is what I recommend to our EPM customers when they
>         developing packages for complex software.
>      2. Local packages that are installed in a user's home
>         directory; you'll see this sometimes for plug-ins and
>         applications like Firefox and OpenOffice, and is useful
>         for trying out a program before installing it system-wide.
>         I see this most on shared systems where the user does not
>         have administrative privileges...
> For #2, a variation of the system-wide install standard might work.
> Locally-installed applications could be placed in a ~/.apps directory
> (which would have the full usr, var, etc. directory structure), and
> RPM could be updated to have a user install mode that set the install
> prefix to the user's home directory (~/.apps or whatever) and use
> both the system-wide and user RPM databases to resolve dependencies.
> Administrators could the find the user-installed packages simply by
> looking at the RPM databases in each home directory, probably with
> assistance from RPM or some other support GUI.  The trickiest part
> would probably be in the applications themselves - they'd need to
> handle being installed in different directories...

If I understand you well, you basically envisage one "package manager"
that can handle multiple "offsets".  The trick is that the package
manager maintains the host OS via the administrator user, and that
normal "unprivileged" users can use the same package manager (and its
tree of package data + maybe local user trees[1]) to install for
- "unstable"/more recent versions of packages not installed in the host
- install packages not installed in the host OS

The location of the user mode offset could be anything, depending from
homedir (might end up in a backup!) to local/central scratch storage,
and ideally the local offset is an addition/override to the packages
installed/provided by the host OS.  Actually, the user offset is the
equivalent of /usr/local/bin which comes first in the user's path.
(At least that's what I assume!)

A package manager that can install into an arbitrary offset, such as [2]
can of course easily handle the offset "/" for the host OS.  It is
questionable to me how much that package manager should "know" about
it's local user offsets:
- should the package manager ever uninstall packages installed by users?
  (i.e. security vulnerability override upgrade of a package by admin)
- should the package manager point out the redundancy/outdatedness of a
  package when the host OS provided package is equal/newer?
You run the risk to break things, upon such actions, hence every update
needs rebuilding dependencies, or updating them too.  I would say it's
the user's risk to keep the local offset up-to-date (or not).

Of course host OS package manager (primary) and local user package manager (secondary) don't have to be the same type/program.

[1] in Gentoo terms: overlays.  These can be handy to have some extra
    patches in a package.
[2] Gentoo's Prefixed Portage.

Fabian Groffen
Gentoo on a different level

More information about the lsb-discuss mailing list