我在一个有一个Gemfile的旧Rails项目中。我试图在Gemfile和bundle install
中添加一个gem但是收到错误:
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中添加gem并在使用它所需的bundler版本时运行bundle install
?
答案 0 :(得分:84)
首先,您需要安装相应版本的bundler:
% gem install bundler -v '~> 1.0.0'
Successfully installed bundler-1.0.22
然后强制rubygems使用您想要的版本(see this post):
% bundle _1.0.22_ install
答案 1 :(得分:0)
我在macOS Mojave上遇到了同样的问题。我安装了捆绑软件gem的其他版本,并卸载了当前版本。
gem install bundler -i '2.0.1'
gem uninstall bundler
然后,我可以选择要卸载的版本,然后选择要创建问题的版本。
答案 2 :(得分:0)
错误消息In Gemfile: bundler (~> 1.16)
有点不准确,因为版本号要求可能来自其他地方,例如.gemspec
文件,对我而言就是这样:
spec.add_development_dependency "bundler", "~> 1.16"
从.gemspec
文件中删除版本号为我解决了这个问题:
spec.add_development_dependency "bundler"
答案 3 :(得分:0)
这是我必须做的才能让它与以前版本 (2.2.11) 的 bundler 一起安装:
gem install bundler:2.2.11
bundle _2.2.11_ install