ia32-libs 包怎么了?

Ubu*_*ser 108 multiarch

ia32-libs软件包不再存在于 64 位系统的 Ubuntu 12.04 存储库中。是否有任何可用的替换包可供下载?

Lek*_*eyn 104

ia32-libs 包是一种在 64 位安装上安装 32 位包的黑客。从 Ubuntu 11.10 (Oneiric) 版本开始,添加了Multi Arch。它的目标之一是删除ia32-libs包。相反,您必须使用以下命令安装包的 32 位库:

sudo apt-get install package-name:i386
Run Code Online (Sandbox Code Playgroud)

对于标准存储库中的wine包(例如包),您不必担心这一点。对于外部软件,这有点困难,因为您必须手动查找依赖项。在这种情况下,使用您最喜欢的搜索引擎来查找您需要的库。

ia32-libs 似乎仍然存在,但只是作为包含常见 32 位库的便利包。这个包现在使用 Multi Arch 来正确安装 32 位包。

  • 好吧,假设如何找到所有依赖项并首先安装 :i386 ? (18认同)
  • @wingman 运行`ldd`,将二进制文件的路径作为参数传递。如果输出包含类似 `libz.so.1 => not found` 的行,那么你需要找到 `libz.so.1`。您可以使用 http://packages.ubuntu.com/ 或 `apt-file search` 来查找包含该文件的包。在我给出的例子中,你需要安装 `zlib1g:i386`。 (11认同)

Mer*_*hts 44

Ubuntu 13.10

发生了什么?

ia32-libs包已完全替换为lib32z1 lib32ncurses5 lib32bz2-1.0. 这应该不是问题,因为它的功能仍然存在,只是在其他包中。然而,我们并不是生活在一个每个人都维护他们的包并且所有软件都是 FLOSS 的理想世界中,所以一些包仍然依赖于 ia32-libs。

如何安装依赖于 ia32-libs 的包x

有2种方式:

  1. 您可以手动重新打包它,这样它就不再依赖于ia32-libs。(首选)
  2. 您可以从 Ubuntu 13.04(Raring Ringtail)存储库安装 ia32-libs(根本不是首选!,仅当第一种方法不起作用时

1.重新打包旧包

我将使用 citrix 接收器作为示例,但您可以将此方法用于任何 .deb 包:

首先,从他们的网站下载 citrix 接收器 .deb 包,并创建一个临时目录来进行黑客攻击。

mkdir ica_temp
Run Code Online (Sandbox Code Playgroud)

解压包

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
Run Code Online (Sandbox Code Playgroud)

在 gedit(或您喜欢的编辑器)中打开文件

sudo -H gedit ica_temp/DEBIAN/control
Run Code Online (Sandbox Code Playgroud)

找到以 开头的行Depends:...。删除ia32-libs和添加lib32z1 lib32ncurses5 lib32bz2-1.0

重新构建修改后的包

dpkg -b ica_temp icaclient-modified.deb
Run Code Online (Sandbox Code Playgroud)

并安装它

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
Run Code Online (Sandbox Code Playgroud)

安装 citrix 接收器也需要一些黑客攻击。您可以在 Ubuntu wiki上找到完整的安装说明

您可以使用任何仍依赖于 ia32-libs 的旧 .deb 包来执行此操作。

2. 从 raring 存储库安装 ia32-libs

请注意,安装旧软件包是非常糟糕的做法!遗憾的是,对于某些二进制安装程序,您别无选择。

您可以从 raring存储库下载 ia32-libs 包。下载并手动安装,然后依赖关系应该被解决。


小智 6

我读到您应该安装该ia32-libs-multiarch软件包。但是它对我不起作用,我收到此错误

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
Run Code Online (Sandbox Code Playgroud)

对我有用的解决方案是安装以下软件包:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Run Code Online (Sandbox Code Playgroud)