尝试使用在 SLES12 SP5 上构建我自己的 monit RPM 包时rpmbuild
,出现了一些令我困惑的错误:
> rpmbuild -ba -r ~/rpmbuild GNU/RPM/monit.spec
error: Failed build dependencies:
flex >= 2.6 is needed by monit-12:5.29.0-0.0.x86_64
bison >= 2.7 is needed by monit-12:5.29.0-0.0.x86_64
libopenssl-devel >= 1.0.2p is needed by monit-12:5.29.0-0.0.x86_64
pam-devel >= 1.1.8 is needed by monit-12:5.29.0-0.0.x86_64
> rpm -q flex bison libopenssl-devel pam-devel
flex-2.6.4-9.7.1.x86_64
bison-2.7-6.107.x86_64
libopenssl-devel-1.0.2p-1.13.noarch
pam-devel-1.1.8-24.49.1.x86_64
看起来好像所有依赖项都已存在,但是仍然rpmbuild
抱怨!
我是不是没看明白,还是有什么地方出了问题rpmbuild
?提供的包裹rpmbuild
是rpm-build-4.11.2-16.21.1.x86_64
(截至今天最新的)。
附加信息
似乎有些地方坏了rpmbuild
,因为添加时--nodeps
编译成功,但我注意到指定的“buildroot”是重复的,即:打包时使用“~/rpmbuild/~/rpmbuild/BUILDROOT”,但编译时使用正确的“BUILD”目录。
答案1
奇怪的是,似乎缺少的依赖项是由选项触发的-r ~/rpmbuild
;将其排除在外使得构建成功,并且$HOME/rpmbuild
无论如何它都用作根目录。