我正在尝试安装一些需要glib 2.14
所以我使用本教程安装了它:如何将GLIBC从CENTOS上的版本2.12升级到2.14?
问题是glib 2.14
路径是/opt/glibc-2.14/lib/libc.so.6
因此,当我尝试使用rpm安装软件时,我仍然会遇到此错误:
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by xyz-4.6.6-1.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by xyz-4.6.6-1.x86_64
libc.so.6(GLIBC_2.17)(64bit) is needed by xyz-4.6.6-1.x86_64
如何添加RPM依赖性的自定义路径?
如果您给我们尝试安装的软件包的名称,这将有所帮助。您不能只提供一条路径,rpm检查是否有记录的任何包裹提供这些库,而没有任何包装。这是您可以使用的几种方法:
-
使用
--nodeps
如果您已经知道自己拥有所需的一切,则使用
--nodeps
完全很好。 -
为缺少的库创建虚拟软件包(高级(
您缺少以下库:
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
。这是一个示例
.spec
文件,可以创建一个虚拟软件包,该软件包 Sopears 提供这些库:Name: libc-virtual-provides Provides: libc.so.6(GLIBC_2.14)(64bit) Provides: libc.so.6(GLIBC_2.15)(64bit) Provides: libc.so.6(GLIBC_2.17)(64bit) Version: 1.0 Release: 1 Summary: Virtual package providing libc 2.14, 2.15, 2.17 License: Public domain %description Virtual package providing libc 2.14, 2.15, 2.17 %prep %files %changelog
要从此规格文件创建一个虚拟软件包,首先创建一些目录:
mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/BUILDROOT ~/rpmbuild/RPMS ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS
然后将规格文件复制到
~/rpmbuild/SPECS
,然后构建一个RPM:cp virtual-glibc-provides.spec ~/rpmbuild/SPECS cd ~/rpmbuild/SPECS rpmbuild -ba virtual-glibc-provides.spec
您将获得这样的输出:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.6Jni5u + umask 022 + cd /home/.../rpmbuild/BUILD + exit 0 Processing files: glib2.14-virtual-provides-2.14-1.x86_64 Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/.../rpmbuild/BUILDROOT/glib2.14-virtual-provides-2.14-1.x86_64 Wrote: /home/.../rpmbuild/SRPMS/glib2.14-virtual-provides-2.14-1.src.rpm Wrote: /home/.../rpmbuild/RPMS/x86_64/glib2.14-virtual-provides-2.14-1.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.YNj8gP + umask 022 + cd /home/.../rpmbuild/BUILD + /bin/rm -rf /home/.../rpmbuild/BUILDROOT/glib2.14-virtual-provides-2.14-1.x86_64 + exit 0
您将在
/home/.../rpmbuild/RPMS/
下使用RPM,然后可以使用rpm -ivh ....rpm
安装。然后,您应该能够在没有任何问题的情况下安装其他软件包。