Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获得;警告“路径设置不正确”;执行rvm时,请使用2.0.0--默认值_Ruby_Bash_Rvm_Ruby 2.0_.bash Profile - Fatal编程技术网

Ruby 获得;警告“路径设置不正确”;执行rvm时,请使用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=$

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

尝试将任何新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=$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