Как использовать rvm в сценариях оболочки

можно загрузить rvm в оболочку script. может ли кто-нибудь привести его пример. когда я попробую оболочку script. Я использую систему ubuntu

#!/bin/bash
rvm use 1.9.3

это дает мне ошибку

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

Ответ 1

Вы можете просто включить rvm в свой script, выполнив:

source ~/.rvm/scripts/rvm

тогда rvm должен быть доступен для вашего script,

Ответ 2

для простое выполнение команды с управляемым RVM Ruby (или системным Ruby):

rvm 1.9.3 exec camper_van

это предполагает, что rvm use 1.9.3 и gem install camper_van произошло ранее, что обеспечивает camper_van исполняемый

ПРИМЕЧАНИЕ. Ожидается, что RVM будет загружен уже, что обычно для скриптов, запущенных под вашим пользователем (RVM is not a function, selecting rubies with 'rvm use ...' подтверждает его там уже).

Ответ 3

# Load RVM into a shell session *as a function*
# Loading RVM *as a function* is mandatory
# so that we can use 'rvm use <specific version>'
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"
  echo "using user install $HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"
  echo "using root install /usr/local/rvm/scripts/rvm"
else
  echo "ERROR: An RVM installation was not found.\n"
fi