Понижение версии RubyGem

Понижение версии RubyGem

sudo rake db:migrateПри выполнении команды появилось сообщение об ошибке, показанное ниже.

rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)

Я полагаю, что версия RubyGem более поздняя, ​​чем ожидалось. Как мне понизить версию RubyGem?

решение1

"Слишком новая" версия RubyGems действительно может быть проблемой для некоторых старых приложений (в основном тех, которые все еще используют Rails 2.x), но сообщение об ошибке, которое вы разместили, похоже, указывает на другую причину. Ваши приложения требуют определенную версию Rack gem, а установленные вами версии, вероятно, не соответствуют этому запросу.

Ваши приложения требуют rack ~> 1.1.0. Этому условию соответствует любая версия в серии 1.1.x, например 1.1.0, 1.1.5 или 1.1.345, но не 1.2.0 или 2.0.0. Похоже, вы установили Rack в 1.4.1, что не соответствует условию ~> 1.1.0.

К счастью, вы можете установить разные версии одного и того же gem рядом. Чтобы проверить, какие версии Rack у вас установлены, вы можете использовать

gem list -l rack

Это списки локально установленных (из-за ключа -l) гемов, имя которых начинается с 'rack'. В этом списке, вероятно, нет версии серии 1.1.x.

Чтобы установить определенную версию gem, вы можете использовать опцию --version=xyz, в вашем случае

gem install rack --version=1.1.0

Скорее всего, ваши миграции как раз на этом и заканчиваются.

Если вам действительно нужно понизить версию RubyGems, вам сначала нужно установить gem RubyGems ( :D ) в той версии, которую вы хотите понизить до аналогичной той, что вы сделали выше, например

gem install rubygems-update --version=x.y.z

Затем вы можете выполнить «обновление» (в вашем случае — понижение версии)

gem update --system x.y.z

где xyz — номер нужной вам версии. Помните, что «обновление» до определенной версии было введено в RubyGems 1.5.1, поэтому вы не можете перейти на версию ниже этой.

Связанный контент