Linux安装aapt问题之libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64
Posted iaiti
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux安装aapt问题之libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64相关的知识,希望对你有一定的参考价值。
最近先把业余的ROR放一放,手头上有些工作要处理。以前在windows中获取过apk信息,最近打算在Linux获取apk信息,使工作更加智能化。
之前看《The linux command line》的时候以为了解一些基本指令就可以了,可事实上当你要用到这个系统的时候,需要的不止这些。后面要回去学习下脚本。
现在的当务之急是先把aapt跑出来。
1、安装aapt工具。
参考:http://www.aichengxu.com/view/25283
下载工具包,没梯子的自己下载到这个包后再自己传到服务器吧。
$ wget http://android-apktool.googlecode.com/files/apktool-install-linux-r04-brut1.tar.bz2
解压缩
$ tar -jxvf apktool-install-linux-r04-brut1.tar.bz2
移动文件
$ mv aapt /usr/bin
$ mv apktool /usr/bin
输入aapt命令,控制台输出
-bash: /usr/bin/aapt: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
原因是64位系统中安装了32位程序,apktool是32位。
2、查看linux版本信息和系统位数。
那我自己也需要清楚我的机子装的是linux哪个版本还有位数。
$ cat /etc/issue
CentOS release ,可以知道是CentOS发行版
$ file /sbin/init
/sbin/init: ELF 64-bit LSB shared object, x86-64,为64位。
32-bit即为32位。
3、安装包和问题的出现
刚开始安装我是参考这个来的:http://michaelzqm.iteye.com/blog/1881576
$ yum install -y glibc-2.12-1.107.el6.i686
本来照着装这个,却报了这样的错误。
No package glibc-2.12-1.107.el6.i686 available.
网上搜了一下,换了个版本的包。
$ yum install -y glibc-2.12-1.166.el6.i686
感觉上一个链接写的介绍有点坑,所以按照另外一个进行安装:
http://www.aichengxu.com/view/25283,centos 64位linux系统下安装appt命令的apktool工具包的笔记
此时执行
$ aapt
-bash: /usr/bin/aapt: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装包
$ yum install glibc.i686
安装完后,继续执行
$ aapt
aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
继续安装包
$ yum install zlib.i686
安装完后,继续执行
$ aapt
aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
继续安装包
$ sudo yum install libstdc++.i686
问题出现了:
安装过程中报错:
Error: Protected multilib versions: libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64
进行更新,注意更新的版本是将上面的.i686部分更新为x86_64
$yum update libstdc++-4.4.7-16.el6.x86_64
$aapt
aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
回到原来的那步:
$ yum install libstdc++.i686
这次安装成功。
aapt正常执行
$ aapt
Android Asset Packaging Tool
Usage:
aapt l[ist] [-v] [-a] file.{zip,jar,apk}
问题应该是包的版本和位数问题,虽然不是太了解,但是照着那个思路,根据控制台的输出版本还有网上有的版本,修改一下还是可以调通的。
网上一篇文章抄来抄去,一字不改,也不注明原出处,也是乱。
以上是关于Linux安装aapt问题之libstdc++-4.4.7-16.el6.i686 != libstdc++-4.4.7-11.el6.x86_64的主要内容,如果未能解决你的问题,请参考以下文章
你如何找到你的 linux 机器上安装了哪个版本的 libstdc++ 库?
libstdc++.so.6 是linux自带的吗? 安装完linux就有了?还是另外需要额外安装的软件?