Как установить значение по умолчанию для ruby ​​2.1.2?


12

У меня есть рубины 1.9.3 и 2.1.2. Когда я открываю терминал по умолчанию, он использует ruby ​​1.9.3, но я хочу использовать ruby ​​2.1.2.

Как я могу установить ruby ​​2.1.2 по умолчанию?

Ответы:


6

Вы должны установить RVM для управления версиями Ruby. Для установки RVM сделайте

sudo apt-get install zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2 libxml2-dev libxslt-dev gawk libgdbm-dev libncurses5-dev automake libtool bison libffi-dev nodejs
\curl -sSL https://get.rvm.io | bash -s stable

Если это по какой-то причине не работает, следуйте инструкциям здесь: /programming//a/9056395/2376036

Затем сделать по умолчанию 2.1.2 сделать

rvm --default use 2.1.2

Привет, Большое спасибо за вашу любезную помощь, Да, я следовал вашим инструкциям, но в терминале при установке rvm он говорит «сломанный пакет rvm, пожалуйста, проверьте stackoverflow.com/a/9056395/497756 », поэтому я пошел по пути и получил его к успеху, спасибо за вашу помощь
Rasool

Рад, что смог помочь, пожалуйста, пометьте мой ответ как принятый, чтобы люди в будущем могли знать, что сработало для вас. Я добавлю дополнительный контекст из вашего комментария в мой ответ.
Termhn

19

/usr/bin/rubyобычно это ссылка на /etc/alternatives/ruby, которая, в свою очередь, ссылается на исполняемый файл версии ruby ​​по умолчанию (например, /usr/bin/ruby1.9). Вы можете изменить настроенную версию по умолчанию с помощью:

sudo update-alternatives --config ruby

Если желаемая версия не настроена как альтернатива ruby(например, если она не настроена менеджером пакетов), вы можете сделать это самостоятельно с помощью

sudo update-alternatives --install /usr/bin/ruby ruby /path/to/ruby2.1 <PRIORITY>

где <PRIORITY>положительное целое число Затем вы можете выполнить первый шаг.

Подробности см. В руководствеupdate-alternatives(8) .


5

На Ubuntu 14.04 вы можете установить ruby2.0пакет. В настоящее время пакет предлагает версию 2.0.0p384 (в конечном итоге пакет может предлагать Ruby 2.1 или новее). Это простой способ установить исполняемые файлы ruby:

sudo apt install ruby2.0

Тогда вы будете иметь двоичные файлы ruby2.0и gem2.0. Для замены стандартного ruby ​​1.9 на 2.0 вы можете сделать следующее ( ПРИМЕЧАНИЕ: вы можете взломать приложения, для которых строго требуется Ruby <= 1.9).

sudo update-alternatives --set /usr/bin/ruby ruby /usr/bin/ruby2.0 10
sudo update-alternatives --set /usr/bin/gem gem /usr/bin/gem2.0 10

Другие возможности используют некоторый менеджер версий ruby, такой как rbenv или RVM . Первый более сложен в настройке, но менее хакерский, чем RVM. Оба позволяют установить практически любую версию Ruby, которую вы хотели бы использовать.


1
Вы уверены, что переключатель установки установлен правильно? Мне помог ответ stackoverflow.com/a/1892889/525174 , но единственная разница заключается в использовании --set switch.
Денис Безич

@ Томбарт есть ошибка в вашем коде.
Гораций

@horaceT Не могли бы вы быть более конкретным? Вы уверены, что используете ту же версию Ubuntu?
Томбарт

@ Томбарт Я скопировал и вставил вашу первую строку. Вот ошибка: update-alternatives: error: alternative name (/usr/bin/ruby) must not contain '/' and spacesу меня Ubuntu 14.04
horaceT

3

Если вы используете Ubuntu 14.04 (Trusty) или новее, вы можете добавить этот PPA:

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update

Затем вы можете установить любой пакет, который вы хотите, например,

sudo apt-get install ruby2.2

Чтобы иметь возможность создавать собственные расширения, вам нужно также разработать пакет

sudo apt-get install ruby2.2-dev

Чтобы легко переключаться между установленными версиями Ruby, установите переключатель ruby:

sudo apt-get install ruby-switch

Команды утилий

ruby -v
ruby-switch --list

пример

sudo ruby-switch --set ruby2.1

От: https://www.brightbox.com/docs/ruby/ubuntu/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.