[: Re: [Infrastructures] how to build an internal (local) file structure?]
Ivan Popov
pin@konvalo.org
Wed, 30 Mar 2005 18:46:17 +0200
Hi Rudy,
On Wed, Mar 30, 2005 at 04:42:32PM +0200, Rudy Gevaert wrote:
> I haven't had the time to check konvalo out, I hope to get round to it
> in some time :)
the answers to your questions are there :-)
though it still hardly can be called decent documentation...
Look at
http://www.konvalo.org/?pagename=Main.Structures
> > You will face other issues, like [maintaining different versions of]
> > shared libraries and others.
>
> Hmm, it would indeed involve a lot of work of maintaining all the
> symlinks. How would one handle different distributions?
You don't have to "handle" or depend on the distributions.
Well, "how to start daemons" is different on different systems,
and it needs some interfacing to the system-dependent scripts -
but it is completely separate from placement.
> > > /bin/app1 -> /company/apps/app1_v2/bin.i386/app1
> > > /etc/app1/ -> /company/apps/app1_v2/etc/
> >
> > You don't need/want these links. Seriously.
>
> Why not?
As you do not need them. They are a wrong tool.
> If a user would like to run application app1 then he should
> know the exact location /company/apps/app1_v2/bin.i386/app1
No, it is not needed.
All what is needed: that the application is in the PATH in the environment
of the process which shall execvp() the application (often that process is
a traditional shell, but it does not have to).
> Also changing the symlink to v2 would make sure that users are using
> the latest version.
1. You do not have to have such symlinks in /bin, you can have them
at another, more global place.
2. Some users may prefer the former version. Really. That's why Konvalo
introduced a concept of "milieus".
> I don't understand what you mean with symlink trees. Could you
> explain that for me?
You may use symlinks to populate a certain directory, to be placed in the
PATH for a certain program (like a user shell).
Likewise you can use symlinks to populate some directory by shared libraries.
That way you can easily have different sets of libraries for different programs,
or even for different instances of the same program.
Regards,
--
Ivan