Как заставить оболочку рыбы использовать 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/.