2015-11-19 2 views
0

Недавно я установил систему под управлением ubuntu 12.04 LTS как часть кластера аналогичных машин, работающих с одним и тем же программным обеспечением.Ruby Gem версии, несовместимые с версией ruby ​​

Я поражен и проблема с SYS-proctable, который при установке по умолчанию не загружается с ошибкой:

/var/lib/gems/1.8/gems/sys-proctable-0.9.9-universal-linux/lib/linux/sys/proctable.rb:2: 
undefined method `require_relative' for main:Object (NoMethodError) 

Require_relative является рубином 1,9 особенности и убунт 12,04 устанавливает 1,87.

Я попытался удалить Sys-proctable камень и установка версии -0.9.4 что и у меня есть на других системах, но я получаю

[email protected]:~$ sudo gem -v 0.9.4 install sys-proctable 
[sudo] password for rful011: 
1.8.15 

и больше ничего.

У меня нет большой гибкости при изменении версии рубинов или версий ОС, поскольку этот аппарат является частью гораздо более крупной установки.

Любые идеи, почему попытка установить определенную версию печатает то, что кажется номером пузыря, а затем выходит?

Любые предложения по минималистской работе вокруг.

+0

Я нашел работу, но меня все еще интересует, почему я не смог установить другую версию драгоценного камня. Обход должен был удалить ruby1.8 и установить 1.9. Я не уверен, что эта работа жизнеспособна, поскольку другие части системы «официально» зависят от 1.8. Я подозреваю, что это минимальная зависимость, и все работает. Пальцы пересеклись –

+2

Ruby 1.8.7 настолько ужасно устарел, что это не смешно. Пожалуйста, обновите как можно скорее. – sevenseacat

+1

@sevenseacat: не только Ruby 1.8.7 [end-of-lifed] (https: //www.ruby-lang.org/en/news/2014/07/01/eol-for-1-8-7-and-1-9-2 /), Ubuntu 12.04 также. – Amadan

ответ

2

Команда установить конкретную версию самоцвета

$ gem install the_gem -v 1.2.3 

т.е. в вашем случае, с sudo, вы должны использовать:

$ sudo gem install sys-proctable -v 0.9.4 

Команда, которую вы использовали это:

gem -v 0.9.4 install sys-proctable 

т.е. у вас есть -v 0.9.4до Подкоманда install. В этом случае исполняемый файл gem интерпретирует -v в качестве переключателя версии (это также может быть указано --version), что заставляет его распечатывать версию Rubygems. Все, что после -v игнорируется.

Таким образом, существуют два типы -v (или --version) флаг. Первый записывается непосредственно после gem (это первый аргумент команды) и заставляет его печатать свою версию и выходить, игнорируя что-либо еще в командной строке. Второй помещается после имени драгоценного камня при использовании подкоманды install и указывает версию монстра, который вы хотите установить. Вы только что ошиблись.

См. gem help и gem help install для получения более подробной информации.

+0

Doh! и спасибо! Это должно быть просто. Я прочитал эту помощь, но недостаточно тщательно. –