这真的很奇怪。我很惊讶这可能是一个问题。gem 不应该简单地能够安装所有版本,并且像 bundler/Gemfile 这样的工具将处理任何特定项目中的依赖关系吗?即使我使用以下--force
选项,我也会收到同样的错误:
$ gem update
Updating installed gems
Updating activeadmin
ERROR: While executing gem ... (Gem::ImpossibleDependenciesError)
arbre-1.0.1 requires activesupport (>= 3.0.0) but it conflicted:
Activated activesupport-4.0.0 instead of (= 3.2.14) via:
activerecord-3.2.14, meta_search-1.1.3, activeadmin-0.6.1
Activated activesupport-3.2.14 instead of (= 4.0.0) via:
railties-4.0.0, devise-3.1.0, activeadmin-0.6.1
有人还可以解释此错误消息的含义吗?我无法弄清楚逻辑是如何工作的。该消息以 arbre-1.0.1 开头,但 gem 似乎仍在使用 activeadmin。我认为这意味着 arbre-1.0.1 需要 activesupport,并且安装了两个它可以使用,但是,有两组 gems 有冲突的 activesupport 规范。??
这是接收到的正常错误吗?我在实践中从未见过。这是否意味着某些 gem 开发人员没有正确指定依赖项?