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