rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动。中间遇到了一些问题,主要是安装rpm包出现的依赖问题,费尽周折总算是解决了。现在简单总结一下。

首先说明一下,我用的CentOS版本是6.6,64位。打印机驱动程序是两个rpm安装包:cndrvcups-common-2.60-1.x86_64.rpmcndrvcups-capt-2.60-1.x86_64.rpm

执行安装命令rpm -ivh cndrvcups-common-2.60-1.x86_64.rpm,出现依赖项错误,错误代码如下:

[[email protected] RPM]# rpm -ivh cndrvcups-common-2.60-1.x86_64.rpm error: Failed dependencies: libc.so.6 is needed by cndrvcups-common-2.60-1.x86_64 libc.so.6(GLIBC_2.0) is needed by cndrvcups-common-2.60-1.x86_64 libc.so.6(GLIBC_2.1) is needed by cndrvcups-common-2.60-1.x86_64 libc.so.6(GLIBC_2.1.3) is needed by cndrvcups-common-2.60-1.x86_64 libc.so.6(GLIBC_2.3) is needed by cndrvcups-common-2.60-1.x86_64 libdl.so.2 is needed by cndrvcups-common-2.60-1.x86_64 libdl.so.2(GLIBC_2.0) is needed by cndrvcups-common-2.60-1.x86_64 libdl.so.2(GLIBC_2.1) is needed by cndrvcups-common-2.60-1.x86_64 libm.so.6 is needed by cndrvcups-common-2.60-1.x86_64 libm.so.6(GLIBC_2.0) is needed by cndrvcups-common-2.60-1.x86_64 libpthread.so.0 is needed by cndrvcups-common-2.60-1.x86_64 libpthread.so.0(GLIBC_2.0) is needed by cndrvcups-common-2.60-1.x86_64 libpthread.so.0(GLIBC_2.1) is needed by cndrvcups-common-2.60-1.x86_64 libpthread.so.0(GLIBC_2.3.2) is needed by cndrvcups-common-2.60-1.x86_64 librt.so.1 is needed by cndrvcups-common-2.60-1.x86_64 libstdc++.so.6 is needed by cndrvcups-common-2.60-1.x86_64 libstdc++.so.6(CXXABI_1.3) is needed by cndrvcups-common-2.60-1.x86_64

在网上进行一番搜索,解决方法都是安装缺少的依赖库即可。但是搜索后发现,本机上有些库已经安装了。比如libc.so.6,该库对应的软件包名称为glibc

[[email protected] RPM]# yum list glibc*
已加载插件:fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.cug.edu.cn * extras: mirrors.cug.edu.cn * updates: mirrors.skyshe.cn 已安装的软件包 glibc.x86_64 2.12-1.149.el6 @anaconda-CentOS-201410241409.x86_64/6.6 glibc-common.x86_64 2.12-1.149.el6         @anaconda-CentOS-201410241409.x86_64/6.6 glibc-devel.x86_64 2.12-1.149.el6         @anaconda-CentOS-201410241409.x86_64/6.6 glibc-headers.x86_64 2.12-1.149.el6         @anaconda-CentOS-201410241409.x86_64/6.6 可安装的软件包
glibc.i686 2.12-1.149.el6         base
glibc-devel.i686 2.12-1.149.el6         base
glibc-static.i686 2.12-1.149.el6         base
glibc-static.x86_64 2.12-1.149.el6         base
glibc-utils.x86_64 2.12-1.149.el6         base

那么问题来了,既然已经安装了libc.so.6,为什么还是提示缺少该库呢?继续找啊找,百度搜索基本上无果,只能寄希望于谷歌。终于,搞定科学上网,谷歌能上了,继续搜索,重点关注英文结果。最后,总算在Stack Overflow上找到了类似的问题与解答,点击这里查看原文。这里只摘录关键的几句话:

In Red Hat Enterprise Linux 5, if a package was available for both the main and the compatibility architectures, both architectures of the package were installed by default.
In Red Hat Enterprise Linux 6, only the package for the primary architecture is installed by default.
To avoid problems during the backup-archive client and API installation
on a 64-bit machine, be sure to install libstdc++ and compat-libstdc++.

大意是说,从Red Hat Enterprise Linux 6开始,默认只安装主架构所需要的包,而不安装兼容架构的包,也就是说,64位系统默认只安装64位的软件包。为避免这种问题,在64位系统中,要同时安装64位的包和32位的兼容包。CentOS和从Red Hat Enterprise Linux 6的关系就不用我说了,因此我感觉这个回答比较靠谱,赶紧试试吧。

[[email protected] RPM]# yum install glibc.i686 已加载插件:fastestmirror, refresh-packagekit, security 设置安装进程
......
已安装: glibc.i686 0:2.12-1.149.el6 作为依赖被安装: nss-softokn-freebl.i686 0:3.14.3-18.el6_6 作为依赖被升级: nss-softokn-freebl.x86_64 0:3.14.3-18.el6_6 完毕! [[email protected] RPM]# rpm -ivh cndrvcups-common-2.60-1.x86_64.rpm error: Failed dependencies: libstdc++.so.6 is needed by cndrvcups-common-2.60-1.x86_64 libstdc++.so.6(CXXABI_1.3) is needed by cndrvcups-common-2.60-1.x86_64

