Объяснение папок rubygems bin и PATH
Ой. У вас не было рельсов, установленных в вашем rvm ruby, но вы установили их в своей системе ruby.
Отдельные драгоценные камни, такие как rails
, могут иметь каталог bin
, который будет содержать исполняемые вспомогательные сценарии. Ваша система rubygems по умолчанию создает символические ссылки из вашей системы /usr/bin/ dir в папку bin
гема для этих вспомогательных исполняемых файлов.
RVM предоставляет аналогичную возможность, за исключением того, что вместо того, чтобы загрязнять системный каталог /usr/bin, он просто добавляет свою папку ~/.rvm/gems/#{rvm_gemset_string}/bin
к переменной окружения PATH.
Импорт системного списка Rubygems в ваши новые каталоги драгоценных камней rvm rubies
RVM по умолчанию не будет импортировать ваши драгоценные камни из вашей системной установки ruby в ваши установки rvm ruby. Он делает полную чистую вилку всей системы ruby, включая rubygems (драгоценный камень «rubygems») и список драгоценных камней rubygems. Когда вы rvm install 1.9.2
как будто вы сделали совершенно новую установку всего, что использовалось с ruby.
Если вы хотите получить все системные рубиновые драгоценные камни, которые вы ранее использовали, в свой предпочтительный рубиновый rvm, попробуйте следующее:
rvm use system
rvm gemset export system.gems
rvm use 1.9.2
rvm gemset import system.gems
#You'll now have all your system gems reinstalled to your new ruby version
Исходный ответ/редактирование от @Telemachus
Попробуйте переместить строки с исходным кодом rvm в конец вашего ~/.bash_profile
или ~/.bashrc
(в зависимости от того, что у вас есть):
'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function'
.
bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file ...
| | ^--------------------------------\
^ Bash, not rvm; ^/usr/bin/rails, not ~/.rvm/gems/*/bin/rails; |
Some ruby leftover from a previous install in the os
У вас есть рельсы, установленные в /usr/bin
, что, вероятно, находится перед путем rvm ruby bin в вашей переменной bash echo $PATH
, поэтому он находит установку системных рельсов (/usr/bin/rails, скрипт ruby), которая начинается так:
#! /usr/bin/ruby18
Вы должны остановить конфликт, лучший из всех возможных способов - убедиться, что каталог bin RVM находится в начале вашего PATH. Это происходит в скрипте #Load rvm environment
, который вы добавили в свой ~/.bash_profile
при установке rvm. Если вы установили rvm как системную библиотеку, а не только для своего пользователя, все будет по-другому.
Если вы доберетесь до этого случая, спросите @Telemachus.
Затем вам нужно убедиться, что вы установили гем рельсов в свой новый rvm ruby, как указано выше.
Приемочный тест:
Вы обнаружите, что когда вы сделали rvm use 1.9.2
, тогда which ruby
вернет что-то вроде ~/.rvm/rubies/1.9.2/bin/ruby
, а which rails
должно вернуть что-то вроде ~/.rvm/gems/*/bin/rails
.
person
Tim Snowhite
schedule
17.06.2011
rvm info
в свой вопрос, отредактировав его. - person the Tin Man   schedule 17.06.2011rvm
не устанавливает автоматическиrails
. После того, как вы установите конкретный интерпретатор Ruby, вам нужно установить для этого интерпретатора любые драгоценные камни (включаяrails
). Проблема, кажется, в том, что вы установили 1.9.2 и установили его по умолчанию, но никогда не устанавливалиrails
для этого интерпретатора. - person Telemachus   schedule 17.06.2011