Как я могу перейти на ruby ​​1.9.3, установленный с помощью Homebrew?

Я установил Ruby 1.9.3, используя Hombrew

варить установить рубин

Но по умолчанию 1.8.7 все еще используется. Как я могу переключить osx для использования 1.9.3 в качестве ruby ​​по умолчанию?

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"

вот как я обошел проблему

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