Я нахожу задачу установки ruby 2.0 на последнюю Ubuntu 14.04 довольно разочаровывающей. Я знаю, что могу отказаться от пакетов и установить их из исходного кода - но я бы предпочел установить пакет - если это возможно.
Я нашел этот вопрос / ответ о ruby 13.10 - который выглядел так, как я хотел.
К сожалению, стратегия не представляется жизнеспособной - пакет ruby-switch был удален в 14.04.
http://www.ubuntuupdates.org/package/core/trusty/universe/base/ruby-switch
Удаление пакета указывает на ошибку, которая для меня выглядит совершенно не связанной.
Я удивлен, почему установка ruby2.0 с помощью apt-get устанавливает ruby1.9 и делает его интерпретатором ruby по умолчанию. Я получаю двоичный файл ruby2.0 - но сценарии (которые зависят от интерпретатора 2.0 при выполнении ruby) не поднимают его. Кроме того, когда я использую gem et. и др. установить пакеты ruby - похоже, они установлены для ruby1.9, а не 2.0. Очень неудовлетворительно.
Кто-нибудь может подсказать, как наиболее просто установить ruby 2.0 в качестве стандартного интерпретатора ruby? Как я могу переключиться с ruby 1.9 на 2.0 без ruby-switch?
источник
Debian-версия Ruby не поддерживает несколько установок ruby в одной системе. Debian устарел пакет, а Ubuntu просто удалил его из репозиториев. Вы должны использовать
rbenv
для переключения между различными версиями ruby. Это рекомендуемый способ, описанный в описании пакета ruby-switch, и этот метод был обсужден в баге 737782 как предпочтительный, поскольку сказано, что в репозиториях должно быть не более одной версии ruby.Ruby 2.0 устанавливается по умолчанию при установке
ruby2.0
пакета, и никаких других действий не требуется. Если пакетruby
был установлен, рекомендуется удалить его. Вы должны иметь бинарный файл/usr/bin/ruby2.0
в вашей системе.источник
источник
ln -fs
можете форсировать обновление и избегать использования всегда страшногоrm -rf
Если вы хотите переключаться между рубинами, я рекомендую использовать rvm ( https://rvm.io ). Это менеджер пакетов, и он позволяет вам устанавливать множество различных рубинов (не только Matz) на одном компьютере, локально для пользователя или глобально для всех пользователей.
Я знаю, что вы попросили «пакет», так что, возможно, это не сработает для вас. Но я подумал, что это может помочь, если это ваша машина для разработки.
Преимущество такого способа состоит в том, что вы можете установить один набор гемов для 2.1.1 и другие для 2.0 или 1.9.3 и т. Д. Он также позволяет тестировать jruby, rubinius и т. Д., Не привязывая вашу систему к одному.
Я не использую его в производстве, но, видимо, он подходит для этого, а также для разработки.
Вот быстрый старт: https://rvm.io/rvm/install
источник
Позднее в игре, но я думаю, что, возможно, более полное решение, чем жесткие кодовые ссылки, - это использование
update-alternatives
, размещенное здесь подробно, на случай, если другие будут укушены тем же разочарованием и захотят более нативное решение. Это обрабатывает все двоичные файлы и справочные страницы, предварительно удаляя ссылки во избежание конфликтов.Предостережения:
update-alternatives
так что, возможно, это излишне и / или сделано глупо.Сценарий (я назвал
fix-ruby-alternatives.sh
):источник
${RECMD}
и${CMD}
без кавычек вместо использованияeval
. На другом примечании: я буду брать "клудглы". :)