百胜如何在安装时检查所需的库(依赖性问题)

时间:2018-12-17 13:02:30

标签: rpm yum

使用rpmbuild构建RPM时遇到问题。

我使用SRPM来构建PHP的自定义版本,但是当我尝试安装此RPM时,yum在其他服务器(编译时未在其上)上给出以下错误:

--> Finished Dependency Resolution
Error: Package: php70-cli-7.0.33-1.el6.x86_64 (local)
           Requires: libiconv.so.2()(64bit)
Error: Package: php70-common-7.0.33-1.el6.x86_64 (local)
           Requires: libiconv.so.2()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

构建服务器:

[root@server rpmbuild]# file /usr/local/lib/libiconv.so.2
/usr/local/lib/libiconv.so.2: symbolic link to `libiconv.so.2.6.0'

安装服务器:

[root@otherserver ~]# file /usr/local/lib/libiconv.so.2
/usr/local/lib/libiconv.so.2: symbolic link to `libiconv.so.2.6.0'

有人可以向我解释为什么百胜找不到它吗?还是将我推向正确的方向?

谢谢

1 个答案:

答案 0 :(得分:0)

如果它不在RPM数据库中,则就rpmyum而言,它没有发生。由于/usr/local/lib/libiconv.so.2位于/usr/local和Fedora explicitly says not to put things there中,因此我假定它不是由RPM安装的。

一种检查方式是rpm -q --whatprovides /usr/local/lib/libiconv.so.2-我假设它会说它不是任何软件包提供的。

您需要在构建计算机和目标计算机上都安装提供RPM的RPM(快速搜索会显示a mirror here)。然后重建RPM(达到发行版号!)。