rpmbuild跳过“检查未打包的文件/ usr / lib / rpm / check-files”

时间:2018-05-17 10:59:55

标签: rpm rpmbuild

构建内核rpm包rpmbuild时,“检查​​未打包的文件”是否很慢“”检查:

$ make -j$(nproc) binrpm-pkg
...
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/user/rpmbuild/BUI
LDROOT/kernel-4.17.0_rc5_next_20180517_3.gd86d9e8_default+-98.x86_64

对于内核甚至在强大的机器上,它需要30分钟。怎么避免呢? 我试图用_unpackaged_files_terminate_build来避免它,但它没有帮助:

echo "%_unpackaged_files_terminate_build    0" >> ~/.rpmmacros

--nocheck中向rpmbuild binrpm-pkg目标添加scripts/package/Makefile也无效。

但也许这是另一回事。当我使用配置make allyesconfig构建时,rpm文件有168MB。使用openSUSE Tumbleweed配置构建的RPM文件有647MB。

2 个答案:

答案 0 :(得分:0)

不幸的是,我很确定你无法阻止它。是在慢行吗?您是否在news:news_detail网络安装的企业环境中?

您尝试更改的内容只是说“如果您找到我未考虑的文件,请将其设为警告而不是错误。”

答案 1 :(得分:0)

遇到了同样的问题并找出了发生了什么。

如果您的 rpmbuild 处理速度很慢,则它不是来自 /usr/lib/rpm/check-files 脚本:
尝试注释它的所有行,你会看到它在那之后仍然挂起,即使这个脚本基本上不再做任何事情。

执行:

strace -f -s900 rpmbuild [your args]

您会看到在挂起之间,会发出 DNS 调用(调用 /usr/lib64/libresolv.so lib)尝试解析构建的主机名机器,一段时间后超时,然后重试....

如果您的机器有错误的 DNS 配置或者您的 DNS 服务器不工作,rpmbuild 进程将在每次启动时挂起。

为了避免这些挂起:

  • 更正构建机器上的 DNS 配置
  • sudo rm -f /etc/resolv.conf 在你的构建机器上

剩下的真正问题是:
为什么像 rpmbuild 这样的本地进程进行 DNS 调用?”....