0

这似乎经常发生。我运行 bundle update 或 bundle install ,出于某种原因,我经常得到这样的结果:

您已经激活了 kgio 2.8.0,但您的 Gemfile 需要 kgio 2.7.4。使用 bundle exec 可以解决这个问题

然后我必须去运行:sudo gem uninstall kgio并选择 kgio 2.8.0 将其卸载。

如果 bundler 知道我的 gemfile 将这些 gem 锁定到特定版本,为什么还要更新 gem。我从不在 gemfile 和 bundler 之外安装 gem,所以我没有规避它的约定。我的机器上确实有另一个项目,但我很长时间没有对该项目运行包更新 - 那里有一些混淆吗?这有发生在其他人身上吗?难道我做错了什么?

4

2 回答 2

2

实际上bundle update是指定的 gem(所有 gem,如果没有指定),忽略 Gemfile.lock 中指定的先前安装的 gem。

bundle install将获取所有远程源,但使用 Gemfile.lock 中指定的依赖项而不是解析依赖项。

并使用

gem cleanup

此命令将删除(卸载)gem 的所有版本,最新版本除外。

于 2013-05-08T05:26:00.320 回答
0

bundle update,安装较新版本的 gem 并在 Gemfile.lock 中声明。bundle install只需确保您安装了正确的版本。我想您正在为 kgio 使用不同锁定版本的项目中运行 bundle install 。

于 2013-05-08T01:42:18.653 回答