文档章节

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

一夜七次郎啊
 一夜七次郎啊
发布于 2016/12/06 15:22
字数 1238
阅读 418
收藏 0

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,出现依赖项错误,错误代码如下:

[root@cSlave00 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

[root@cSlave00 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的关系就不用我说了,因此我感觉这个回答比较靠谱,赶紧试试吧。

[root@cSlave00 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
完毕!
[root@cSlave00 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

[root@cSlave00 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                                    
[root@cSlave00 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                                                               
完毕!
[root@cSlave00 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的依赖问题,首先检查一下本机是否安装了相应的依赖库;如果本机确实已经安装了所需的依赖库而问题依旧,那就试试把相应的兼容包安装一下,问题应该就能迎刃而解了!

本文转载自:http://www.cnblogs.com/think3t/p/4165102.html

一夜七次郎啊
粉丝 18
博文 136
码字总数 88446
作品 0
南京
程序员
私信 提问
Linux 下软件安装时报/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

十一国庆放假回来,一同事遇到一个问题就是在redhat 6下安装软件的时候会报 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory错误。 经过查询是需要安装glibc-2.12-1.14...

yuri_cto
2017/10/17
0
0
Fedora 17/18 x86_64 安装金山wps office

国内办公软件老大金山(wps)对微软的深度兼容,让我们不用去下载微软几百M到*G的安装包,去安装半天了……个人认为金山还是相当给力的,虽然仍有些不足,但我非常敬佩金山的。废话少说,下面...

crazypenguin
2013/03/26
2.5K
0
centos6.5 安装mysql5.6

今天想尝试给线上数据库的备份做个恢复测试,需要先安装一个数据库。出现了一下问题 1 操作系统是centos6.5 的版本 ,安装数据库是mysql5.6.31。 最初我下载的是rpm包安装,觉得测试环境就直...

lisq6151
2016/06/07
0
0
7、centos下安装mysql和找回root密码

1、desktop版的centos中安装mysql6.5(没有下面mini版那么麻烦,基本上都不缺依赖)过程如下: 1、先装server rpm -ivh MySQL-server-5.6.26-1.linuxglibc2.5.x8664.rpm 2、 若发现了包冲突(...

刘付kin
2016/12/15
28
0
CentOS用安装光盘创建本地 yum 源补装 RPM 软件包[总结]

CentOS或者RHEL 系统环境下,RPM 的依赖性是个很让人头疼的问题。每次系统安装完成过后,想再装一个软件包,敲下回车之前,都会心惊胆战,生怕跳出个依赖性错误。而在一个依赖性错误的背后,...

kjpioo
2013/08/21
242
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot 操作ActiveMQ

一、消息队列中间件介绍 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的...

zw965
4分钟前
1
0
xx

为什么会引入Storage(sessionStorage,localStorage,globalStorage) Web storage的目的是克服由cookie带来的限制,当数据需要严格控制在客户端上时,无须持续将数据发回服务器。主要是提供一...

五公里
12分钟前
2
0
Qt编写自定义控件57-直方波形图

一、前言 直方波形图控件非原创控件,控件大全中大概有20-30个控件非自己原创,而是参考了网上开源的代码,自己加以整理和完善,新增了插件的代码使得可以直接集成到QtDesigner或者QtCreator...

飞扬青云
13分钟前
1
0
或许你不知道的10条SQL技巧

这几天在写索引,想到一些有意思的TIPS,希望大家有收获。 一、一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不...

mskk
19分钟前
4
0
IntelliJ IDEA (Mac) 运行速度优化(JVM+localhost)

1.1. JVM 参数配置 打开 idea,菜单 –> help –> edit custom vm options,调整参数,重启即可。 具体调整参数: -Xms2g -Xmx2g -XX:ReservedCodeCacheSize=1024m -XX:+UseCompressedOops 1......

指尖Coding
28分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部