Я хочу установить последнюю стабильную версию Ruby, доступную с rbenv. Эта функция won't be happening в самом rbenv.Установить последнюю стабильную версию Ruby Использование rbenv
Когда я запускаю команду rbenv install -l
в своей оболочке, я получаю длинный список доступных версий. Список имеет все типы записей. Ниже приведен неполный список, чтобы продемонстрировать формат и разнообразие:
$ rbenv install -l
Available versions:
2.0.0-p643
2.0.0-p645
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
2.1.4
2.1.5
2.1.6
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.2.1
2.2.2
2.3.0-dev
jruby-1.7.19
jruby-1.7.20
jruby-9.0.0.0-dev
jruby-9.0.0.0+graal-dev
jruby-9.0.0.0.pre1
jruby-9.0.0.0.pre2
maglev-1.0.0
maglev-1.1.0-dev
maglev-2.0.0-dev
mruby-dev
mruby-1.0.0
mruby-1.1.0
rbx-2.5.2
rbx-2.5.3
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
Моя цель заключается в автоматизации команды rbenv install VERSION
в сценарий оболочки, где VERSION
является самым высоким x.x.x
релиз. Другими словами, мне нужно автоматически подставить самую высокую запись в списке, которая начинается с числа и не заканчивается -something
в VERSION
. Из этого списка мне нужно 2.2.2
.
Что я могу добавить в свой сценарий оболочки, чтобы автоматически выбрать самую высокую версию x.x.x
в команде rbenv install x.x.x
?
Редактировать: Поскольку Ruby еще не установлен, решение должно быть в Bash, а не в Ruby.
Редактировать 2: Я хочу версию MRI (mainstream) Ruby.
Мне кажется, вам просто нужен последний в списке, который начинается с числа (поскольку вы, по-видимому, хотите МРТ), и не имеет 'pre',' dev' или 'rC#' в своем имени). Что-то вроде этого будет работать: 'lines.reverse_each.find {| версия | version = ~/^ \ d/&& version! ~/pre | dev | rc \ d /} ' –
(я не могу гарантировать, что это всегда будет работать, но, возможно, это поможет вам начать работу. Если вам интересно как Ruby-build сортирует список, вы можете увидеть его здесь: https://github.com/sstephenson/ruby-build/blob/master/bin/ruby-build#L1012) –
Спасибо @Jordan за комментарии. Мне нужно, чтобы результат был в Bash, хотя Ruby еще не установлен. Алгоритм сортировки замечателен, спасибо, указав его. –