正确的Ruby版本时打开终端(the correct Ruby version when openi

2019-10-18 21:43发布

每次我打开一个终端,我的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的版本永远是错的!

Answer 1:

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的正常工作。



Answer 2:

您可以使.rvmrc在应用程序的根目录下的文件。

它运行什么是内部在打开根直接,所以我觉得你可以复制这个

PATH=$PATH:/usr/local/rvm/bin

而事情应该是不错的。 你会得到一个警告,但它是安全的忽略(或已经在我的经验)。 我想你可能会更好与此去,我已经发现有助于保持红宝石/ gemsets直跨应用程序。

#.rvmrc
rvm [ruby]@[gemset] #for example rvm 2.0.0-p247@my_gemset

为什么gemsets /红宝石在第一位获得切换/复位,我真的不知道,这是烦人,但是这似乎解决它。

阅读更多在这里



Answer 3:

根据你的设置它不能被加载有几个原因。

例如,当你打开一个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恕我直言,这是一个更简单的解决方案。



Answer 4:

RVM应自动处理这个但是这个代码是错误的。

PATH=$PATH:/usr/local/rvm/bin

RVM的路径应该是第一个。 你其实是你的bash行事。 因为你告诉你的壳里做这样它采用“全系统”红宝石第一。 此更改为:

PATH=/usr/local/rvm/bin:$PATH

那么source ~/.bashrc ,也将努力按照您的意愿,呼吁rvm红宝石,当你登录。



文章来源: the correct Ruby version when opening a terminal