ZenTest требует RubyGems версии ~> 1.8 - PullRequest
3 голосов
/ 18 ноября 2011

Я пытаюсь установить RubyInline на некоторый сервер Ubuntu:

sudo gem1.9.1 install RubyInline
ERROR:  Error installing RubyInline:
        ZenTest requires RubyGems version ~> 1.8


sudo ruby --version
ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]

В чем причина этой ошибки? Меня смущает ссылка 1.8. Это все должно быть Ruby1.9.1. Как решить эту проблему?

Ответы [ 4 ]

6 голосов
/ 18 ноября 2011

~> 1.8 означает «Любая версия RubyGems, если она не ниже 1.8, но меньше, чем 2.0».Так что 1.8.0, 1.8.11, 1.8.100 или 1.9 все совпадают, но у вас нет версии.

1.9.1 в команде gem не означает, что RubyGems находится на версии1.9.1, но это версия, которая пришла с установкой Ruby 1.9.1.Чтобы узнать, какая у вас версия RubyGems, запустите gem1.9.1 --version.

. Чтобы решить эту проблему, вы можете либо обновить Rubygems, либо установить версию ZenTest, совместимую с версией Rubygems, которую вы используете, запустив sudo gem1.9.1 install ZenTest --version "< 4.6" (при условии, что ZenTest 4.5 совместим с вашими RubyGems)

4 голосов
/ 18 ноября 2011

Краткий ответ:

gem update --system

Подробный ответ см. В сообщении Сайфера выше.

1 голос
/ 18 ноября 2011

Из документации Bundler :

Спецификатор ~> имеет особое значение, лучше всего показанное на примере. ~> 2.0.3 идентичен> = 2.0.3 и <2.1. </p>

Таким образом, ссылка "~> 1.8" означает любую версию RubyGems <1.9. </p>

Одним из возможных решений было бы написать ваше расширение без RubyInline:
как к Create-A-рубиновый-расширение-в-с-в-под-5-минут

0 голосов
/ 22 мая 2017
bundle update

помогло мне, обновил ZenTest с 4.6.2 до 4.11.1

...