我安装了 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
,依赖项应该“正常工作”。但是,这里的问题是openssl
、procps
、zenity
和 Java 尚未被标记MultiArch: foreign
。这意味着 amd64 版本可能适用于此脚本,但dpkg
看不到。
恐怕,解决这个问题的最佳方法可能是编辑那个.deb
,并删除有问题的依赖项。有人写了一个脚本来帮助解决这个问题。