如何使鱼壳默认使用rvm ruby

时间:2014-01-24 13:49:07

标签: ruby macos rvm fish

我在Mac OS X 10.9.1上使用鱼壳2.10。我想使用我使用RVM安装的Ruby作为终端中的默认设置,但我似乎无法使其工作。

我已经尝试了rvm use 2.1.0 --default但是在打开一个新终端后,我仍然会得到以下结果:

> which ruby
/usr/bin/ruby

运行rvm命令会导致加载ruby:

> which ruby
/usr/bin/ruby
> rvm
[...]
> which ruby
/Users/alex/.rvm/rubies/ruby-2.1.0/bin/ruby

但每次打开新终端时都必须这样做很烦人。

6 个答案:

答案 0 :(得分:18)

首先从rvm.io安装rvm fish函数 只需在任何shell中运行它:

curl -L --create-dirs -o ~/.config/fish/functions/rvm.fish https://raw.github.com/lunks/fish-nuggets/master/functions/rvm.fish

您现在应该可以在fish中使用rvm命令。 (重新开放终端)

至于现在,上述功能对我来说完全不起作用:)

无论如何,如果你将以下内容添加到配置文件中,你应该没问题:

echo 'rvm default' >> ~/.config/fish/config.fish

您现在应该能够使用与ruby相关的二进制文件和宝石。 (重新开放终端)

答案 1 :(得分:5)

安装oh-my-fish非常有用的工具,有rvm插件,还有很多很酷。

  

管理鱼壳配置的框架

答案 2 :(得分:5)

我认为为了更容易,您可以通过rvm添加fisher插件到fish shell。

对于安装渔民:

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

之后,为Fish Shell安装rvm插件:

fisher add jorgebucaran/fish-nvm

之后,rvm运行完美。

(先前为fisher rvm

答案 3 :(得分:0)

以下这篇文章来自fish google小组论坛。 感谢eggegg以下解决方案:

对fish shell的原始支持需要将bash脚本转换为fish脚本。 如上所述:https://rvm.io/integration/fish

我发现有一个更简单的解决方案:让bash执行bash脚本,我们只需要环境变量的结果。

代码: https://gist.github.com/eggegg/6077153

只需将第一个插入您自己的config.fish中,然后将rvm.fish复制到〜/ .config / fish / functions /即可。

答案 4 :(得分:0)

这是因为开箱即用,通过RVM安装的Rubies不会添加到您的路径中。当您运行任何RVM命令时,它会将相对于您正在使用的ruby版本的路径添加到$ PATH。 RVM似乎负责bash和zsh,但没有内置支持来纠正点文件的路径。

这是我在RVM命令之前的路径示例:

/Users/grant/pear/bin /usr/local/sbin/ /Users/grant/.rvm/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/git/bin /usr/local/go/bin

以下是我在跑步后的道路示例' rvm':

/Users/grant/.rvm/gems/ruby-2.2.0/bin /Users/grant/.rvm/gems/ruby-2.2.0@global/bin /Users/grant/.rvm/rubies/ruby-2.2.0/bin /Users/grant/pear/bin /usr/local/sbin/ /Users/grant/.rvm/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/git/bin /usr/local/go/bin

最重要的是,您希望根据默认版本将.rvm文件添加到路径中。 This post帮助我弄清楚如何做到这一点。您可以使用以下命令追加RVM添加到鱼类配置文件的路径:

set -g -x PATH $PATH <paths_to_add>

上面的例子:

set -g -x PATH $PATH /Users/grant/.rvm/gems/ruby-2.2.0/bin /Users/grant/.rvm/gems/ruby-2.2.0@global/bin /Users/grant/.rvm/rubies/ruby-2.2.0/bin

要在每次加载鱼时都运行此命令,请将以上命令添加到〜/ .config / fish / config.fish。或者,您可以将rvm命令添加到fish配置中并让它为您加载。

希望这有帮助! -grant

答案 5 :(得分:0)

在你的config.fish中加载rvm插件并静默调用它:

. ~/oh-my-fish/plugins/rvm/rvm rvm >/dev/null

如果你正在使用bob-the-fish主题,你的提示中会有一个ruby版本,如下所示:

ruby-2.1.2 > ~/d/web > master >

如果您愿意,可以通过删除bobthefish / fish_prompt.fish中的以下行来抑制:

__bobthefish_prompt_rubies