Як встановити за замовчуванням 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

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

19

/usr/bin/rubyзазвичай це посилання на /etc/alternatives/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 або новішу). Ось такий спосіб встановити рубінові бінарні файли:

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

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


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

@Tombart у вашому коді помилка.
horaceT

@horaceT Чи можете ви бути більш конкретними? Ви впевнені, що використовуєте ту саму версію Ubuntu?
Томбарт

@Tombart Я скопіював і вставив ваш перший рядок. Ось помилка: у 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.