Я 12.04 LTS и занимаюсь разработкой Ruby on Rails. Когда я запускаю свой терминал и набираю ruby -v
, он перечисляет мой Ruby как 1.8.7. Когда я набираю /bin/bash --login
, то ruby -v
перечисляет его как 2.0.0, что я хочу для запуска rails 4.0. Проблема в том, что мне нужно вводить /bin/bash --login
каждый раз, когда я запускаю свой терминал. Есть ли способ, которым я могу автоматически войти в /bin/bash
при открытии своего терминала?
Теперь вам не нужно снова запускать / bin / bash --login.
Решение, которое работает для меня, это добавить следующую строку в ваш файл .bashrc
:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
Технически, RVM загружается в ваш сеанс оболочки как функция. Если вы используете Bash в качестве оболочки, эта интеграция выполняется с помощью файла конфигурации .bash_profile
. Как вы, возможно, знаете, существуют различные «типы» сеансов оболочки, а именно: оболочек входа в систему , интерактивных оболочек и неинтерактивных оболочек. В зависимости от того, какой из ваших сеансов bash задействован, могут быть задействованы разные конфигурационные файлы. Файл конфигурации .bash_profile
, который обрабатывает интеграцию RVM, включен в сеансы оболочки входа, но не в «просто» интерактивные или неинтерактивные сеансы оболочки. Для более подробной информации, вы можете прочитать в документах RVM .
Поэтому вам нужно убедиться, что при запуске вашего терминала сеанс оболочки запускается как сеанс оболочки входа в систему. Вероятно, есть настройка с вашим эмулятором терминала для этого С помощью команды /bin/bash --login
, которую вы использовали до этого, вы ничего не делаете, кроме как запускаете еще один сеанс оболочки внутри вашего сеанса оболочки, но этот как оболочка входа в систему.
Вы, вероятно, установили Ruby менеджером пакетов (apt-get
) в дополнение к установке его через RVM. Поэтому, когда RVM не интегрирован в ваш сеанс оболочки, у вас остается «системный Ruby». Вот почему вы как бы «отступаете» к Ruby 1.8.7.