Как установить в последний раз стабильную версию Ruby с RVM без полномочий пользователя root?

Я создаю сценарий удара для установки автоматически последней стабильной версии рубина без полномочий пользователя root. Это - то, что я имею до сих пор:

#Install GPG Keys
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import

#Install RVM
curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

#Set environment
source $HOME/.rvm/scripts/rvm

#Install Ruby
rvm install $RUBY_VERSION

Я должен найти, что последняя стабильная версия Ruby устанавливает RUBY_VERSION переменная.

0
задан 6 June 2018 в 13:07

1 ответ

Принятие последней стабильной версии всегда является последним файлом с именем файла как ruby-2.5.1.tar.gz на https://cache.ruby-lang.org/pub/ruby/, можно извлечь номер версии с:

curl -s https://cache.ruby-lang.org/pub/ruby/ | sed -nr '1h;1!H;$!d;x;s/.*ruby-([0-9.]+).tar.gz.*/\1/p'

Этот подход использование curl Install curl получать список файлов и GNU sed Install sed для включения номера версии, как объяснено в этом ТАК отвечают. Вы могли также использовать grep с lookarounds вместо этого, это даже может быть немного быстрее:

curl -s https://cache.ruby-lang.org/pub/ruby/ | grep -oP '(?<=ruby-)\d\.\d\.\d(?=.tar.gz)' | tail -1

Просто добавьте строку, устанавливающую RUBY_VERSION переменная к Вашему сценарию:

#Get version number of latest stable Ruby version
RUBY_VERSION=$(curl -s https://cache.ruby-lang.org/pub/ruby/ | sed -nr '1h;1!H;$!d;x;s/.*ruby-([0-9.]+).tar.gz.*/\1/p')

#Install Ruby
rvm install $RUBY_VERSION

Пример выполняется

$ curl -s https://cache.ruby-lang.org/pub/ruby/ | sed -nr '1h;1!H;$!d;x;s/.*ruby-([0-9.]+).tar.gz.*/\1/p'
2.5.1
$ curl -s https://cache.ruby-lang.org/pub/ruby/ | grep -oP '(?<=ruby-)\d\.\d\.\d(?=.tar.gz)' | tail -1
2.5.1
0
ответ дан 29 October 2019 в 04:20

Другие вопросы по тегам:

Похожие вопросы: