Как заставить оболочку рыбы использовать rvm ruby ​​по умолчанию

Я использую Fish Shell 2.10 на Mac OS X 10.9.1. Я хотел бы использовать Ruby, который я установил с использованием RVM, в качестве терминалов по умолчанию для моих терминалов, однако я не могу заставить это работать.

я пробовал 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 ответов

Решение

Сначала установите функции rvm fish из rvm.io. Просто запустите это в любой оболочке:

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

Теперь вы должны быть в состоянии использовать команду rvm в рыбе. (Открыть терминал)

На данный момент вышеперечисленные функции не работают для меня полностью:)

В любом случае, если вы добавите ниже в файл конфигурации, все будет в порядке:

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

Теперь вы сможете использовать бинарные файлы и гемы, связанные с ruby. (Открыть терминал)

Я думаю, чтобы сделать это проще, вы можете добавить плагин rvm к оболочке рыбы с помощью fisher.

Для установки фишера:

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

После этого установите плагин rvm для Fish Shell:

fisher rvm

После этого rvm работает отлично

Установите oh-my-fish очень полезные инструменты, у вас есть плагин rvm и многие другие.

Фреймворк для управления вашей конфигурацией раковин

Это происходит потому, что сразу после установки Ruby, установленные через RVM, не добавляются на ваш путь. Когда вы запускаете любую команду 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

Чтобы запускать эту программу каждый раз при загрузке fish, добавьте приведенную выше команду в ~/.config/fish/config.fish. Кроме того, вы можете добавить команду rvm в вашу конфигурацию fish и загрузить ее для вас.

Надеюсь это поможет! -Grant

В вашем 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

Это ниже работало для меня с форума Fish Google Group. кредит eggegg для этого решения ниже:

Первоначальная поддержка shell для рыб требует преобразования скрипта bash в скрипт fish. Как уже упоминалось здесь: https://rvm.io/integration/fish.

Я обнаружил, что есть более простое решение: пусть bash выполняет сценарии bash, нам нужен только результат переменных среды.

Код: https://gist.github.com/eggegg/6077153

Просто вставьте первый файл в свой собственный config.fish, а затем скопируйте rvm.fish в ~/.config/fish/functions/.

Другие вопросы по тегам