LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Gentoo
User Name
Password
Gentoo This forum is for the discussion of Gentoo Linux.

Notices


Reply
  Search this Thread
Old 05-01-2013, 08:17 AM   #1
Mr. Alex
Senior Member
 
Registered: May 2010
Distribution: No more Linux. Done with it.
Posts: 1,238

Rep: Reputation: Disabled
Question 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?

Last edited by Mr. Alex; 05-02-2013 at 12:05 PM.
 
Old 05-01-2013, 12:50 PM   #2
Pearlseattle
Member
 
Registered: Aug 2007
Location: Zurich, Switzerland
Distribution: Gentoo
Posts: 999

Rep: Reputation: 142Reputation: 142
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... .
 
1 members found this post helpful.
Old 05-02-2013, 08:03 AM   #3
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,083

Rep: Reputation: 405Reputation: 405Reputation: 405Reputation: 405Reputation: 405
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
 
1 members found this post helpful.
Old 05-04-2013, 04:57 PM   #4
Mr. Alex
Senior Member
 
Registered: May 2010
Distribution: No more Linux. Done with it.
Posts: 1,238

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by Pearlseattle View Post
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”?
 
Old 05-05-2013, 02:32 AM   #5
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,083

Rep: Reputation: 405Reputation: 405Reputation: 405Reputation: 405Reputation: 405
I am not a gnome user, so I really don't know.

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.

Code:
[I] x11-libs/gtk+
     Available versions:  
        (1)     1.2.10-r12
        (2)     2.24.16 2.24.17
        (3)     3.2.4-r1 3.4.4 ~3.6.2 ~3.6.3-r1 ~3.6.3-r2 [M]~3.8.0 [M]~3.8.1
        {{X aqua colord cups debug egl examples +introspection linguas_az linguas_ca linguas_cs linguas_da linguas_de linguas_el linguas_es linguas_et linguas_eu linguas_fi linguas_fr linguas_ga linguas_gl linguas_hr linguas_hu linguas_it linguas_ja linguas_ko linguas_lt linguas_nl linguas_nn linguas_no linguas_pl linguas_pt linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sr linguas_sv linguas_tr linguas_uk linguas_vi nls packagekit test vim-syntax wayland xinerama}}
     Installed versions:  2.24.17(2)(00:33:35 25/04/13)(cups introspection -aqua -debug -examples -test -vim-syntax -xinerama) 3.4.4(3)(00:38:45 03/05/13)(X cups introspection -aqua -colord -debug -examples -packagekit -test -vim-syntax -wayland -xinerama)
     Homepage:            http://www.gtk.org/
     Description:         Gimp ToolKit +
 
Old 05-05-2013, 09:28 AM   #6
Mr. Alex
Senior Member
 
Registered: May 2010
Distribution: No more Linux. Done with it.
Posts: 1,238

Original Poster
Rep: Reputation: Disabled
Yeah, that's pretty twisted. Thanks.
 
Old 05-05-2013, 10:18 AM   #7
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,083

Rep: Reputation: 405Reputation: 405Reputation: 405Reputation: 405Reputation: 405
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...
 
1 members found this post helpful.
Old 05-05-2013, 12:07 PM   #8
Pearlseattle
Member
 
Registered: Aug 2007
Location: Zurich, Switzerland
Distribution: Gentoo
Posts: 999

Rep: Reputation: 142Reputation: 142
From what I understand currently the Gnome WM is not slotted, but both old (2.x) and new (3.x) versions are available for installation:

Code:
* gnome-base/gnome
     Available versions:  (2.0) 2.32.1-r2 ~3.6.2 [M]~3.8.0
	{{accessibility +bluetooth (+)cdr cups dvdr +extras +fallback ldap mono policykit}}
     Homepage:            http://www.gnome.org/
     Description:         Meta package for GNOME 3, merge this package to install
Version 3.6.2 is still masked but you can unmask it by writing "=gnome-base/gnome-3.6.2" into the file "/etc/portage/package.keywords".

This means that you won't be able to switch on-the-fly between the two versions, but you can choose which version to use.
 
1 members found this post helpful.
Old 05-06-2013, 02:10 AM   #9
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,083

Rep: Reputation: 405Reputation: 405Reputation: 405Reputation: 405Reputation: 405
Yes.

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
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Do Gentoo developers patch programs before move 'em to repos? Mr. Alex Linux - Distributions 3 03-29-2012 09:12 PM
[SOLVED] is it possible to effectively use of repos from newer version of the same system? froff Ubuntu 13 12-22-2011 05:51 PM
run a program with a specific library version plottygat Linux - Software 2 09-19-2011 11:48 PM
How to install an older version not in the repos? czamora Linux - Server 9 04-13-2008 05:46 PM
Find out program version on gentoo aeruzcar Linux - Software 3 09-30-2005 10:34 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Gentoo

All times are GMT -5. The time now is 11:07 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration