У меня всегда возникают проблемы с установками RVM и неинтерактивными или интерактивными сеансами оболочки. Если сеанс не является интерактивным, я обычно получаю сообщение об ошибке command not found
в различных программах / функциях в цепочке инструментов RVM / Ruby (например, gem
, rvm
, ruby
и т. Д.). Мне известно о трех решениях проблемы:
.bashrc
для каждого пользователя. Изменения зависят от версии Ubuntu bash --login
перед началом работы с RVM, чтобы получить интерактивную оболочку Все эти решения не совсем то, что я ищу, потому что у меня есть несколько хостов с разными версиями Ubuntu, а для некоторых приложений описанные выше решения не работают (т.е. демонизированы Chef комплект управления конфигурацией ). Насколько я мог проследить проблему, это основано на том факте, что сценарии оболочки в /etc/profile.d
запускаются только в том случае, если пользователь входит в сеанс интерактивной оболочки. Похоже, что это не тот случай, если запускается демонизированный процесс или если я или приложение регистрируемся через ssh.
То, что я в основном ищу, - это способ объединения всех видов сеансов оболочки для выполнения сценариев в /etc/profile.d
. В идеале это решение должно работать для всех пользователей, которые могут войти в систему, и для разных версий Ubuntu (используется atm: 10.4, 11.10). Также было бы хорошо, если бы его можно было легко настроить с помощью автоматических сценариев или рецептов шеф-повара.
Как примечание: я не знаю, является ли единственная проблема, с которой я сталкиваюсь, это неиспользуемые сценарии в /etc/profile.d
, я знаю, что выполнение bash --login
обычно решает мои проблемы.
Ваша проблема заключается в том, что gnome-терминал не использует --login
для bash по умолчанию: https://rvm.io/integration/gnome-terminal/
Для сценариев с RVM выберите один из методов, описанных здесь: https://rvm.io/integration/cron/
Более подробная информация о пользовательских rc-файлах здесь: https: // rvm. И.О. / поддержка / вопросы и ответы / # shell_login