如何在 64 位 ubuntu 上安装 32 位 deb 包?

如何在 64 位 ubuntu 上安装 32 位 deb 包?

我安装了 Ubuntu 11.10 64 位,并且必须在其上安装 32 位 deb 包。它依赖于其他 32 位库。我使用 getlibs 解决了这个问题:

sudo getlibs -i ./hp-netconnect_1.2-12_i386.deb 

软件包已成功安装并且我可以使用它,但现在我无法使用 apt-get 安装任何东西:

ytaras@bueno:~/Downloads$ sudo apt-get install bison-doc 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 hp-netconnect:i386 : Depends: openssl:i386 but it is not going to be installed
                      Depends: procps:i386 but it is not going to be installed
                      Depends: zenity:i386 but it is not going to be installed
                      Depends: sun-java6-jre:i386 but it is not installable or
                               sun-java5-jre:i386 but it is not installable
                      Recommends: sun-java6-plugin:i386 but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

如果我运行“apt-get -f install”,它只会删除 hp-netconnect 包。现在每次我想安装某些东西时,我都必须使用“apt-get -f install”卸载此包,然后再重新安装。

答案1

您可以在 ubuntu 上使用带有标志 --ignore-depends 的 dpkg 安装 32 位软件包。如果您这样做,则应该忽略此软件包的依赖项。

因此我会尝试:

sudo dpkg -i --force-architecture --ignore-depends hp-netconnect_1.2-12_i386.deb

或者,您也可以通过 apt 的 append --ignore-missing 标志忽略缺失的依赖项。

答案2

使用多架构时,您不需要getlibs,依赖项应该“正常工作”。但是,这里的问题是opensslprocpszenity和 Java 尚未被标记MultiArch: foreign。这意味着 amd64 版本可能适用于此脚本,但dpkg看不到。

恐怕,解决这个问题的最佳方法可能是编辑那个.deb,并删除有问题的依赖项。有人写了一个脚本来帮助解决这个问题。

相关内容