Как я могу перейти на ruby 1.9.3, установленный с помощью Homebrew?
10 ответов
Я предлагаю вам взглянуть на RVM. Затем вы можете установить его по умолчанию с rvm use 1.9.3 --default
Но если вы довольны своей доморощенной установкой.
Затем просто измените приоритет каталогов в PATH
Вот мой /etc/paths
# homebrews should always take precedence
/usr/local/bin
# the default stack
/usr/bin
/bin
/usr/sbin
/sbin
Обычно это важно для homebrew, иначе вместо версии brew будет использоваться системная версия git, ruby, pg_admin,....
если ты скажешь which -a ruby
вы увидите все установленные рубины и приоритет в PATH
например.
$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby
ОБНОВЛЕНИЕ: теперь я не думаю, что вы должны изменить
/etc/paths
Вместо этого вам нужно проверить, какой из .profile
, .bashrc
, или же .bash_login
загружается в вашу оболочку, и просто добавьте /usr/local/bin
на ваш путь.
Для меня у меня есть только .profile
, Вы можете создать этот файл, если ни один из этих файлов уже не существует в вашем домашнем каталоге.
# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH
КОРОТКИЙ ОТВЕТ:
после установки ruby через homebrew просто сделайте так:
brew link --overwrite ruby
и перезапустите или снова откройте свой терминал
ДОЛГО ОТВЕТ
Так что я сделал нормальную установку ruby, используя homebrew
brew install ruby
это установило хорошо, НО это все еще использовало системный рубин по умолчанию. что я проверял, делая:
which ruby
#/usr/bin/ruby
Итак, согласно предложению Мэтью Руди, я проверил порядок моих /etc/paths, и все было хорошо.
Тогда я решил сделать:
which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby
так что ничего не сломалось как таковое. попытался переустановить ruby снова, используя метод homebrew, а затем я нашел его.
Доморощенный упомянул:
Warning: ruby-2.3.1 already installed, it's just not linked
так надо было сделать:
brew link --overwrite ruby
Если вы хотите использовать homebrew для установки 1.9.3, вы можете выполнить следующие действия:
$ brew update
$ brew install rbenv
$ brew install ruby-build
После установки rbenv и ruby-build вы можете запустить следующую команду, чтобы установить Ruby 1.9.3.
$ rbenv install 1.9.3-p125
Теперь, если вы хотите использовать 1.9.3 по умолчанию, вы можете выполнить следующую команду:
$ rbenv global 1.9.3-p125
Ruby был установлен Homebrew в
/usr/local/opt/ruby
. Итак, нам нужно добавить этот путь в
bash
или
Zsh
.
# Type this to find out which shell you're using (e.g., bash, Zsh)
echo $SHELL
# If you're using Bash (e.g., echo $SHELL returns /bin/bash)
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
# If you're using Zsh
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
Затем загрузите файл
# E.g., if you're using bash
source ~/.bash_profile
Наконец, проверьте версию Ruby
ruby -v
У меня была похожая ситуация. Я установил ruby, используя Homebrew. which -a ruby
дал мне следующий вывод:
#usr/local/bin/ruby
#/usr/bin/ruby
Это означает, что недавно установленная версия должна была использоваться, но ruby --version
еще вернули старую системную версию.
Я выхожу из терминала (Cmd+Q) и после перезапуска ruby --version
вернул правильную версию. Поэтому убедитесь, что вы перезапускаете терминал после установки, прежде чем пытаться использовать другие (потенциально ненужные) исправления.
КРАТКИЕ СВЕДЕНИЯ: Запишите, на что вы хотите это изменить.
Если вы работаете в OS X и пытаетесь использовать Ruby для чего-то вроде Jekyll, то не используйте homebrew, потому что это то, что Apple использует для Ruby, и это может быть не очень хорошо, если вы не уверены, что вы делает. Вместо этого используйте rbenv или RVM.
МЕНЬШЕ: Я пытался перейти с версии по умолчанию на обновленную версию (с 2.0), чтобы использовать Jekyll, потому что для этого требовалась версия Ruby 2.2.5 и выше. Я обновил его, и версия 2.5 была установлена, но когда я проверил "ruby -v", он все еще был 2.0. Как только я наконец-то смог изменить версию по умолчанию, я не смог установить нужный мне пакет, потому что у меня не было разрешения на запись. Например, если вы столкнулись с чем-то вроде этого, то, вероятно, у вас возникла та же проблема
$ gem install jekyll bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
brew install ruby
Это установит последнюю версию Ruby, теперь вы хотите установить ее по умолчанию, например, в моем случае:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
тогда беги
source ~/.zshrc
это установит его по умолчанию в профиле
теперь вы можете проверить версию Ruby
ruby -v
В OSX вы можете изменить путь, используя:
sudo nano / etc / paths
А затем добавьте путь или измените порядок.
Увидев ответ Крейга Уэйна, я подумал, что, возможно, я пропустил предупреждение при установке рубина с помощью Homebrew. Поэтому я переустановил его с помощьюbrew reinstall ruby@2.7
а там было:
==> Caveats
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/2.7.0/bin
You may want to add this to your PATH.
ruby@2.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have ruby@2.7 first in your PATH, run:
echo 'export PATH="/usr/local/opt/ruby@2.7/bin:$PATH"' >> ~/.zshrc
For compilers to find ruby@2.7 you may need to set:
export LDFLAGS="-L/usr/local/opt/ruby@2.7/lib"
export CPPFLAGS="-I/usr/local/opt/ruby@2.7/include"
For pkg-config to find ruby@2.7 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ruby@2.7/lib/pkgconfig"
Итак, решение для меня заключалось в добавлении/usr/local/opt/ruby@2.7/bin:
к началу PATH в~/.zshrc
.
В качестве альтернативного подхода для тех, кто ищет ответ на этот вопрос, вы можете установить псевдоним в вашем.bash_profile, например:
ruby="/usr/local/bin/ruby"
вот как я обошел проблему