Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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
OSX Lion新bash会话rvm默认ruby未使用_Ruby_Macos_Terminal_Osx Lion_Rvm - Fatal编程技术网

OSX Lion新bash会话rvm默认ruby未使用

OSX Lion新bash会话rvm默认ruby未使用,ruby,macos,terminal,osx-lion,rvm,Ruby,Macos,Terminal,Osx Lion,Rvm,我用OSX狮子。我已经安装了RVM,并将这一行放在我的.bash_配置文件中 [[ -s "/Users/Anand/.rvm/scripts/rvm" ]] && source "/Users/Anand/.rvm/scripts/rvm" # This loads RVM into a shell session. 我安装了ruby-1.9.2-p290,并使用以下命令将其设置为默认rvm ruby: rvm use --default ruby-1.9.2-p290

我用OSX狮子。我已经安装了RVM,并将这一行放在我的.bash_配置文件中

[[ -s "/Users/Anand/.rvm/scripts/rvm" ]] && source "/Users/Anand/.rvm/scripts/rvm"  # This loads RVM into a shell session.
我安装了ruby-1.9.2-p290,并使用以下命令将其设置为默认rvm ruby:

rvm use --default ruby-1.9.2-p290
当我选中ruby-v时

ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
问题是,每次我打开一个新的终端窗口或选项卡时,都没有设置默认的ruby。相反,ruby系统正在被使用
ruby-v
给出了以下内容:

ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.3.2]
在ruby项目中读取.rvmrc文件时也会发生这种情况。当我在一个项目中,当打开一个新选项卡时,它会将我带到项目目录中,但不会根据该项目中的.rvmrc设置ruby。我该怎么做才能解决这个问题

问题1:

所列的命令是,您已经切换了“-default”和“use”

 rvm --default use ruby-1.9.2-p290
检查是否实际设置了默认值:

$ rvm list default

Default Ruby (for new shells)

   ruby-1.9.2-p290 [ x86_64 ]
其他一些故障排除技巧,以防出现问题。您确定正在加载bash配置文件吗?尝试使用“source”/Users/Anand/.rvm/scripts/rvm”代替检查,可能路径有问题?用户名是否以大写字母开头


问题#2:您必须将.rvmrc文件显式地cd到目录中才能实现魔术。我想在某个位置启动控制台不会触发rvm。当使用pushd和popd在文件夹之间切换时,我遇到了这个问题。

我遇到了问题。问题是$PATH。我必须在.bash\u配置文件中添加与rvm相关的行作为l东线

旧的.bash_配置文件

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

source $HOME/Dropbox/dotfiles/bashrc
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
export PATH=/Library/PostgreSQL/9.0/bin:$PATH
source $HOME/Dropbox/dotfiles/bashrc
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
export PATH=/Library/PostgreSQL/9.0/bin:$PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
新的.bash_配置文件

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

source $HOME/Dropbox/dotfiles/bashrc
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
export PATH=/Library/PostgreSQL/9.0/bin:$PATH
source $HOME/Dropbox/dotfiles/bashrc
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
export PATH=/Library/PostgreSQL/9.0/bin:$PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

它成功了。新窗口和新选项卡使用默认ruby正确打开,即ruby 1.9.2

如果
rvm--default use
不起作用,请先尝试以下操作:

sudo rvm alias create default 1.9.2

我刚刚解决了同样的问题,原来是路径问题

试试这个

➜  ~  which ruby
如果您得到的是
/usr/bin/ruby
,那么原始ruby安装的路径将盖过RVM安装中的默认安装

我在/usr/bin/ruby的路径(见下文)之前添加了RVM的路径,它可以按预期工作

我使用zsh作为shell,因此我必须手动将其添加到.zshrc中

export PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting<br />
export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
将其更改为:

PATH=$HOME/.rvm/bin:$PATH # Add RVM to PATH for scripting
并确保您的.bash_配置文件具有以下内容:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
你应该可以走了


当然,这意味着你的shell会在查找任何命令时首先查看你的RVM目录,但这从来没有给我带来任何问题。

只是一个模糊相关的旁侧:在一台机器上管理多个Ruby版本,也考虑一下。下面发布我的解决方案。rce/Users/Anand/.rvm/scripts/rvm。仍然
ruby-v
给出了ruby-1.8.7。即使再次尝试运行bash_配置文件,
source.bash_配置文件
,但再次
ruby-v
给出了ruby-1.8.7I使用zsh。当我按照您的指示打开新终端时,会使用正确的ruby版本。但是出现了几个新问题:r无法启动ails服务器(错误:“dyld:惰性符号绑定失败:找不到符号:_rb_intern2”),捆绑包安装不再工作“未安装Gem捆绑包,请先运行
Gem安装捆绑包。“这怎么能解决呢?murze-我猜你需要用新版本的ruby重新安装gems。看看你的~/.rvm/gems目录,看看里面有什么……这就是你的新版本ruby应该寻找它们的地方。非常感谢,这个答案对我很有帮助!对最后,这个(不明显的)答案解决了这个问题。非常感谢!