gnu-system-discuss
[Top][All Lists]
Advanced

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

Re: Package format/management ramblingss


From: Soeren D. Schulze
Subject: Re: Package format/management ramblingss
Date: Wed, 28 Jul 2004 15:20:09 +0200

Hello,

I would like to tell you just my opinion about package management. It exceeds the topic a bit, but it is a part of the main problem I am going to deal with.

I did not know who to reply exactly, so I am just writing to the list ...

Translators on /bin and /sbin directories are a good idea, which could be pursued some further.
It would enable some *very* interesting features:

Currently, the file to execute entering a command is determinded by PATH, which is already nice because it enables users to have their local installations of programs. Nevertheless, not all programs are smart enough to work properly in a foreign environment. dpkg is, for example, not smart enough to install anything in a non-/ environment in the ``regular'' way (we need debootstrap for this). But even if it was, the problem of conflicting configuration files would occur. Of course well-written programs support user-specific configuration files, but they just set the limit from 1 to 2 configuration files. I know people who use two user accounts just because they have two e-mail accounts but their program supports only one. It is the same problem if you have a (physically :) portable computer and work in two separate networks with it and need independent configurations but do not want to install a new system for each environment. Yet another problem are conflicting versions. In Debian, for example, two different installations normally conflict. As a compromise, unstable development versions, for example, are provided as separate packages. Every problem of this kind is solvable, but a solution does not exist in all cases; so a *general* system-wide and program-independent solution would be desirable.

What I now suggest is a step away from a directory tree that represents the physical harddisk with its partitions and their filesystems, as UNIX, Linux and finally the Hurd aim to do anyway. But I do not just say ``directory tree != filesystem'', I say ``system != environment''.
What that means:
A general solution of the mentioned problems would require a feature quite close to symlinks, but far more intelligent:

1. Symlinks handle directories just as files; an intelligent solution would ``merge'' directories: If you have, for example, the file foo in a/ and the file bar in b/ and merge these directories, you have the files foo and bar in the virtual directory. 2. Also desirable would be the feature of ``preferring'' symlinks, which especially becomes interesting with the feature of directory merging: You can link two or more files on one, where you can specify the file to ``prefer'', which is actually accessed. If you have the file foo respectively in a/ and b/ and prefer a/, you get the file foo in a/ when you access foo in the virtual directory. The other files could be handled as a kind of file versions. A question would be the behavior if you do not have access to a file you prefer.

The more important question would be the technical realization. A server could do the job, but it would be probably slow. If we ever write a special FS for the Hurd, we should include this feature.

You could, as every user else on your system, act in a kind of chroot environment and compose your own user-specific directory tree! You could, as an administrator, have as many environments as you want running at the same time; if your programs conflict -- no matter, just prefer one. You could have different configurations without replacing the rest of the system.
Now you recognize the need of a dependency handling system:

1. A package manager would have to manage the chaos that exists on the filesystem. 2. Something deep in the system would have to control your preferences not to conflict (combining the shared data of foo-10.0-beta with foo- 5.0-stable and libfoo-4.1 would cause trouble ...). This could be a kind of file attributes, but it would be more elegant having a special place in the filesystem, if we hack a new one.

Well, those are just visions, so please comment them as such.

Soeren Schulze



reply via email to

[Prev in Thread] Current Thread [Next in Thread]