RVM загружается первым в $PATH

Я работаю над тем, чтобы внести свой вклад в CocoaPods и, как часть этого, я добавил свой каталог для разработки bin к моему $PATH, Я сделал это, изменив мой .zshrc файл:

export PATH=/Users/ash/Desktop/Rainforest/CocoaPods/bin:$PATH

И я ожидал, что все будет работать. Но когда я пытаюсь вызвать pod Команда, я получаю сообщение об ошибке, которое указывает на то, что он пытается загрузить драгоценный камень из другого места.

pod
/Users/ash/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 120 total gem(s) (Gem::LoadError)
from /Users/ash/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec'
from /Users/ash/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /Users/ash/.rvm/gems/ruby-2.1.2/bin/pod:22:in `<main>'
from /Users/ash/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
from /Users/ash/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'

Хмм. Так что я echo $PATH чтобы увидеть, что случилось:

echo $PATH
/Users/ash/.rvm/gems/ruby-2.1.2/bin:/Users/ash/.rvm/gems/ruby-2.1.2@global/bin:/Users/ash/.rvm/rubies/ruby-2.1.2/bin:/usr/local/heroku/bin:/Users/ash/Desktop/Rainforest/CocoaPods/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/MacGPG2/bin:/usr/texbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/ash/.rvm/bin

И перед каталогом, который я добавил, есть куча RVM-материалов, хотя в .zshrc, .profile или даже такие вещи, как .bashrc чтобы указать, что происходит.

Я пытался просмотреть все различные файлы, которые могут изменить $PATH переменная, без удачи. Кажется, что кто-то еще имеет эту проблему, но это связано с перехватчиками git pre-commit, которых у меня нет. Есть идеи?

4 ответа

Решение

Вы ожидаете вашего дополнительного пути к $PATH до того, как RVM добавляет свои собственные пути. Вы должны переместить свой путь после того, как любая настройка rvm сделана в ваших конфигах ZSH. Где-то вы найдете что-то вроде следующего:

source "$HOME/.rvm/scripts/rvm"

Вы должны выполнять свои действия после этого, а не до.

source "$HOME/.rvm/scripts/rvm"
export PATH=/Users/ash/Desktop/Rainforest/CocoaPods/bin:$PATH

Если вы используете OS X (и, возможно, Linux), вы можете изменить /etc/paths файл, чтобы явно установить, что в $PATH,

~$ cat /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
~$

Похоже, это должно работать для Zsh. https://github.com/Homebrew/homebrew/issues/25407

Простой обходной путь - не решение вашей реальной проблемы, с которой я не могу вам помочь, поскольку я не использую RVM, - это удаление драгоценных камней из вашей установки RVM, чтобы ваша оболочка больше не находила мусорное ведро в любом другом месте. из этих мест RVM.

Вы можете отключить рубин RVM для вашей работы с CocoaPods:

rvm use system

чтобы вернуться к rvm контролируемому ruby:

rvm use ruby
Другие вопросы по тегам