Re: just a friendly request
Michael Homer <[email protected]>
| Newsgroups | gmane.linux.distributions.gobo.general |
|---|---|
| Message-ID | <CAKXQU_Fn4GE6g_LtqXsoCe_1dU9zvn214vZzrJKxbtn=Yc_5Ag@mail.gmail.com> |
On Wed, Feb 17, 2016 at 2:04 AM, Liam Proven <[email protected]> wrote: > On 16 February 2016 at 07:06, 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? > > > As I understand it, libraries are located inside each program's own > folder tree Dependencies are not duplicated. Newer versions having the same soname will be linked over the top of old ones in the combined tree, but versions with different filenames can all be linked at once. That behaviour is dependent on correct soname versioning, as Kenneth said, and also on the dependent programs knowing their own limitations in linking to a reasonable version. These are almost always reasonable assumptions in practice, but there are still some programs that don't like to conform. Because you can have as many versions in /P/X as you want, you can keep the library versions you need around as long as necessary. You can also keep non-library programs around in multiple versions, and there is an (optional) feature to create versioned links to the executables too in order to keep them all available on request, since those don't usually get different names. Some of the tools, like ChrootCompile, build up chroots matching exactly the specified dependencies and will always have (supposedly) correct versions available. That's what's used for building binary packages, and to test that those specified dependencies are valid. The Runner tool Lucas described uses namespaces to a similar end. modulefiles could in theory be helpful, but in practice most things work and the rest the Runner tool will now deal with. -Michael