构建内核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。
答案 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 进程将在每次启动时挂起。
为了避免这些挂起:
剩下的真正问题是:
“为什么像 rpmbuild 这样的本地进程进行 DNS 调用?”....