【问题标题】:Creating a virtual RPM package with no files and only other dependencies创建一个没有文件而只有其他依赖项的虚拟 RPM 包
【发布时间】:2016-04-28 13:54:41
【问题描述】:

我正在将 FFMPEG 构建到 RPM 中,并且定义了许多子包。每个子包都是FFMPEG提供的一个共享库,或者是该共享库的开发文件,即libavcodec-devel

我想提供一个名为ffmpeg-devel 的包,它只依赖于所有其他devel 包。我目前正在做以下事情:

%package -n ffmpeg-devel
Summary: ffmpeg-devel
Requires: libavcodec-devel
Requires: libavdevice-devel
Requires: libavfilter-devel
Requires: libavformat-devel
Requires: libavresample-devel
Requires: libavutil-devel
Requires: libpostproc-devel
Requires: libswresample-devel
Requires: libswscale-devel
%description -n ffmpeg-devel
ffmpeg-devel
%files -n ffmpeg-devel
%exclude /*

现在,通常情况下,rpmbuild 将在包的 BUILDROOT 中看到任何未打包的文件,如果未包含或明确排除任何内容,则构建失败。在我看来这是一件好事,因为它可以防止打包者丢失东西。

我的ffmpeg-devel 虚拟包中的上述问题是它排除了所有内容,使我无法查看是否未包含某些内容。

有没有更好的方法来制作只包含对其他包的依赖的空包?

【问题讨论】:

  • 如果您的%install 部分什么都不做,则构建根目录应该为空,所以只需将%files 留空......?

标签: rpm rpmbuild


【解决方案1】:

我同意亚伦,你应该离开%文件部分了。 P>

其中一部分你做得对。这个元包是空的,所以没有文件可看。

您缺少的是检查 /bin/rpm 您的包将要求哪些依赖项:

rpm -qpR my-package.rpm

【讨论】:

  • 实际上,我发现完全省略 %files 会导致没有二进制包,只有 .src.rpm。我可以相信这是我的环境,C7 和对肮脏工作的模拟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多