RVM首先加载到$ PATH中

时间:2014-09-10 10:18:23

标签: ruby rvm zsh oh-my-zsh

我正在开发对CocoaPods的贡献,作为其中的一部分,我已将我的开发目录bin添加到我的$PATH。我通过修改.zshrc文件来完成此操作:

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

我希望一切都会奏效。但是当我尝试调用pod命令时,我得到一个错误,似乎表明它正试图从其他地方加载gem。

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变量的所有不同文件,但没有运气。似乎someone else有这个问题,但它与git pre-commit hooks有关,我没有。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

在RVM添加自己的路径之前,您预先等待$PATH的额外路径。在ZSH配置中完成任何rvm设置后,您应该移动路径。您可以在某处找到类似以下内容的内容:

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

您应该在此之后而不是之前执行您的操作。

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

答案 1 :(得分:2)

如果您使用的是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

答案 2 :(得分:1)

一个简单的解决方法 - 不是因为我不使用RVM而无法帮助您的真正问题的解决方案 - 将从您的RVM安装中卸载gem,这样您的shell将无法再找到在任何这些RVM位置中的bin。

答案 3 :(得分:0)

您可以使用CocoaPods禁用RVM ruby​​:

rvm use system

回到rvm控制的红宝石:

rvm use ruby