结果令人满意,果然不再提示libc.so.6了。继续解决libstdc++.so.6

[[email protected] RPM]# yum list libstdc++* 已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.163.com
 * updates: ftp.sjtu.edu.cn
已安装的软件包
libstdc++.x86_64 4.4.7-11.el6         @anaconda-CentOS-201410241409.x86_64/6.6 可安装的软件包
libstdc++.i686 4.4.7-11.el6         base
libstdc++-devel.i686 4.4.7-11.el6         base
libstdc++-devel.x86_64 4.4.7-11.el6         base
libstdc++-docs.x86_64 4.4.7-11.el6         base
[[email protected] RPM]# yum install libstdc++.i686 已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
......
已安装:
  libstdc++.i686 0:4.4.7-11.el6
作为依赖被安装:
  libgcc.i686 0:4.4.7-11.el6
完毕!
[[email protected] RPM]# rpm -ivh cndrvcups-common-2.60-1.x86_64.rpm  Preparing... ########################################### [100%] 1:cndrvcups-common ########################################### [100%]

至此,终于解决了依赖问题,cndrvcups-common-2.60-1.x86_64.rpm终于安装成功。用同样的方法,也顺利地把cndrvcups-capt-2.60-1.x86_64.rpm安装成功。

总结:在安装rpm包的时候,如果出现类似libc.so.6 is needed by XXX的依赖问题,首先检查一下本机是否安装了相应的依赖库;如果本机确实已经安装了所需的依赖库而问题依旧,那就试试把相应的兼容包安装一下,问题应该就能迎刃而解了!

时间: 2024-10-08 19:35:10

rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法的相关文章

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

git提交过程中遇到的 index.lock 问题导致无法提交的解决方法

在提交代码的过程中,可能会遇到下面的问题: fatal: Unable to create 'C:/programLists/zzw-q1/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is

CentOS使用yum源中自带的rpm包安装LAMP环境

CentOS使用yum源中自带的rpm包安装LAMP环境.这是Linux下安装LAMP的环境一种最基本最简便的方式.新手可以从容安装使用. 1. 安装基础包(可选安装)yum install -y wget zip unzip gzipyum install -y python ruby perlyum install -y gc gcc gcc-c++ 2. 安装php及其相关组件yum install -y php php-gdyum install -y php-mbstring php-

Oracle RAC安装过程中碰到的“坑”和关键点(二)

(1) 依赖包的安装 Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作. 本次安装碰到了几个包的问题: (a) rpm -Uvh gcc-4*提示: 02. error: Failed dependencies: 03.    cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64 04.    cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64 不

rpm包安装

RPM全称是"RedHatPackageManager"是由RedHat公司发发展起来的,本质是将软件源码包经过编译并且打包成rpm的格式,rpm文件包含的有二进制文件,配置文件,库文件等,同时RPM以一种数据库记录的方式将所需要的软件安装到linux系统上,优点是安装方便,缺点是只能安装在编译时默认的硬件与操作系统版本.1.rpm包的版本说明httpd-2.2.3-74.el5.centos.i386.rpm#以此软件为例说明httpd :软件名2.2.3 :分别表示:主版本号-次版

Python学习第六天----Linux内存管理、进程管理、RPM包安装管理及源码安装软件

Linux内存管理.进程管理.RPM包安装管理及源码安装软件 一.交换分区     交换分区其实就相当于Windows系统下的虚拟内存的概念,当物理内存不够用的时候,由操作系统将硬盘的一块区域划分出来作为内存使用.具体使用方法如下:      [[email protected] ~]# fdisk -l 磁盘 /dev/sdb:16.1 GB, 16106127360 字节,31457280 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):5

ltib安装过程中遇到好多问题,从网上转来的好多份总结

最近调试MPC5125的板子,第一步LTIB都装不过去,挫败感十足. LTIB的安装镜像来自于freescale的ltib-mpc5121ads-200906,是用于Ubuntu 10版本之前的,现在就算装10.04也无法联网更新了,所以只能把服务器装为Ubuntu 12.04版本的,遂厚脸皮去问freescale的技术人员,得到答复,安装步骤如下: a) 通过Ubuntu的自我更新进行更新: b) 安装相关包: sudo apt-get install patch g++ rpm zlib1g

包管理 ----- Linux操作系统rpm包安装方式步骤

Linux操作系统rpm包安装方式步骤 2016年08月04日 07:00:26 阅读数:17140 转自 : http://os.51cto.com/art/201003/186467.htm 特别值得一提的是Linux操作系统有很多值得学习的地方,这里我们主要介绍Linux操作系统,包括介绍Linux操作系统等方面.Linux操作系统软件安装方法总结 一.rpm包安装方式步骤: 引用: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su

RPM包安装LAMP及httpd虚拟机SSL实现

简单罗列基础命令,只分享我的想法! 目的:通过RPM包安装LAMP,提供两个虚拟主机,一个用于WordPress,一个用于phpMyAdmin,为后一个提供ssl访问方式. 环境是vmware的虚拟机CentOS6.6,实机win7,后面的测试会用到win7上面的浏览器,已经把虚拟机中CentOS中的两个httpd的虚拟机的名字加入到win7的hosts文件中. 1.  修改yum源,指向CentOS的系统光盘,需要使用RPM包,配置如下: 图1 2.  安装apache的httpd,直接yum