Если вы поместите исходную строку RVM в ваш bashrc (чтобы гарантировать, что неинтерактивные оболочки имеют доступ к RVM), вам потребуется исходный код .bashrc из вашего .bash_profile со следующими последними строками в вашем.bash_profile
if [ -f "$HOME/.bashrc" ]; then
source $HOME/.bashrc
fi
Это предполагает, что у вас есть
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
в вашем $ HOME / .bashrc.Это хороший способ убедиться, что как интерактивные, так и неинтерактивные оболочки могут правильно находить и загружать RVM.Многопользовательские установки выполняют то же самое с помощью файла /etc/profile.d/rvm.sh.
После этого у вас не должно возникнуть проблем при определении Ruby по умолчанию для использования через
rvm 1.9.2 --default
или
rvm use 1.9.2@mygemset --default
Лучше определить набор гемов по умолчанию для использования, чтобы не загрязнять ваши гемсеты «по умолчанию» или «глобальные».
Если вы используете неинтерактивные оболочкиимейте в виду, что они обычно работают в режиме SH-совместимости, который затем требует, чтобы вы установили
BASH_ENV="$HOME/.bashrc"
в вашем $ HOME / .profile, чтобы загрузить RVM, или установить это непосредственно в вашем скрипте.Причина этого заключается в том, что когда bash работает в режиме SH, он не загружает напрямую .bash_profile или .bashrc, поскольку SH не использует эти файлы, и bash пытается имитировать процесс загрузки и выполнения оболочки SH.