问题描述
对于64位系统,ia32-libs
软件包不再存在于Ubuntu 12.04存储库中。是否有任何可用的替换软件包可供下载?
最佳解决方法
ia32-libs软件包是在64位安装上安装32位软件包的一种手段。自Ubuntu版本11.10(Oneiric),Multi Arch已被添加。其中一个目标是取消ia32-libs
包。相反,您必须安装包的32位库:
sudo apt-get install package-name:i386
您不必担心标准存储库中的软件包(例如wine
软件包)。对于外部软件来说,这有点难度,因为您必须手动查找依赖关系。在这种情况下,使用您最喜爱的搜索引擎来查找您需要的库。
看起来ia32-libs仍然存在,但仅仅作为一个包含常用32位库的便利包。该软件包现在使用Multi Arch正确安装32位软件包。
次佳解决方法
Ubuntu 13.10
发生了什么?
ia32-libs
软件包已被lib32z1 lib32ncurses5 lib32bz2-1.0
完全替代。这不应该是一个问题,因为它的功能仍然存在,只是在其他包中。然而,我们并不是生活在一个理想的世界里,每个人都维护他们的软件包,所有的软件都是FLOSS,所以一些软件包仍然依赖于ia32-libs。
我如何安装依赖于ia32-libs的软件包x
有两种方法:
-
您可以手动重新打包,因此不再依赖于
ia32-libs
。 (优选的) -
您可以从Ubuntu 13.04(Raring Ringtail)存储库安装ia32-libs(只有在第一种方法不起作用时才是完全不可取的!)
1.重新包装旧包装
我将使用citrix接收器作为示例,但是您可以对任何.deb包使用此方法:
首先,从他们的网站上下载citrix receiver .deb软件包,并建立一个临时目录来做黑客入侵。
mkdir ica_temp
解压缩包
dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN
在gedit中打开文件(或者您最喜欢的编辑器)
sudo -H gedit ica_temp/DEBIAN/control
找到以Depends:...
开头的行。删除ia32-libs
并添加lib32z1 lib32ncurses5 lib32bz2-1.0
重建修改后的软件包
dpkg -b ica_temp icaclient-modified.deb
并安装它
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
安装citrix接收器也需要一些黑客攻击。您可以在the Ubuntu wiki上找到完整的安装说明
您可以使用任何仍然依赖于ia32-libs的旧.deb软件包来执行此操作。
2.从raring存储库安装ia32-libs
请注意,安装旧包装是非常糟糕的做法!可悲的是,对于一些二进制安装程序,您没有任何其他选择。
您可以从the raring repository下载ia32-libs软件包。下载并手动安装它,然后解决依赖关系。
第三种解决方法
我读过你应该安装ia32-libs-multiarch
软件包。然而,它并没有为我工作,我得到这个错误
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
为我工作的解决方案是安装以下软件包:
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
第四种方法
如果您遇到该错误,请尝试:
sudo apt-get update
然后再试一次:
sudo apt-get install ia32-libs
我刚刚做了12.04的全新安装,该软件包在存储库中仍然可用。事实上,在我运行更新之前,我自己得到了这个错误。之后,它运行良好。