有问题的软件包是samba-3.6.7。 我已经成功地构build了这个包,但是当试图安装它时,它会返回,
error: failed dependencies: libtalloc.so.1 is needed by samba-3.6.7
我不知道为什么会发生这种情况。 libtalloc.so.1
由我当前的samba包(我正在replace)提供,但是这个新的samba提供了libtalloc.so
和libtalloc.so.2
。 为什么它仍然依赖于libtalloc.so.1
,我该如何解决它?
使用mock
构build您的RPM。 这build立在chroot中,只包含用于构buildRPM的必要软件包,并有助于防止这种情况发生。
编辑spec文件并删除libtalloc.so.1的require条目。 重build,它应该工作。 让这些元数据条目不正确可能很难追查到。
libtalloc.so.1
是由自动依赖生成器添加的,这是不可靠的。
另一种可能是你的构build中的某些东西实际上与libtalloc.so.1
链接,这就是构build环境很重要的原因。
假设自动依赖关系生成器失败,你想修复它,你可以通过在spec文件中覆盖__perl_requires
(取决于rpm的版本)来实现:
source1: %{name}-filter-requires.sh %define __perl_requires %{SOURCE1}
然后%{name}-filter-requires.sh
是:
#!/bin/sh /usr/lib/rpm/perl.req $* |\ sed -e '/libtalloc.so.1/d'