在执行 rvm use 2.0.0时获得“警告! PATH 未正确设置”——缺省值

以上第一次不起作用,第二次起作用。

对于任何新的 shell 窗口,尝试将 ruby version 设置为2.0.0。

做什么

$ 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

我的 .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
77656 次浏览

答案是这样的:

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

* * at the BOTTOM * * (最后一行-重要!)我的。Bashrc 文件。我把它放在我的。Bash _ profile 文件(我使用的是 Ubuntu) ,只有部分有效,导致了令人困惑的错误。

我有一个后续的问题(希望我可以简单地添加评论-但我没有足够的学分)。我遇到了同样的问题——当我使用建议使用 --auto-dotfiles的 rvm 脚本时,我遇到了麻烦,因为 shell 脚本删除了我的 。 bashrc _ profile文件。

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

你有没有碰巧发现为什么它是这样工作的,而不是在线的中间。Bashrc 文件?你是否清楚 Unix 加载环境变量的方式使得 RVM 只能在一个实例中工作而不能在另一个实例中工作?

我尝试了迈克尔 · 杜兰特的解决方案,但对我没用。但我运行了 rvm get stable --auto-dotfiles,它开始按照我的期望工作。

希望能有帮助

只是增加我的经验: 如果您使用 ABC0,请检查 .bashrc是否没有干扰。杀死 .bashrc有利于单一的 Bash 配置的 .bash_profile工作在这种情况下。

这不是对所问问题的回答,而是对大多数评论者/回答者所问的相关问题的回答—— 为什么需要将 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

很明显,如果在 shell init 文件 之后的 RVM 行中出现了什么东西,并对 $PATH 做了任何更改,更具体地说,如果它将目录添加到 $PATH,那么这些更改将把 RVM 添加的目录从第一个位置向下推。当调用 RVM 时,会发现它的 ruby 二进制目录是 没有,位于 $PATH和 BAM 的开头!你会得到警告:)。

我希望你能明白。

我被卡住后,我卸载的 rvm

rvm implode

然后在重新安装 rvm 之后,它收到了相同的错误消息。 在浏览了 Wayne Seguin 的 git hub 页面之后,他在页面上列出了一些工具,并推荐使用

rvm reset

安装后。这修复了我的错误消息。不需要编辑 PATH。

我发现这个命令非常有用。 它解决了我的问题,所以如果有人有同样的问题,试试这个: rvm get stable --auto-dotfiles

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

这对我来说解决了问题,而这里的其他答案(采用 rvm 脚本,或者使用 auto dotfiles 获得稳定性)没有解决问题。

我也面临同样的问题,我在 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

也许这不是解决这个问题的最好方法,但是我在我的。(它将工作在。巴希尔也是!)

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

安装红宝石头 修正了我的问题-很少的时间消耗,但做了诀窍。不知道这是否对我的 bash 文件做了任何未宣布的更新。

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

rvm use 2.0.0-p353

添加 -p353或其他您的版本细节到行结束

我最终移除了 ~/.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

在注释了顶部的两行重复的代码并在底部添加了它们之后,它起作用了。别忘了重新启动终端让它工作。

#[[ -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/postgresql@9.6/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/postgresql@9.6/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*

你可以加

rvm_silence_path_mismatch_check_flag=1

你的 ~/.rvmrc文件。这就是现在的警告信息建议。

免责声明

因为我主要使用 python 开发,所以我不确定这个解决方案是否能给你一个正确的 ruby env 或者只是改变路径并去掉警告

背景资料

在我的例子中,我首先安装 rvm,然后再安装 pyenv。它们的配置都将更改 $PATH。从警告中可以看出,rvm 似乎总是希望成为路径中的第一个

$ echo $PATH

$HOME/.rvm/gems/ruby-2.6.3/bin: ......

但是如果你按照 pyenv的要求添加 eval "$(pyenv init -)",它会将你的 $PATH改为

$ echo $PATH

$HOME/.pyenv/shims:$HOME/.rvm/gems/ruby-2.6.3/bin: ......

我的变通办法

$ rvm use system # 切换回系统红宝石

$ rvm use ruby-2.6.3 # 切换到您需要使用的版本

rvm会改变路径到它喜欢的,然后你就不会再看到烦人的警告了。

为了让 RVM 正常工作,你必须在 gnome 终端的 Edit 》 Profile Preferences 菜单对话框的“ Title and Command”选项卡上选中“ Run Command as login shell”复选框,以防缺少菜单,右键单击终端应用程序并导航 Profiles 》 Profile Preferences。

Https://rvm.io/integration/gnome-terminal