我刚刚安装了CentOS 6 64位版本,我试图在64位计算机上安装32位应用程序,但出现此错误:
/lib/ld-linux.so.2:错误的ELF解释器:没有这样的文件或目录
我是Linux新手。我该如何解决?
您使用的是64位系统,并且没有安装32位库支持。
(如果您未在设置中使用sudo,请阅读下面的注释)
Fedora / Red Hat系列中的大多数台式机Linux系统:
pkcon install glibc.i686
可能是一些桌面Debian / Ubuntu系统?
pkcon install ia32-libs
Fedora或更新的Red Hat,CentOS:
sudo dnf install glibc.i686
较旧的RHEL,CentOS:
sudo yum install glibc.i686
甚至更老的RHEL,CentOS:
sudo yum install glibc.i386
Debian或Ubuntu:
sudo apt-get install ia32-libs
应该抓住您需要的(第一个,主要的)库。
任何需要安装glibc.i686或glibc.i386可能会遇到其他库依赖项的人。要标识提供任意库的软件包,可以使用
glibc.i686
glibc.i386
ldd /usr/bin/YOURAPPHERE
如果您不确定它在其中,/usr/bin也可以退回
/usr/bin
ldd $(which YOURAPPNAME)
输出将如下所示:
linux-gate.so.1 => (0xf7760000) libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000) libSM.so.6 => not found
检查缺少的库(例如libSM.so.6,在上面的输出中),对于每个库,您都需要找到提供它的软件包。
libSM.so.6
Fedora /红帽企业版/ CentOS:
dnf provides /usr/lib/libSM.so.6
或者,在较旧的RHEL / CentOS上:
yum provides /usr/lib/libSM.so.6
或者,在Debian / Ubuntu上:
首先,安装并下载数据库 apt-file
apt-file
sudo apt-get install apt-file && apt-file update
然后搜索
apt-file find libSM.so.6
请注意/usr/lib(通常)情况下的前缀路径;很少有一些库/lib由于历史原因而仍然存在…在典型的64位系统上,32位库位于其中,/usr/lib而64位库则位于其中/usr/lib64。
/usr/lib
/lib
/usr/lib64
(Debian / Ubuntu对多体系结构库的组织方式有所不同。)
上面应该给你一个包名,例如:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library Repo : fedora Matched from: Filename : /usr/lib/libSM.so.6
在这个例子中,包的名称是libSM和 的包的32位版本的名称是libSM.i686。
libSM
libSM.i686
然后,您可以pkcon在GUI中使用该软件包以获取必需的库,也可以sudo dnf/yum/apt-get根据需要安装…。例如pkcon install libSM.i686。如有必要,您可以完全指定版本。例如sudo dnf install ibSM-1.2.0-2.fc15.i686。
pkcon
sudo dnf/yum/apt-get
pkcon install libSM.i686
sudo dnf install ibSM-1.2.0-2.fc15.i686
有些图书馆的名称前会带有“时代”标记。这可以省略(好奇的人可以阅读下面的注释)。
偶然地,您面临的问题要么暗示您的RPM(分别为DPkg / DSelect)数据库已损坏,要么您要运行的应用程序未通过程序包管理器安装。如果您是Linux的新手,则可能希望避免使用包管理器以外的其他来源的软件…
类型
su -c
每次您看到sudo例如
sudo
su -c dnf install glibc.i686
名称前的“时代”指示符是底层RPM库处理版本号的方式的产物。例如
2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files Repo : fedora Matched from: Filename : /usr/lib/libpng.so.3
在此,2:可以省略;公正pkcon install libpng.i686或sudo dnf install libpng-1.2.46-1.fc16.i686。(它含糊地暗示着这样的含义:在某个时刻,libpng软件包的版本号向后滚动,并且必须增加“ epoch”以确保更新期间新版本将被视为“较新”。或者类似的情况发生了两次)。 )
2:
pkcon install libpng.i686
sudo dnf install libpng-1.2.46-1.fc16.i686
libpng
更新 以更清楚地说明和涵盖各种程序包管理器选项(2016年3月)