ubuntu 12.04及12.10无法安装 ia32-libs

时间:2022-09-21 16:13:07
administrator@ubuntu:~$ sudo apt-get install ia32-libs
[sudo] password for administrator: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
 
下列软件包有未满足的依赖关系:
 ia32-libs : 依赖: ia32-libs-multiarch 但无法安装它
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
 
这种情况在11.10以下(包括11.10)中都没有出现。
在搭建android 开发环境的时候 ,通常都会出现无法创建adv的情况,这种情况的原因是因为ubuntu是64位的,没有安装32的依赖库,而我们的解决方法,通常也是 sudo apt-get install ia32-libs,这个方法在11.10以下是可以的,但是12.04上面就会出现上面的情况无法安装,下面是我找到的方法:
1: apt-get install gnupg flex bison gperf zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib
(经过验证发现方法一并没有用)
 
-------------------------------------------------------------------------------
arm-linux-gcc -v(问题)
 
 

网上也没有找到合适的方法。

最后还是用google(还是比baidu强啊),虽然没有找到该库的安装方法,但是找到了解决方法:即自己安装需要的32位库

☆①$ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

 

我本意是运行adb的。运行adb时,发现缺乏libncurses5库,自己动手,丰衣足食,比葫芦画瓢,

☆②sudo apt-get install libncurses5:i386

在64位下,gcc默认编译代码位64位的,但是,如果你想编译位的,可以用gcc -m32选项,来设置。

不过,不幸的是,会出现错误,说找不到 /usr/include/features.h文件什么的。google一下,发现用这种方法:

☆③sudo apt-get install g++-multilib(就这一句有用的)

-------------------------------------------------------------------------------

这么纠结过后,终于能创建模拟器了,但是又有新的问题:

SDL init failure, reason is: No available video device

各方查找发现:

方法1:sudo apt-get install ia32-libs lib32stdc++6

结果出现:

 

正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
lib32stdc++6 已经是最新的版本了。
lib32stdc++6 被设置为手动安装。
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 ia32-libs : 依赖: ia32-libs-multiarch 但无法安装它
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

 

问题有返回前面了ubuntu 12.04及12.10无法安装 ia32-libs

 

 

之后我又采取这个方法命令:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 libz1:i386 libsdl1.2debian:i386

结果出现:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
E: 无法定位软件包 libc6
E: 无法定位软件包 libncurses5
E: 无法定位软件包 libstdc++6
E: 无法按照正则表达式 libstdc++6 找到任何软件包
E: 无法定位软件包 libz1
E: 无法定位软件包 libsdl1.2debian
E: 无法按照正则表达式 libsdl1.2debian 找到任何软件包

 

估计是之前更新不上,下面又进行:

(成功的,只用这一句即可)sudo apt-get update

 


SDL(Simple DirectMedia Layer)是一个*的跨平台的多媒体开发包,适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件