Как обновить версию Ruby, когда я не могу понять, какая программа использовалась для установки Ruby? - PullRequest
0 голосов
/ 07 января 2020

Я хочу обновить ruby на OS X, но когда я запускаю brew upgrade ruby, я получаю Error: ruby not installed. Когда я запускаю which ruby, я получаю /usr/bin/ruby, поэтому я знаю, что ruby существует в моей системе, но я предполагаю, что ошибка означает, что я не установил его через Homebrew.

Что я Хочу знать:

1) Правильно ли я понимаю, что тот факт, что /usr/bin/ruby существует, но brew upgrade ruby дает Error: ruby not installed, подразумевает, что Ruby установлен, но был установлен с помощью инструмента, отличного от Доморощенный?

2) Если да, как я могу выяснить, как / где Ruby был установлен в моей системе?

3) Как мне подойти к обновлению Ruby?

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Верно ли, что тот факт, что /usr/bin/ruby существует, но brew upgrade ruby дает Error: ruby not installed, подразумевает, что Ruby установлен, но был установлен с помощью инструмента, отличного от Homebrew?

Да.

Если так, как я могу выяснить, как / где Ruby был установлен в моей системе?

Он поставляется с OS X (на данный момент ). Apple планирует отказаться от этого, см. здесь .

Как мне подойти к обновлению Ruby?

Это основано на мнении, но Я бы справился с этим с помощью brew, а это значит, что вам нужно brew install ruby. Чтобы убедиться, что вы используете brew install ed ruby вместо системы ruby, вы можете добавить что-то вроде добавления:

export PATH=/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.0/bin:${PATH}

к вашему ~/.bash_profile. В частности, вы захотите добавить (a) путь, в котором brew будет предоставлять ruby и все связанные с ним исполняемые файлы, и (b) путь, где будут существовать исполняемые файлы, установленные через gem.

Для (а), посмотрите на вывод brew info ruby, например, я получаю:

...

If you need to have ruby first in your PATH run:
  echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

...

Отсюда добавление /usr/local/opt/ruby/bin к пути. Если вы ls этот каталог, вы увидите не только исполняемый файл ruby, но также irb, gem, bundle, rake и некоторые другие. Поэтому, когда вы запустите bundle install или gem install, это то, что привыкнет.

Для (b) вам нужно знать, куда помещаются установленные исполняемые файлы gem. В этом вам поможет команда gem env:

$ gem env | grep 'EXECUTABLE DIRECTORY'
  - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.6.0/bin

Отсюда добавление второго пути, /usr/local/lib/ruby/gems/2.6.0/bin к моему $PATH в моем ~/.bash_profile.

2 голосов
/ 07 января 2020

Используя which ruby, вы уже обнаружили, что ruby установлен на вашем пути в /usr/bin/ruby.

Существует высокая вероятность того, что это символическая ссылка на фактическое местоположение исполняемого файла. Вы можете следить за этим через readlink /usr/bin/ruby. Надеюсь, это в папке, которая делает очевидным, что установил его. Если нет, то нет большой надежды выяснить это, но, по крайней мере, вы знаете, где находятся все файлы для его очистки.

Я бы тогда установил RVM и запустил fre sh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...