RVM在ZSH中不起作用


96

我想在Mac上试用ZSH shell,但是我也做了很多Ruby和Rails开发,所以我也相当多地使用RVM。问题是我似乎无法使RVM在ZSH中工作,并且在默认的Bash shell中可以正常工作:

> zsh
> rvm 1.9.2
> ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
> which ruby
/usr/bin/ruby

我可以肯定地确认已安装RVM,以及RVM下的ruby 1.9.2;我一直在Bash中使用它。rvm list有趣的是,在ZSH中运行会显示以下内容:

rvm rubies

   ruby-1.8.7-p302 [ x86_64 ]
=> ruby-1.9.2-p0 [ x86_64 ]

我的iMac和MacBook Pro都在发生这种情况。我在两者上都使用OS X 10.6.6,在iMac上使用ZSH 4.3.9(在笔记本电脑上为4.3.10)。还没有像oh-my-zsh这样的幻想。

我尝试查看RVM 网站上的文档,但没有任何帮助。

Answers:


275

〜/ .zshrc中是否有此行?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

2
哈哈哈,完全忘了那个简单的事情。现在,我因为不早点来这里而固执。谢谢 :)。
swilliams

6
别客气。它有时会发生:)我做了一个有用的事情,以保持原来的设置:〜/ .zshrc中的“ source〜/ .profile”和“ source〜/ .bash_profile”。这也使我的.zshrc更加干净。
intellidiot 2011年

3
我发现当我使用oh-my-zsh定制zsh时,它向.zshrc添加了一堆从我现有的shell中获取的路径-包括rvm在bash下添加的路径。
卢克·查德威克

1
我也花了很[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"长时间试图弄清楚这一点,因为该行在我的.zlogin中,但是我想在我的Mac(10.7.3,哦,我的zsh)上打开新的终端窗口时,它没有使用它。将它添加到.zshrc也对我有用,但是根据此stackoverflow注释,.zshrc是放置此错误的地方?
夫饼

5
另外,请确保$ HOME / .rvm / bin的路径位于/ usr / bin之前,否则,您可能会调用OS X随附的Ruby可执行文件。您可以通过在ZSH中键入“ where ruby​​”来检查优先级。 。
易腐的戴夫

22

注意:2014年3月:

对于最新的RVM,以下行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

不再需要,它也不应该在您的中~/.zshrc

使用ZshRVM文档中更新了文档

确保在“ iTerm2首选项”中:“ 登录外壳”选项已设置(不使用“命令”选项)。这是RVM运行所必需的。

如果仍在iTerm上获取rvm不是函数错误,请尝试:

rvm get stable --auto-dotfiles

至少在我的Arch Linux安装中,xterm不使用登录shell,因此即使运行该命令,rvm似乎也没有正确设置。
ioquatix 2014年

5

注意2014年11月

rvm安装说明警告说,设置PATH时.zshrc不包含$ PATH,因此替换PATH的内容而不考虑PATH中已经存在的内容。

为了解决这个问题我现在追加 PATH有.rvm/bin,然后前插 $PATH,在设定的开始PATH第二行:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

export PATH=$PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/mysql/bin:/opt/local/bin"

1

我遇到了同样的问题,我在“ ruby​​ on rails”安装后解决了这个问题:

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc

source ~/.zshrc

0

我使用zsh,并具有[[-s“ $ HOME / .rvm / scripts / rvm”]] &&。我的.zshrc文件中的“ $ HOME / .rvm / scripts / rvm”,但出现解析错误:404。

当我将该行移到.profile文件时,错误停止了。似乎它与我的.zshrc文件中的内容冲突,并且也许在.profile中运行它可以避免.zshrc文件不兼容。我没能力

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.