루트 권한 없이 마지막 안정 버전의 Ruby를 자동으로 설치하는 bash 스크립트를 만들고 있습니다. 이것이 내가 지금까지 가지고 있는 것입니다:
#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
.
답변1
ruby-2.5.1.tar.gz
마지막 안정 버전은 항상 on 과 같은 파일 이름을 가진 마지막 파일이라고 가정합니다 .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
파일 목록을 검색하고암소 비슷한 일종의 영양sed
설명된 대로 버전 번호를 잘라내려면이 SO 답변. 당신은 또한 사용할 수 grep
있습니다둘러보기대신 약간 더 빠를 수도 있습니다.
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