rpmbuild 安装(但未打包)的文件源

问题描述 投票:0回答:3

我正在尝试在 REDHAT 6 系统上从二进制文件构建 RPM。我拥有

%files
部分中包含的所有文件 (
find /path/to/fake/install -type f >> specfile
)

当我跑步时

rpmbuild -bb specfile --target x86_64
我得到

Checking for unpackaged file(s): /usr/lib/rpm/check-files /path/to/rpmbuild/BUILDROOT/Package-1.0.0-1.el6.x86_64
error: Installed (but unpackaged) file(s) found:

RPM build errors:
    Installed (but unpackaged) file(s) found:

请注意,错误消息中没有列出任何文件。我不确定出了什么问题,有什么想法吗?

linux packaging redhat rpm rpmbuild
3个回答
26
投票

您可以通过使用忽略此类错误

%define _unpackaged_files_terminate_build 0

另请参阅


14
投票

我猜你的 /path/to/fake/install 不正确。

%files
部分中的路径必须是文件最终安装的路径,例如
/usr/local/bin/myprog
。在 rpm 构建期间,在
%build
部分中,您需要确保将文件放置在您在
%files
部分中指定的同一位置,或者使用
buildroot
rpmbuild
选项并使用
$RPM_BUILD_ROOT规范文件中的 
变量具有与
%files
列表匹配的子路径,在本例中为
$RPM_BUILD_ROOT/usr/local/bin/myprog
。有关详细信息,请参阅 http://ftp.rpm.org/max-rpm/ch-rpm-anywhere.html


0
投票

可能发生这种情况的一个示例:假设在

%post
部分中有一个
%install_info
,并且在
%postun
部分中有一个关联的
%install_info_delete
。这需要在
%install
部分中使用类似
rm -f %{buildroot}/%{_infodir}/dir
的命令显式删除信息文件的中间目录。

© www.soinside.com 2019 - 2024. All rights reserved.