Gentoo Archives: gentoo-user

From: Hans de Graaff <graaff@g.o>
To: gentoo-user@l.g.o
Subject: [gentoo-user] Re: Routine update wants to install 3 version of Ruby + 50 others
Date: Wed, 11 Dec 2013 08:00:46
Message-Id: 2thlna-ok3.ln1@graaff.xs4all.nl
In Reply to: Re: [gentoo-user] Re: Routine update wants to install 3 version of Ruby + 50 others by Michael Orlitzky
1 On Tue, 10 Dec 2013 11:06:19 -0500, Michael Orlitzky wrote:
2
3 > On 12/10/2013 10:19 AM, Grant Edwards wrote:
4 >>
5 >> I understand that portage defaults to installing multiple versions (of
6 >> Ruby, Python, and probably other stuff). What I don't understand it
7 >> _why_. If none of the ebuilds specify q version, then they presumably
8 >> will work with any availble version -- so why not just install one
9 >> version?
10 >>
11 > So why is the RUBY_TARGETS default the way it is? I can't speak for the
12 > Ruby team, but it was most likely chosen as the upgrade path that causes
13 > the least pain. It's not perfect, as you've seen, but different parts of
14 > the Ruby ecosystem move at a different pace, and you have to make them
15 > all place nice.
16
17 I can speak for the ruby team :-) We have RUBY_TARGETS="ruby18 ruby19"
18 as the default because ruby18 used to be the default and recommended ruby
19 and now ruby19 is. By adding both we can make the transformation mostly
20 seamless. So why is ruby18 *still* there? Because, if we remove it, you
21 must do an 'emerge --changed-use' run to forcefully uninstall all the
22 ruby18 code. This is similar to the recent python3_2 to python3_3
23 transition. I'm not a big fan of that approach, so instead we hoped to be
24 able to just mask ruby18 given that it is no longer supported and just
25 make it go away quietly, like we did with ree18 (Ruby Enterprise Edition).
26
27 If people here indicate that running 'emerge --changed-use' is no big
28 deal and I'm making a mountain out of a molehill then we can reconsider
29 that approach. We'll face the same situation soon with ruby19 and ruby20,
30 so knowing what people prefer is helpful.
31
32 > During a transition period like this, various upstreams release a bunch
33 > of crap with circular or conflicting dependencies that happen to work on
34 > their machines because nobody is using a real package manager. The fact
35 > that it works as well as it does is a miracle. If you don't want all
36 > three versions of Ruby on your machine, try setting e.g.
37 > RUBY_TARGETS="ruby19". It probably won't work, but that's because some
38 > package has troublesome dependencies, not because we're handling it
39 > wrong.
40
41 It should work (I have some machines with that setting). Two things to
42 keep in mind: you are now off the default settings, so you will need to
43 manage new ruby targets yourself. You will also still get the ruby20 core
44 installed for the moment due to weird dependency issues with some
45 packages. This will get rectified when we add ruby20 to the default
46 RUBY_TARGETS.
47
48 If you want just a single RUBY_TARGET then right now ruby19 is the one to
49 use, judging by this graph: http://moving-innovations.com/~graaff/
50 targets.svg
51
52 Hans

Replies