原文链接http://blog.csdn.net/mifangdebaise/article/details/44942395
安装软件时出现问题 ×.so.×:wrong ELF class: ELFCLASS64 ,大致的意思是软件是32位的,需要32位的 ×.so.×动态链接库,而系统是64位的所提供的该 动态链接库×.so.×是64位的,所以不能用。
这个问题真是郁闷了我一天,网上也是各种找解决方案,却因为网上每个人安装的软件不同,所以各种说明,可能因为我自己太水了,对linux也是一知半解,网上的解决方案不是看不懂就是不管用,最后我都想换成32位系统了,转念一想为了一个软件换系统台不划算,干脆自己再搞搞,结果还真弄出来了,不说废话了。。。
首先可以查看自己的64位系统是否开启了32位支持功能,可以参考 http://linux.cn/article-2935-1.html
1. 在终端输入 dpkg --print-architecture
你将会看到像下面这样的内容:
amd64
这说明着你已经拥有了64位架构内核。
2. 输入 dpkg --print-foreign-architectures
输出是:
i386
说明已经打开多架构支持了,如果还没打开可以按下面操作
3. sudo dpkg --add-architecture i386
sudo apt -get update
然后就会开始下载更新然后运行。
之后你需要输入:
sudo apt-get dist-upgrade
它会检查你已经拥有的库文件是否有更新的版本。
若果然有的话,它会问你是否需要更新(y/n)。
如此这般,你就已经成功地为你的64位系统安装了32位支持了。
既然软件需要32位的库,并且64位系统已经安装了32位支持了,那就安装32位的呗,可是,要注意的是在http://packages.ubuntu.com/trusty/devel/网站上下到的32位deb包是不能安装成功的,总是会提示什么32位不能安装在64位系统之类的,所以要下载rpm包,地址:http://rpm.pbone.net/
1. 在上面的网站中搜索自己需要的×.so.×,然后选择i386的rpm包下载,注意要下载i386的
2. 下载好后,不要转换成deb包,因为用alien命令是转换不成功的,直接双击rpm包,提取里面的文件夹
3. 在提取出的文件夹中搜索自己需要的×.so.×,你需要的×.so.×可能是某个源文件xx的‘快捷方式’,把源文件xx复制到你自己的某个目录下
4. 然后用命令 ln -s 某个目录/xx /urs/lib/×.so.×,创建该源文件xx的‘快捷方式’到/usr/lib/目录下
我就是用这笨办法搞定的,十几个×.so.×都是这么弄的,虽然比较笨总算还是能运行了。