我正在尝试创建.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
答案 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。