"gem install" требует версии Ruby> = 1.8.7, которая установлена - PullRequest
2 голосов
/ 06 июля 2011
$ gem -v
1.8.5
$ ruby -v
ruby 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.02

$ sudo gem install sanitize
ERROR:  Error installing sanitize:
    nokogiri requires Ruby version >= 1.8.7

Это происходит и с другими драгоценными камнями, а не только с нокогири.Я на Ruby 1.8.7 и настроил свой $ PATH для включения /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby до /usr/bin, где установлена ​​система Ruby (1.8.6).

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.5
  - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin

$ which ruby
/opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
$which gem
/opt/ruby-enterprise-1.8.7-2010.02/bin/gem

Ответы [ 2 ]

7 голосов
/ 06 июля 2011

Ваша команда sudo, скорее всего, изменяет переменную PATH. Попробуйте sudo gem env, и вы можете проверить это. В качестве решения вы можете попробовать это:

sudo env PATH=$PATH gem install ...

Также смотрите здесь для дальнейшего обсуждения:
sudo меняет PATH - почему?

В качестве обходного пути вы также можете сделать:

sudo su -m

Чтобы получить приглашение от root с помощью модификатора -m, чтобы сохранить среду . Затем из этого корневого приглашения выполните установку вашего гема.

0 голосов
/ 06 июля 2011

Ну, ваша sudo команда выглядит хорошо (то есть, нет тире, поэтому она должна повторно использовать вашу среду), но вы можете попробовать sudo which gem просто для уверенности.Иногда это зависит от версии Unix / Linux.

Однажды я обнаружил нечто подобное.Мой путь (и ваш) был правильным, но в gem было что-то внутреннее, которое либо игнорировало путь, либо искало «стандартные» каталоги first и, следовательно, находило более старую версию ruby.* Моим решением было удалить старую версию.Не самая элегантная, но мне все равно не нужна была старая версия.

Удачи, надеюсь, у вас есть возможность удалить старую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...