Вы должны использовать менеджер версий Ruby для управления несколькими версиями Ruby.Я предпочитаю использовать rbenv.Ниже приведены шаги по его установке на Mac (подробно объясняется, что делается и почему; если вам нужен ярлык, попробуйте выполнить все команды по порядку, но я все равно настаиваю на том, чтобы вы прочитали эти шаги).
rbenv
Прежде чем приступить к фактической установке, запомните следующие пункты:
rbenv
сама по себе не включает в себя возможность установки версий ruby.Изменяет только версию ruby для каждого каталога.Для установки рубинов вам необходимо установить инструмент ruby-build (который является частью проекта rbenv).То же самое относится и к chruby, который использует другой инструмент для сборки ruby. ruby-build
должен быть установлен как плагин для rbenv. - В случае, если вам нужно узнать об инструментахподробно, вот ссылки для rbenv и ruby-build .
- Процедура установки для обоих инструментов (и много другой справки) доступна вREADME файлы для проектов.Обратитесь к ним, если у вас ничего не получится.
Установка rbenv
Выполните следующую команду, чтобы клонировать rbenv repo в каталог .rbenv
в вашем домашнем каталоге.
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Ваша система по-прежнему не знает, где находится rbenv.Добавьте его к своему пути, выполнив:
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
Чтобы инициализировать rbenv, чтобы он мог помочь вам с изменением рубинов при смене каталогов, запустите:
~/.rbenv/bin/rbenv init
Это должно сказать вамчто-то вроде этого:
# Load rbenv automatically by appending
# the following to ~/.bash_profile:
eval "$(rbenv init -)"
Запустите это:
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
К этому моменту должен быть установлен rbenv.Когда вы запускаете rbenv
в командной строке, вы должны получить что-то вроде этого:
$ rbenv
rbenv 1.1.1-39-g59785f6
Usage: rbenv <command> [<args>]
Some useful rbenv commands are:
commands List all available rbenv commands
local Set or show the local application-specific Ruby version
global Set or show the global Ruby version
shell Set or show the shell-specific Ruby version
rehash Rehash rbenv shims (run this after installing executables)
version Show the current Ruby version and its origin
versions List all Ruby versions available to rbenv
which Display the full path to an executable
whence List all Ruby versions that contain the given executable
See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme
ПРИМЕЧАНИЕ : Если вы получаете предупреждение о том, что rbenv не установлен, просто запустите source ~/.bash_profile
.Это перезапустит скрипт ~/.bash_profile
и получит rbenv на вашем пути.После этого вы сможете без проблем запускать rbenv
.
Обратите внимание, что rbenv пока не дает возможности устанавливать или удалять рубины.Для этого нам нужно установить ruby-build .
Установка ruby-build
Нам нужно добавить пакет ruby-build в качестве плагина rbenv, чтобы мы могли набратьrbenv install <ruby version>
для установки рубинов.Все, что вам нужно сделать, это создать каталог плагинов и проверить git repo для ruby-build в каталоге плагинов.Выполните следующее:
$ mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
Проверка, установлены ли rbenv и ruby-build
Запустите rbenv без каких-либо аргументов на терминале, теперь должны появиться доступные команды установки и удаления.Примерно так:
$ rbenv
rbenv 1.1.1-39-g59785f6
Usage: rbenv <command> [<args>]
Some useful rbenv commands are:
commands List all available rbenv commands
local Set or show the local application-specific Ruby version
global Set or show the global Ruby version
shell Set or show the shell-specific Ruby version
install Install a Ruby version using ruby-build
uninstall Uninstall a specific Ruby version
rehash Rehash rbenv shims (run this after installing executables)
version Show the current Ruby version and its origin
versions List all Ruby versions available to rbenv
which Display the full path to an executable
whence List all Ruby versions that contain the given executable
See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme
Если вы видите этот вывод, ваш rbenv установлен правильно.
Установка ruby
Чтобы установить ruby 2.5.3, вы можете запустить (подождите, пока не запускайте его):
rbenv install 2.5.3
Должно появиться несколько строк, найдите время, а затем скажите, что установлена версия 2.5.3.Однако существует проблема - если при установке происходит сбой, особенно во время компиляции, , иногда , терминал застревает, и на нем нет вывода.Похоже, что установка в течение длительного времени (навсегда).Чтобы получить больше информации о происходящем, запустите следующее:
rbenv install -f -v 2.5.3
Аргумент -f
указывает rbenv принудительно установить данную версию.Так что, если он уже установлен, rbenv переустановит (в основном перезапишет) данную версию.Поэтому, если установка не удалась, -f
удостоверится в установке.
Аргумент -v
указывает rbenv выводить подробные сообщения.Таким образом, все, что делает ruby-build (включая процесс компиляции), будет показано вам.Не бойтесь слова сборник здесь.Обычно он нормально компилируется без проблем и не изменяет системный ruby (тот, который установлен с sudo apt install ruby
в Linux или тот, который вы получаете по умолчанию на macOS), независимо от того, успешно он или нет.
Тестовая установка
После успешного завершения установки вы можете запустить приведенную ниже команду, чтобы проверить, какие версии установлены (выходные данные включены в фрагмент кода ниже):
$ rbenv versions
system
* 2.5.3 (set by /home/ubuntu/.rbenv/version)
Примечание : на Macу недавно установленного ruby будет другой путь.
Тот, с *
перед ним, тот, который активен прямо сейчас.Если вы запустите which ruby
, вы должны получить путь с рубиновым шимом.Если вам интересно, прочитайте документацию rbenv, чтобы узнать, что такое прокладки , хотя вам не придется беспокоиться о них.
$ which ruby
/home/ubuntu/.rbenv/shims/ruby
Настроить и забыть
rbenv - это крутая вещь, но продолжать писать rbenv shell 2.5.3
и rbenv shell 2.4.5
каждый раз - проблема.Вместо этого вы должны установить для каталога версию ruby и забыть о rbenv.
Вы можете просто создать файл с именем .ruby-version
, содержащий одну строку - номер версии ruby, который вы хотите использовать для всех скриптов ruby в этом каталоге (и подкаталогах).Просто перейдите в нужный каталог и запустите:
echo "2.5.3" > .ruby-version
Все сценарии ruby в этом каталоге и подкаталогах будут использовать версию 2.5.3.