Ruby 获得;警告“路径设置不正确”;执行rvm时,请使用2.0.0--默认值
以上第一次不起作用,第二次起作用 尝试将任何新shell窗口的ruby版本设置为2.0.0 做 给予 然后做同样的事情Ruby 获得;警告“路径设置不正确”;执行rvm时,请使用2.0.0--默认值,ruby,bash,rvm,ruby-2.0,.bash-profile,Ruby,Bash,Rvm,Ruby 2.0,.bash Profile,以上第一次不起作用,第二次起作用 尝试将任何新shell窗口的ruby版本设置为2.0.0 做 给予 然后做同样的事情 $ rvm use 2.0.0 --default 现在没有错误,即 $ rvm use 2.0.0 --default Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247 durrantm.../durrantm$ 但是新的windows仍然提供ruby 1.9.3,而不是2.0.0 我的.bashrc文件中包含: PATH=$
$ rvm use 2.0.0 --default
现在没有错误,即
$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$
但是新的windows仍然提供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_配置文件具有:
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列表红宝石的新终端窗口显示:
$ 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
答案是:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# Load RVM into a shell session *as a function*
**在my.bashrc文件的底部**(最后一行-重要!)。我在我的.bash_档案文件(我在Ubuntu上)中有它,但这只起到了部分作用,导致了令人困惑的错误。对此我有一个后续问题(希望我能简单地添加注释-但我没有足够的学分)。我也遇到了同样的问题——当我遵循建议使用--auto dotfiles
的rvm脚本时,我遇到了麻烦,因为shell脚本不知何故删除了我的.bashrc_配置文件
无论如何,我最终得到了上面列出的相同答案,将这一行放在.bashrc文件的底部。
[-s“$HOME/.rvm/scripts/rvm”]&&source“$HOME/.rvm/scripts/rvm”
你是否碰巧发现为什么它以它的方式工作,而不是在BASHC文件的中间行?您是否清楚Unix加载环境变量的方式,使RVM在一个实例中工作,而不是在另一个实例中工作?我尝试了Michael Durrant的解决方案,但它对我不起作用。但是我运行了rvm get stable--auto dotfiles
,它开始按预期工作
希望它能帮助你添加我的经验:如果你正在使用.bash\u profile
,检查.bashrc
是否没有干扰。通过.bashrc
而取消.Bash\u profile
来支持单个Bash配置在这种情况下是可行的。这不是对所问问题的回答,而是对大多数评论者/响应者所问的相关问题的回答——为什么需要将rvm行放在shell rc文件的底部
答案很简单
加载的rvm代码将rvm ruby二进制目录放在$PATH
的“前端”,并且
.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
$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:/usr/local/sbin:/usr/sbin:/sbin
$export PATH=:$PATH
$echo$PATH
:/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:/usr/local/sbin:/usr/sbin:/sbin
显然,如果在RVM行之后的shell init文件中存在某些内容,并且对$PATH进行了任何更改,更具体地说,如果它将目录前置到$PATH
,那么这些更改将把RVM添加的目录从其第一个位置向下推。当调用RVM时,会发现它的ruby二进制目录不在$PATH
和BAM的最开头!您将得到警告:)
我希望这能让事情变得清楚。我在用卸载rvm后被卡住了
rvm implode
然后在重新安装rvm后,它收到相同的错误消息。
在浏览了wayne seguin的git hub页面之后。他在页面上列出了工具,并建议使用
rvm reset
安装之后。这修复了我的错误消息。不需要编辑路径。我发现这个命令非常有用。
它解决了我的问题。因此,如果有人有相同的问题,请尝试一下:
rvm变得稳定--auto dotfiles
我从.zshrc中的路径=行中清除了所有包含.rvm的文件
这就解决了我的问题,而这里的其他答案(寻找rvm脚本或使用自动点文件稳定)没有解决这个问题。我也面临着同样的问题。我在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
也许这不是解决这个问题的最佳方法,但我在.zshrc的底部添加了这一行(它也可以在.bashrc中使用!)
rvm安装红宝石头
为我解决了这个问题-花费了一点时间,但成功了。不确定这是否对我的bash文件进行了任何未经宣布的更新。我修复了这个问题。
请尝试使用如下命令:
rvm use 2.0.0-p353
将-p353或其他您的版本详细信息添加到行末尾我最终删除了~/.profile
,~/.bashrc
和~/.zshrc
基本上我只在我的mac电脑上保留了~/.bash\u配置文件。它是有效的
我认为在我的情况下,有:
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*
export PATH=“$PATH:$HOME/.rvm/bin”
[[-s“$HOME/.rvm/scripts/rvm”]&&source“$HOME/.rvm/scripts/rvm”#将rvm作为函数加载到shell会话*中*
在这些文件和那些重复设置中,在注释顶部的两个重复行并将它们添加到底部后,它就工作了。别忘了重新启动终端,让它工作
#[[ -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
。c
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*
#[[ -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