我如何说服Rubygems(1.3.3)我确实希望它安装依赖项?

时间:2009-05-22 01:26:03

标签: ruby rubygems gem

对于任何具有依赖关系的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)

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:2)

问题不是依赖关系,而是源相关。 如果指定'-s'选项,rubygems将仅使用该源或源。

  

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

这将告诉rubygems同时使用rubyforge和github。 大多数人倾向于采用将gem源添加到其环境中的方法,而不是每次都手动执行。

答案 2 :(得分:0)

我认为这与this bug有关。特别:

  经过一些测试,我认为我缩小了   它何时发生:

     

如果宝石foo依赖于宝石吧(任何   版本)然后安装foo   安装其依赖栏。

     

如果gem foo依赖于条形1.0和条形图   1.0是最新版本,然后安装foo也会安装吧1.0。

     

如果gem foo依赖于1.0,但是吧   1.1也存在于远程存储库中,gem install查找栏1.1   并抱怨栏1.0缺失。

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