Подтвердить что ты не робот

Как "установить пакет", когда ваш Gemfile требует более старой версии пакета?

Я работаю в более раннем проекте Rails, который имеет Gemfile. Я попытался добавить драгоценный камень в Gemfile и bundle install, но получил ошибку:

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 3.0.0) ruby depends on
      bundler (~> 1.0.0) ruby

  Current Bundler version:
    bundler (1.1.5)

This Gemfile requires a different version of Bundler.

В версии Rails, которую он использует, требуется bundler ~ > 1.0.0, но я установил 1.1.5 и использую его для других моих проектов. Обычно я использовал бы bundle exec ..., но поскольку это расслоение, о котором мы говорим, это немного сложнее. Как добавить драгоценный камень в мой Gemfile и запустить bundle install при использовании версии bundler, которую он требует?

4b9b3361

Ответ 1

Сначала вам нужно установить соответствующую версию bundler:

% gem install bundler -v '~> 1.0.0'
Successfully installed bundler-1.0.22

Затем заставьте rubygems использовать нужную версию (см. это сообщение):

% bundle _1.0.22_ install

Ответ 2

У меня была такая же проблема на MacOS Mojave. Я установил другую версию гема компоновщика и удалил текущую версию.

gem install bundler -i '2.0.1'

gem uninstall bundler

Затем дает мне возможность выбрать версию для удаления, и я выбираю ту, которая создает проблему.

Ответ 3

Сообщение об ошибке In Gemfile: bundler (~> 1.16) немного неточно, так как требование номера версии может исходить из других мест, таких как файл .gemspec, который был для меня:

spec.add_development_dependency "bundler", "~> 1.16"

Удаление номера версии из файла .gemspec решило проблему для меня:

spec.add_development_dependency "bundler"