gem2rpm包含所有依赖项,而不是仅包含运行时依赖项

时间:2010-03-15 11:49:12

标签: ruby rubygems dependencies rpm

gem2rpm版本0.6.0包含给定Gem的所有(开发和运行时)依赖项。

示例:Rack Gem(http://rubygems.org/gems/rack)版本1.1.0没有运行时依赖性,但有六个开发 的依赖关系。

gem2rpm --dependencies rack-1.0.1.gem的控制台输出为:

  • ruby​​gem(test-spec)> = 0
  • ruby​​gem(露营)> = 0
  • ruby​​gem(fcgi)> = 0
  • ruby​​gem(memcache-client)> = 0
  • ruby​​gem(mongrel)> = 0
  • ruby​​gem(ruby-openid)> = 2.0.0
  • ruby​​gem(thin)> = 0`

如何指定仅包含运行时依赖项?

我还在rubyforge.org开了一张票,但该跟踪器上没有很多活动。

感谢您的任何提示。

2 个答案:

答案 0 :(得分:4)

发送者:Miguel Armas

我也遇到了这个错误。我只纠正了它 类型的依赖关系:运行时使用以下补丁:

--
--- gem2rpm.rb.orig 2010-04-08 00:09:39.794856454 +0100
+++ gem2rpm.rb  2010-04-08 00:27:11.808853058 +0100
@@ -105,10 +105,12 @@
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u}-n)
 Requires: rubygems
 <% for d in spec.dependencies %>
+<% if d.type == :runtime %>
 <% for req in d.version_requirements.to_rpm %>
 Requires: rubygem(<%= d.name %>) <%= req  %>
 <% end %>
 <% end %>
+<% end %>
 BuildRequires: rubygems
 <% if spec.extensions.empty? %>
 BuildArch: noarch
--

我没有将开发依赖项包含在BuildRequires中 因为不需要从SRPM创建RPM

答案 1 :(得分:1)

这个错误在4个月后修复了:https://github.com/lutter/gem2rpm/commit/10e8f80da8fa5dfcdd5e5800f72106f0b995a6e5所以更新到更新版本的gem2rpm将解决这个问题。