Re: just a friendly request

Sergio Tortosa Benedito <[email protected]>
Newsgroups gmane.linux.distributions.gobo.general
Message-ID <CAPiRi8ND5a3hvGg51shbcv765D=8oN7aaivoSNyj7Ob5JWJu_w@mail.gmail.com>
Excuse me, but I'm amazed, really! This awesome. Yet, let me ask how this
differentiates from Limba, and why not take something already made and
something which gobo can share?
El 17/2/2016 2:25, "Lucas C. Villa Real" <[email protected]> escribió:

> On Tue, Feb 16, 2016 at 4:44 PM, kenneth marken <[email protected]>
> wrote:
>
>> On 16. feb. 2016 12:10, Lucas C. Villa Real wrote:
>>
>>> 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
>>>
>>>
>> Inspired by Nix i take it?
>>
>>
> I actually got inspiration from the Limba project and from Hisham's ViewFS.
>
> Lucas
>
> _______________________________________________
> 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
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.