Is there just one version of every library and program in Gentoo's repos?
GentooThis forum is for the discussion of Gentoo Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Is there just one version of every library and program in Gentoo's repos?
Like compared to Arch, where there's just one version of every little thingy in repos. And if that new version gets screwed up by developers, you have to wait until they patch it or go to Arch Rollback Machine and look for previous version which might not work with some very recent app you updated on Arch. All that is bleeding edge making updating your system very unstable, as we all very well know.
Recently I read some comment on other website where dude was saying that in Gentoo apps can be compiled with several versions of one lib. As I understood it, app “A” can depend on lib “L” and A v1.5 can be compiled and work with L v2.8.7, L v2.8.8, L v2.8.9, L v2.9.5... whereas Arch most of the times needs only L v2.8.7 for A v1.5. Is it correct?
In Gentoo you can have multiple versions, called "slots", of programs/libraries.
Example:
If I look at the php-package...
===============
>>> eix dev-lang/php
[U] dev-lang/php
Available versions:
(5.3) 5.3.23 ~5.3.24
(5.4) 5.4.13 ~5.4.14
(5.5) ~5.5.0_beta4
===============
...I see that there are currently 3 slots available: one for the PHP version 5.3.x, one for 5.4.x and one for 5.5.x. . The minor versions of each slot can be upgraded individually.
In the case of PHP I can then choose which version should be used for what...
===============
>>> eselect php list
!!! Error: Please chose one of the following modules: cli apache2 fpm cgi
exiting
>>> eselect php list apache2
[1] php5.3 *
[2] php5.4
===============
...and in this case I see that for the apache webserver I am using version 5.3 and will switch to 5.4 only once the webpages I'm using are compatible with 5.4.
Similar is when dealing with other programs or libraries. But keep in mind that there aren't a lot of progs/libs that use the slot mechanism - usually only the big or important ones.
And in any case it can always happen that something doesn't work anymore because some library has dropped a slot or if it just didn't support it, it has just upgraded. In this case in Gentoo you'll have to run the utility "revdep-rebuild -i", which will go through the executables, identify which libraries every single one wants to use, check if that library still exists and if not, it will reinstall (recompile) that package against the new library. Something like this... .
It is true that there's a slotting mechanism that will allow you to have several versions of a given package installed alongside. However, note that:
not all packages have slots, there must be a good reason for it to happen
not all packages would support this, at least, not without heavy patchingg
Besides that, not all breakages are due to a new version breaking the API, it can be just the ABI, and in that case, just recompiling the broken app against the new version will automatically fix it. The problem with binary distros is that you have to wait for the developers to recompile and package it, in Gentoo you just run revdep-rebuild after a system-update and go make some tea.
The good thing about slots is that an application can depend on a concrete slot of another package. Of course, if you feel a given app or lib should be slotted you can always request ir at bugs.gentoo.org
In Gentoo you can have multiple versions, called "slots", of programs/libraries.
When Gnome Shell came out, in Gentoo you had Gnome 2 and Gnome 3 both available for installation, you were free to choose. Is this the case of “slots”?
Probably gnome 3 arrived in overlays, not even in portage. So I can't be sure.
Right now, it doesn't seem to be slotted, and I don't think that would be easy to achieve, since upstream has been following a linear upgrade path. Not all the gnome components have upgraded the same, and you can easily find 2.x packages from some components in current gnome 3 installs.
The gtk+ library IS slotted though, of that I am sure. You can have 1.x, 2.x and 3.x installed alongside without any problem.
Not really. I guess it's more like no one has caren enough to do it...
As said, I am no specialist in gnome, but I don't think it would require rocket science to slot the package set that conform a gnome desktop. Things like nautilus, gnome-session and gnome-panel/gnome-shell, which define whether you are using 2.x or 3.x, along with their respective dependencies.
I would ask in the Gentoo own forums, maybe some gnome user in there has some idea. Maybe there's some overlay that will allow that... but, gnome 2 is on its way out anyway...
There's a way to overcome the limitation of slots though. You can always build a chroot and compile a different version of gnome in there. It will run with no overhead, practically, as long as it's the same arch. But that's slightly non-trivial
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.