已安装RPM Spec文件但%doc指令中的未打包文件

时间:2012-11-26 14:58:22

标签: rpm specifications

我正在尝试创建.spec文件,并将%log,README,INSTALL,COPYING,NEWS,AUTHORS放在%file指令右下方的%doc指令中。包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

1 个答案:

答案 0 :(得分:5)

根据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文件,使文档文件位于顶层,然后使用您最初提供的spec文件正确移动它们。

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