每次我打开一个终端,我的Ruby版本是错误的。 我不得不用手下面的命令来执行:
source /usr/local/rvm/scripts/rvm
我读了RVM不修改.bashrc或者.bash_profile中,但我注意到,我的.bashrc有结尾:
PATH=$PATH:$HOME/.rvm/bin
不仅我没有这个插入自己,但路径RVM是错误的! 我改变方式:
PATH=$PATH:/usr/local/rvm/bin
我重新打开一个终端,但Ruby的版本永远是错的!
RVM并修改你的.bash_profile / .bashrc中 - 这是它的一个弱点。 特别是,它增加了(假定添加)这一行来加载RVM作为壳功能:
# Load RVM into a shell session as a function
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
我有一个类似的问题与错误的红宝石版本甚至跑步后,我在RVM改变了全球默认 - 确保这条线是在我的.bash_profile的固定它的结束。 在任何情况下,该行应该是有RVM的正常工作。
您可以使.rvmrc
在应用程序的根目录下的文件。
它运行什么是内部在打开根直接,所以我觉得你可以复制这个
PATH=$PATH:/usr/local/rvm/bin
而事情应该是不错的。 你会得到一个警告,但它是安全的忽略(或已经在我的经验)。 我想你可能会更好与此去,我已经发现有助于保持红宝石/ gemsets直跨应用程序。
#.rvmrc
rvm [ruby]@[gemset] #for example rvm 2.0.0-p247@my_gemset
为什么gemsets /红宝石在第一位获得切换/复位,我真的不知道,这是烦人,但是这似乎解决它。
阅读更多在这里
根据你的设置它不能被加载有几个原因。
例如,当你打开一个shell(取决于OS分配)的bash文件的读取以不同的顺序,这里虽然是标准的样子:(我相信Ubuntu是略有不同,所以你可能要检查,如果这就是你的发行版) 。
# for interactive login shells (when you login to a terminal)
/etc/profile
/home/<user>/.bash_profile
/home/<user>/.bash_login # if there is no .bash_profile
/home/<user>/.profile # if there is no .bash_login
# for interactive non-login shells (i.e. opening up a new tab)
/etc/bash.bashrc
/home/<user>/.bashrc
会发生什么事,你直接采购你的.bashrc? 是否然后找到RVM? 如果是这样,那么它只是确保你的.bash_profile来源的.bashrc又名的问题:
# in .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
如果这不是原因,你可以潜入RVM文档或切换到rbenv恕我直言,这是一个更简单的解决方案。
RVM应自动处理这个但是这个代码是错误的。
PATH=$PATH:/usr/local/rvm/bin
RVM的路径应该是第一个。 你其实是想你的bash行事。 因为你告诉你的壳里做这样它采用“全系统”红宝石第一。 此更改为:
PATH=/usr/local/rvm/bin:$PATH
那么source ~/.bashrc
,也将努力按照您的意愿,呼吁rvm
红宝石,当你登录。