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 |