2

对于任何具有依赖关系的 gem,我都会得到以下信息(名称根据需要进行了更改):

尝试1:

sudo gem install mojombo-jekyll -s http://gems.github.com/
ERROR:  Error installing mojombo-jekyll:
        mojombo-jekyll requires RedCloth (= 4.1.0, runtime)

尝试2:

sudo gem install mojombo-jekyll -s http://gems.github.com/ -y
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
ERROR:  Error installing mojombo-jekyll:
        mojombo-jekyll requires RedCloth (= 4.1.0, runtime)

尝试 3:

sudo gem install mojombo-jekyll -s http://gems.github.com/ --include-dependencies
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
ERROR:  Error installing mojombo-jekyll:
        mojombo-jekyll requires RedCloth (= 4.1.0, runtime)
4

3 回答 3

3

首先尝试安装 4.1.0 版本的 RedCloth gem。

sudo gem install RedCloth -v 4.1.0

然后安装 mojombo-jekyll gem。

sudo gem install mojombo-jekyll -s http://gems.github.com/
于 2009-05-22T20:14:44.117 回答
2

问题与依赖无关,而是与源有关。如果您指定 '-s' 选项,rubygems 将仅使用该源或源。

sudo gem install mojombo-jekyll -s http://gems.github.com/ -s http://gems.rubyforge.org

这将告诉 ruby​​gems 同时使用 ruby​​forge 和 github。大多数人倾向于采用将 gem 源添加到他们的环境中的方法,而不是每次都手动进行。

于 2009-06-13T01:28:31.230 回答
0

我相信它与这个错误有关。特别:

经过一些测试,我认为我在发生这种情况时缩小了范围:

如果 gem foo 依赖于 gem bar(任何版本),那么安装 foo 也会安装它的依赖栏。

如果 gem foo 依赖于 bar 1.0,并且 bar 1.0 是最新版本,那么安装 foo 也会安装 bar 1.0。

如果 gem foo 依赖于 bar 1.0,但远程存储库中也存在 bar 1.1,gem install 会找到 bar 1.1 并抱怨缺少 bar 1.0。

RedCloth 4.1.0 是一个旧版本。似乎您的 gem 对 4.1.0 有固定的依赖关系,但 4.19 是最新版本,因此发生了不匹配。

于 2009-05-22T02:53:45.267 回答