Объяснение папок с мусором rubygems и PATH
Oh.В вашем rvm ruby не было установлено rails, но вы сделали это в системном ruby.
Отдельные гемы, такие как rails
, могут иметь каталог bin
, который будет содержать исполняемые вспомогательные скрипты.Ваш системный rubygems по умолчанию создает символические ссылки из вашей системы / usr / bin / dir в папку gem bin
для этих вспомогательных исполняемых файлов.
RVM предоставляет аналогичное средство, за исключением того, что вместо загрязнения системы / usr / bindir, он просто добавляет свою папку ~/.rvm/gems/#{rvm_gemset_string}/bin
в переменную окружения PATH.
Импорт списка системных Rubygems в каталоги ваших новых rvm Ruby '
RVM по умолчанию не будет импортировать ваши драгоценные камни из вашей системной установки ruby в ваши установки rvm ruby.Он делает полный чистый форк всей системы ruby, включая rubygems (гем 'rubygems') и список гемов rubygems.Когда вы rvm install 1.9.2
, как будто вы сделали совершенно новую установку всего, что использовалось с ruby.
Если вы хотите, чтобы все ваши системные рубиновые гемы, которые вы ранее использовали, в предпочитаемый rvm ruby,попробуйте это:
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 bin в вашемПеременная bash echo $PATH
, поэтому она находит системную установку rails (/ usr / bin / rails, скрипт ruby), которая начинается следующим образом:
#! /usr/bin/ruby18
Вы должны сделатьконфликт прекращается, лучший из всех возможных способов - убедиться, что bin dir RVM находится в начале вашей PATH.Это происходит в сценарии #Load rvm environment
, который вы добавили в ~/.bash_profile
при установке rvm.Если вы установили rvm как системную библиотеку, а не только для своего пользователя, это будет отличаться.
Если вы дойдете до этого случая, спросите @ Telemachus.
Затем вам нужно будет убедиться, чтовы установили драгоценный камень rails в ваш новый rvm ruby, как указано выше.
Приемочный тест:
Вы обнаружите это, когда закончите rvm use 1.9.2
тогда which ruby
вернет что-то вроде ~/.rvm/rubies/1.9.2/bin/ruby
, а which rails
должно вернуть что-то вроде ~/.rvm/gems/*/bin/rails
.