我正在尝试安装一些需要glib 2.14
所以我在本教程中安装了它:How to upgrade glibc from version 2.12 to 2.14 on CentOS?
问题是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依赖项添加自定义路径?
答案 0 :(得分:1)
如果您向我们提供了您要安装的软件包的名称,那会有所帮助。你不能只提供一个路径,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
文件,用于创建声明以提供这些库的虚拟包:
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
要从此SPEC文件创建虚拟包,首先要创建一些目录:
mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/BUILDROOT ~/rpmbuild/RPMS ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS
然后将SPEC文件复制到~/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
您的RPM将在/home/.../rpmbuild/RPMS/
下,然后您可以使用rpm -ivh ....rpm
进行安装。然后,您应该能够毫无问题地安装其他软件包。