Установите ruby ​​2.2.3 через apt

16

Как установить Ruby 2.2.3 через apt в Ubuntu Wily? Я попробовал sudo apt-get install ruby2.2-devи sudo apt-get install ruby2.2(Какая разница, кстати), и обе команды, кажется, установили довольно много. Однако после этого нет никакого исполняемого файла ruby.

Михель де Маре
источник
Вы абсолютно хотите установить ruby ​​2.2.3 через apt? Пакет * -dev содержит заголовки и файлы, которые * могут понадобиться для правильной работы. проверьте официальный ruby-lang.org, он содержит информацию, необходимую для правильной установки ruby ​​2.2.3
enzo
пожалуйста, обратитесь, если это будет полезно [ gorails.com/setup/ubuntu/15.10]
Раван
1
@maetsoh Зачем мне устанавливать каждый пакет с apt, кроме ruby? Мне нравятся менеджеры пакетов.
Мишель де Маре
Является ли Ruby частью механизма «альтернатив» в Ubuntu? Если нет, то, возможно, стоит использовать что-то вроде rbenv для управления установками Ruby. Особенно, если вам нужно использовать разные версии Ruby одновременно. Мягкие ссылки могут стать немного утомительными при разработке Rails и т. Д.
Я использую rbenv локально для переключения версий, так что это стоит хлопот. Но на производстве мне нужна только 1 версия ruby, а затем я предпочитаю стандартный менеджер пакетов. Я прочитаю о механизме "альтернатив". ( manpages.ubuntu.com/manpages/vivid/en/man8/… )
Мишель де Маре

Ответы:

7

apt-get install ruby2.2действительно дает вам исполняемый файл ruby ​​- он просто называется ruby2.2. Gem и irb одинаковы (т.е. gem2.2 install bundlerбудут работать, irb2.2даст вам приглашение irb.)

Это нормально в Ubuntu, и система альтернатив обычно означает, что вам не нужно заботиться об этом, но по какой-то причине ruby ​​не управляется альтернативами в Ubuntu. Но мы можем сделать это:

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.2 400 \
 --slave /usr/bin/rake rake /usr/bin/rake2.2 \
 --slave /usr/bin/ri ri /usr/bin/ri2.2 \
 --slave /usr/bin/rdoc rdoc /usr/bin/rdoc2.2 \
 --slave /usr/bin/gem gem /usr/bin/gem2.2 \
 --slave /usr/bin/irb irb /usr/bin/irb2.2 \
 --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby2.2.1.gz \
 --slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake2.2.1.gz \
 --slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri2.2.1.gz \
 --slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc2.2.1.gz \
 --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem2.2.1.gz \
 --slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb2.2.1.gz

Выполнение этого зарегистрирует ruby ​​в системе альтернатив и, поскольку есть только один выбор, устанавливается ruby 2.2по умолчанию. Это создаст символические ссылки и позволит вам использовать ruby/ gem/ и т. Д. Без добавления 2.2 в конце.

Это слегка обновленная версия инструкций, которые можно найти по адресу https://leonard.io/blog/2012/05/install-ruby-1-9-3-on-ubuntu-12-04-precise-pengolin/.

Эдмунд
источник
update-alternatives: ошибка: альтернативный камень не может быть рабом ruby: это главная альтернатива
Евгений Кулик
17

Хорошо, это работало для меня по крайней мере:

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev

При коварстве я получаю сообщение об ошибке, потому что URL http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/wily/main/binary-amd64/отсутствует, есть только http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/devel/main/binary-amd64/.

Михель де Маре
источник
то же самое на Debian Джесси: /
Холмс