【问题标题】:RPM Spec file installed but unpackaged files in the %doc directiveRPM Spec 文件已安装但在 %doc 指令中未打包文件
【发布时间】:2012-11-26 14:58:21
【问题描述】:

我正在尝试创建一个 .spec 文件,并将 ChangeLog、README、INSTALL、COPYING、NEWS、AUTHORS 放在 %doc 指令的 %file 指令下。包 tarname 是 recafoh-prealpha,版本是 svn73。 rpmbuild -ba recafoh.spec 在说

RPM build errors:
    Installed (but unpackaged) file(s) found:
   /usr/share/doc/recafoh-prealpha/COPYING
   /usr/share/doc/recafoh-prealpha/ChangeLog
   /usr/share/doc/recafoh-prealpha/INSTALL
   /usr/share/doc/recafoh-prealpha/NEWS
   /usr/share/doc/recafoh-prealpha/README
   /usr/share/doc/recafoh-prealpha/TODO

但它们安装在 BUILDROOT/usr/share/doc/recafoh-prealpha-svn73/{ChangeLog, README, INSTALL, COPYING, NEWS, AUTHORS} 这是另一件奇怪的事情: README 也安装在 BUILDROOT/usr/share/doc/recafoh-prealpha-svn73 中。

那么,谁能解释一下 1)如何解决 rpmbuild 错误,以及 2)为什么 README 安装在 recafoh-prealpha-svn73 和 README 中,其余的都安装在 recafoh-prealpha 中?

非常感谢

编辑:

这里是 recafoh.spec 文件的相关部分:

%files
%doc AUTHORS ChangeLog COPYING NEWS README TODO
%{_sbindir}/recafohd
%{_bindir}/recafoh

【问题讨论】:

  • 请张贴spec文件的相关部分?
  • @AaronD.Marasco 哎呀,对不起,我忘了。立即将其发布为编辑。
  • @AaronD.Marasco 这是整个文件。 fpaste.org/Sh7p

标签: rpm specifications


【解决方案1】:

根据Fedora Build Documentation:'通常,"%doc" 用于列出 %{_builddir} 中未复制到 %{buildroot} 的文档文件。通常包括一个 README 和 INSTALL 文件。它们将被放置在目录 /usr/share/doc/%{name}-%{version} 中,不需要声明其所有权。'

所以你的两个问题的答案都与这一点有关。我假设您的 bzip2 文件中有这些文档,包含在 /usr/share/doc/recafoh-prealpha/ 目录中,对吗?因此,如果您查看文档,这是最重要的一点:通常,“%doc”用于列出 %{_builddir} 中未复制到 %{buildroot} 的文档文件。

如果您希望它们位于该特定目录(以及特定于版本的目录)中,请将您的 %file 部分修改为如下所示:

%files
%doc AUTHORS ChangeLog COPYING NEWS README TODO
/usr/share/doc/recafoh-prealpha/COPYING
/usr/share/doc/recafoh-prealpha/ChangeLog
/usr/share/doc/recafoh-prealpha/INSTALL
/usr/share/doc/recafoh-prealpha/NEWS
/usr/share/doc/recafoh-prealpha/README
/usr/share/doc/recafoh-prealpha/TODO
%{_sbindir}/recafohd
%{_bindir}/recafoh

如果您只希望它们位于 /usr/share/doc 中,请使用以下 %files 部分:

%files
/usr/share/doc/recafoh-prealpha/COPYING
/usr/share/doc/recafoh-prealpha/ChangeLog
/usr/share/doc/recafoh-prealpha/INSTALL
/usr/share/doc/recafoh-prealpha/NEWS
/usr/share/doc/recafoh-prealpha/README
/usr/share/doc/recafoh-prealpha/TODO
%{_sbindir}/recafohd
%{_bindir}/recafoh

如果您只想将文档放置在特定于版本的目录中,您应该修改您的 bzip2 文件,使文档文件处于顶层,然后它们应该与您最初提供的规范文件一起正确移动。

有关 %doc 指令的更详细信息,请查看:rpm.org

【讨论】:

  • 我认为这是有道理的......非常感谢!我试试看。
猜你喜欢
  • 1970-01-01
  • 2020-12-02
  • 2022-01-07
  • 2023-03-15
  • 2023-03-23
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多