10

I'm using fish shell 2.10 on Mac OS X 10.9.1. I would like to use a Ruby that I have installed using RVM as the default in my terminals, however I can't seem to make this work.

I've tried rvm use 2.1.0 --default but upon opening a new terminal I still get the following:

> which ruby
/usr/bin/ruby

Running the rvm command causes the ruby to be loaded:

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

But it's annoying to have to do this every time I open a new terminal.

4

6 回答 6

24

首先从rvm.io安装 rvm 鱼功能

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

重新打开终端后,您现在应该可以在 fish 中使用 rvm 命令了。

运行以下命令将该行添加rvm default到您的鱼配置文件中。

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

重新打开终端后,您现在应该能够使用与 ruby​​ 相关的二进制文件和 gem。

于 2014-11-10T12:41:56.070 回答
5

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

用于管理鱼壳配置的框架

于 2014-01-24T13:52:21.883 回答
5

我认为为了更容易,您可以通过fisher添加一个rvm插件到鱼壳。

对于安装渔民:

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

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

fisher add jorgebucaran/fish-nvm

之后,rvm 运行完美。

fisher rvm以前是)

于 2017-05-05T00:48:29.510 回答
1

发生这种情况是因为开箱即用的通过 RVM 安装的 Ruby 并未添加到您的路径中。当您运行任何 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 文件添加到您的路径中,具体取决于您默认使用的版本。这篇文章帮助我弄清楚了如何做到这一点。您可以将 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 命令添加到您的鱼配置并让它为您加载它。

希望这可以帮助!-授予

于 2015-02-16T23:03:11.523 回答
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

于 2015-04-25T21:28:00.643 回答
0

以下内容在fish google group forum对我有用。将此解决方案归功于 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/ 即可。

于 2014-07-21T07:47:07.890 回答