Wie installiere ich die letzte stabile Version von Ruby mit RVM ohne Root-Rechte?

Wie installiere ich die letzte stabile Version von Ruby mit RVM ohne Root-Rechte?

Ich erstelle ein Bash-Skript, um die letzte stabile Version von Ruby automatisch ohne Root-Rechte zu installieren. Das habe ich bisher:

#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

Ich muss die letzte stabile Ruby-Version finden, um RUBY_VERSIONVariablen festzulegen.

Antwort1

Vorausgesetzt, die letzte stabile Version ist immer die letzte Datei mit einem Dateinamen wie ruby-2.5.1.tar.gzaufhttps://cache.ruby-lang.org/pub/ruby/können Sie die Versionsnummer wie folgt extrahieren:

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

Dieser Ansatz verwendetcurl Installieren Sie curlzum Abrufen der Dateiliste undGNUsed Installieren Sie seddie Versionsnummer auszuschneiden, wie indiese SO-AntwortSie können auch grepmit verwendenUmschauungenstattdessen kann es sogar etwas schneller sein:

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

RUBY_VERSIONFügen Sie Ihrem Skript einfach eine Zeile hinzu, die die Variable festlegt :

#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

Beispielausführung

$ 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

verwandte Informationen