这似乎发生了很多。我运行捆绑更新或捆绑安装,出于某种原因,我经常会遇到这样的事情:
您已经激活了kgio 2.8.0,但您的Gemfile需要kgio 2.7.4。使用bundle exec可以解决这个问题
然后我必须去运行:sudo gem uninstall kgio
并选择kgio 2.8.0来卸载它。
如果知道我的gemfile将这些gem锁定到特定版本,为什么bundler甚至会更新gem。我永远不会在gemfile和bundler之外安装gem,所以我不会绕过它的约定。我在我的机器上有另一个项目,但是我很长时间没有在该项目上运行一个bunle更新 - 那里有一些混合吗?这有发生在其他人身上吗?我做错了吗?
答案 0 :(得分:2)
实际上bundle update
指定的gem(所有gems,如果没有指定),忽略Gemfile.lock中指定的先前安装的gems。
而bundle install
将获取所有远程源,但使用Gemfile.lock中指定的依赖项而不是解析依赖项。
并使用
gem cleanup
此命令将删除(卸载)gem的所有版本,但最新版本除外。
答案 1 :(得分:0)
bundle update
,安装较新版本的gem并在Gemfile.lock中声明。 bundle install
只是确保您安装了正确的版本。我想你正在为具有不同锁定版本的项目运行捆绑安装。