Re: just a friendly request

"Lucas C. Villa Real" <[email protected]>
Newsgroups gmane.linux.distributions.gobo.general
Message-ID <CAAvzgtYrKBv75Cc5+Rv-+-36_W0Nq9oPDA7NPnXfQYCFcR+62w@mail.gmail.com>
Greetings,

I have been wanting for a while to make an announcement that directly
relates to your question, but didn't do it yet because first I wanted to
release a new version of the kernel recipe so that users could test this
new feature. Anyhow, let me explain to you how it works.

In GoboLinux, each program's dependencies are listed under
/Programs/AppName/AppVersion/Resources/Dependencies. That file has a syntax
that looks like this:

  DepName1
  DepName2 Version
  DepName3 >= Version
  DepName4 >= Version1, <= Version2

In the first line, we're simply stating that DepName1 must be present in
the system. In the second, we know for sure that the program will work if
the system has that particular Version of DepName2 installed. The third and
fourth lines state that as long as a particular range of dependencies are
installed, the program will do all right. We have a parser for the
Dependencies file that identifies which version of installed
libraries/programs match the requirements.

Having this background in mind, there's a new GoboLinux tool called Runner.
Runner uses that Dependencies parser to figure out which packages are
needed for a specific program. It then creates a private namespace for that
program (cloning the current namespace) and creates an overlay mount on top
of that namespace containing links to all returned dependencies' entries at
/Programs. Using the same example as above, when you invoke 'Runner
program_name', you will end up with a virtual /System/Index/lib that looks
like this:

/System/Index/lib (usual contents)
+ /Programs/DepName/Current/lib
+ /Programs/DepName2/Version/lib
+ /Programs/DepName3/Version
+ /Programs/DepName4/Some_version_between_1_and_2

Of course, /lib, /usr/lib, and /usr/local/lib are all symlinks to
/System/Index/lib, so the private namespace will be reflected on these
paths too.

The way I see it, the approach used by Runner is more elegant than
modulefiles and LD_LIBRARY_PATH tweaks, as the shell environment of the
caller does not need to be changed. It is also possible to run programs
whose dependencies are completely detached (or disabled) from
/System/Index/lib.

Runner needs at least Linux 4.0.0 to run, as it depends on the overlay
filesystem. I should release a new recipe for that kernel in the coming
days so that users can try it out and report their findings. The source
code for the tool is on github at https://github.com/gobolinux/Scripts.

Lucas

On Tue, Feb 16, 2016 at 4:06 AM, Tutun Das <[email protected]> wrote:

> Can anyone tell me how gobo linux manages multiple versions of libraries
> so that every application runs with correct versions of their required
> libraries? and if it would be helpful to use modulefiles?
>
> On Tue, Jan 26, 2016 at 7:27 PM, kenneth marken <[email protected]>
> wrote:
>
>> On 26. jan. 2016 14:51, Liam Proven wrote:
>>
>>> If that is too much for you, then start with Arch Linux:
>>>
>>> https://www.archlinux.org/
>>>
>>> Gentoo seems more appropriate given context.
>>
>> https://gentoo.org/
>> _______________________________________________
>> gobolinux-users mailing list
>> [email protected]
>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
>>
>
>
> _______________________________________________
> gobolinux-users mailing list
> [email protected]
> http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
>
>


-- 
Lucas
"If you're looking for a reason I've a reason to give: pleasure, little
treasure"

_______________________________________________
gobolinux-users mailing list
[email protected]
http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.