以上不是第一次工作,第二次工作。
尝试将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
答案是这样说:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# Load RVM into a shell session *as a function*
**我的.bashrc文件的BOTTOM **(最后一行 - 重要!)。我在我的.bash_profile文件中(我在Ubuntu上)并且只有部分工作导致了令人困惑的错误。
我发现这个命令非常有用。它解决了我的情况。因此,如果有人遇到同样的问题,请尝试一下:rvm get stable --auto-dotfiles
rvm install ruby-head
为我解决了这个问题 - 耗费时间很少但却做到了。不确定是否对我的bash文件进行了任何未经发布的更新。
我最终删除了~/.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
它在评论前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*
你可以加
rvm_silence_path_mismatch_check_flag=1
到你的~/.rvmrc
文件。这就是现在警告信息所暗示的内容。
我解决了这个问题。尝试使用这样的命令:
rvm use 2.0.0-p353
ADD -p353或其他你的版本细节到行尾
在我卸载了rvm之后我被困住了
rvm implode
然后重新安装rvm后收到相同的错误消息。在浏览了wayne seguin的git hub页面之后。他在他的页面上列出了工具并建议使用
rvm reset
安装后。这修复了我的错误信息。无需编辑PATH。
也许这不是解决这个问题的最佳方法,但我在.zshrc的底部添加了这一行(它也适用于.bashrc!)
export PATH="$GEM_HOME/bin:$PATH"
我尝试了迈克尔·达兰特的解决方案,它对我没用。但我跑了rvm get stable --auto-dotfiles
,它开始按照需要工作。
希望能帮助到你
这不是问题的答案,而是大多数评论者/响应者提出的相关问题 - 为什么需要将rvm行放在shell rc文件的底部?
答案很简单。
$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
显然,如果在RVM行之后的shell init文件中存在某些内容并对$ PATH进行任何更改,更具体地说,如果它将目录添加到$PATH
,那么这些更改将把rvm添加的目录从第一个位置推下来。 RVM在被调用时会发现它的ruby二进制目录不在$PATH
和BAM的最开头!你会得到警告:)。
我希望能让事情变得清晰。
我有一个后续问题(希望我可以简单地添加评论 - 但我没有足够的学分)。我有同样的问题 - 当我按照使用--auto-dotfiles
建议的rvm脚本时,我遇到了麻烦,因为它以某种方式删除了我的.bashrc_profile文件。
无论如何,我最终得到了上面列出的相同答案,将这一行放在.bashrc文件的底部。 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
您是否碰巧找到了为什么它的工作方式,而不是.bashrc文件中间的行?你是否清楚Unix加载环境变量的方式,使得RVM在一个实例中工作而在另一个实例中不工作?
只是添加我的经验:如果你正在使用.bash_profile
,检查.bashrc
是否没有干扰。在这种情况下,.bashrc
杀死.bash_profile
支持单个Bash配置。
我面临同样的问题。我发现在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中的PATH =行中清除了包含.rvm的所有内容
这解决了我的问题,其他答案在这里(采购rvm脚本,或通过自动dotfiles稳定)没有。