得到“警告!在执行rvm使用2.0.0时,PATH没有正确设置 - 默认

问题描述 投票:98回答:14

以上不是第一次工作,第二次工作。

尝试将ruby版本设置为2.0.0以用于任何新的shell窗口。

$ rvm use 2.0.0 --default

Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/
bin' is not at first place,
         usually this is caused by shell initialization files - check them for '
PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --au
to-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247

然后做同样的事情

$ rvm use 2.0.0 --default

现在没有错误,即

$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$ 

但新窗口仍然给我ruby 1.9.3,而不是2.0.0

我的.bashrc文件包含在其中:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"

我的.bash_profile有:

source ~/.profile
case $- in *i*) . ~/.bashrc;; esac

rvm get stable

似乎工作,但在很多绿色输出结束时显示:

Could not update RVM, get some help at #rvm IRC channel at freenode servers.

rvm list rubies的新终端窗口显示:

$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'.

rvm rubies

=> ruby-1.9.3-p125 [ x86_64 ]
   ruby-1.9.3-p194 [ x86_64 ]
 * ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
ruby bash rvm ruby-2.0 .bash-profile
14个回答
163
投票

答案是这样说:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
# Load RVM into a shell session *as a function*

**我的.bashrc文件的BOTTOM **(最后一行 - 重要!)。我在我的.bash_profile文件中(我在Ubuntu上)并且只有部分工作导致了令人困惑的错误。


2
投票

我发现这个命令非常有用。它解决了我的情况。因此,如果有人遇到同样的问题,请尝试一下:rvm get stable --auto-dotfiles


1
投票

rvm install ruby-head 为我解决了这个问题 - 耗费时间很少但却做到了。不确定是否对我的bash文件进行了任何未经发布的更新。


0
投票

我最终删除了~/.profile~/.bashrc~/.zshrc

基本上我只在我的mac上保留~/.bash_profile。它有效。

我想在我的情况下,有:

export PATH="$PATH:$HOME/.rvm/bin"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

在这些文件中,那些重复设置混淆了rvm


0
投票

它在评论前2个重复行并在底部添加它们之后起作用。不要忘记重新启动终端以使其工作。

#[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
#[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

0
投票

你可以加

rvm_silence_path_mismatch_check_flag=1

到你的~/.rvmrc文件。这就是现在警告信息所暗示的内容。


-2
投票

我解决了这个问题。尝试使用这样的命令:

rvm use 2.0.0-p353

ADD -p353或其他你的版本细节到行尾


159
投票

在我卸载了rvm之后我被困住了

rvm implode

然后重新安装rvm后收到相同的错误消息。在浏览了wayne seguin的git hub页面之后。他在他的页面上列出了工具并建议使用

rvm reset 

安装后。这修复了我的错误信息。无需编辑PATH。


24
投票

也许这不是解决这个问题的最佳方法,但我在.zshrc的底部添加了这一行(它也适用于.bashrc!)

export PATH="$GEM_HOME/bin:$PATH"

22
投票

我尝试了迈克尔·达兰特的解决方案,它对我没用。但我跑了rvm get stable --auto-dotfiles,它开始按照需要工作。

希望能帮助到你


8
投票

这不是问题的答案,而是大多数评论者/响应者提出的相关问题 - 为什么需要将rvm行放在shell rc文件的底部?

答案很简单。

  1. 加载的rvm代码将rvm ruby​​二进制目录放在$PATH的“前端”,并且
  2. .bashrc(或默认shell的等效项)从上到下逐行读取和解释。

想象一下以下场景:

$ echo $PATH
  /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
  /Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

$ export PATH=<something>:$PATH
$ echo $PATH
  <something>:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

显然,如果在RVM行之后的shell init文件中存在某些内容并对$ PATH进行任何更改,更具体地说,如果它将目录添加到$PATH,那么这些更改将把rvm添加的目录从第一个位置推下来。 RVM在被调用时会发现它的ruby二进制目录不在$PATH和BAM的最开头!你会得到警告:)。

我希望能让事情变得清晰。


5
投票

我有一个后续问题(希望我可以简单地添加评论 - 但我没有足够的学分)。我有同样的问题 - 当我按照使用--auto-dotfiles建议的rvm脚本时,我遇到了麻烦,因为它以某种方式删除了我的.bashrc_profile文件。

无论如何,我最终得到了上面列出的相同答案,将这一行放在.bashrc文件的底部。 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

您是否碰巧找到了为什么它的工作方式,而不是.bashrc文件中间的行?你是否清楚Unix加载环境变量的方式,使得RVM在一个实例中工作而在另一个实例中不工作?


5
投票

只是添加我的经验:如果你正在使用.bash_profile,检查.bashrc是否没有干扰。在这种情况下,.bashrc杀死.bash_profile支持单个Bash配置。


5
投票

我面临同样的问题。我发现在bashrc文件中

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

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

rvm的多个条目。我评论了一个条目及其工作正常。

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

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

3
投票

我从.zshrc中的PATH =行中清除了包含.rvm的所有内容

这解决了我的问题,其他答案在这里(采购rvm脚本,或通过自动dotfiles稳定)没有。

© www.soinside.com 2019 - 2024. All rights reserved.