繁体   English   中英

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

[英]How do I convince Rubygems (1.3.3) that I really do want it to install dependencies?

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

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

sudo gem install RedCloth -v 4.1.0

然后安装mojombo-jekyll gem。

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

问题不是依赖关系,而是源关系。 如果指定“ -s”选项,则rubygems将仅使用该来源。

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

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

我相信这与该错误有关 尤其:

经过一些测试,我想我缩小了发生的时间:

如果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是最新版本,因此发生了不匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM