当前位置: 首页>>技术教程>>正文


apt – 无法安装ia32-libs

, , ,

问题描述

我不知道为什么我不能安装ia32-libs。它要求在回购协议上找不到依赖项。

junior@mediacenter:~$ sudo apt-get install ia32-libs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ia32-libs : Depends: ia32-libs-multiarch
E: Unable to correct problems, you have held broken packages.


junior@mediacenter:~$ sudo apt-get install ia32-libs-multiarch
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ia32-libs-multiarch:i386 : Depends: gstreamer0.10-plugins-good:i386 but it is not going to be installed
                            Depends: gtk2-engines:i386 but it is not going to be installed
                            Depends: gtk2-engines-murrine:i386 but it is not going to be installed
                            Depends: gtk2-engines-pixbuf:i386 but it is not going to be installed
                            Depends: gtk2-engines-oxygen:i386 but it is not going to be installed
                            Depends: ibus-gtk:i386 but it is not going to be installed
                            Depends: libcanberra-gtk-module:i386 but it is not going to be installed
                            Depends: libcurl3:i386 but it is not going to be installed
                            Depends: libgail-common:i386 but it is not going to be installed
                            Depends: libglapi-mesa:i386 but it is not going to be installed
                            Depends: libglu1-mesa:i386 but it is not going to be installed
                            Depends: libgtk2.0-0:i386 but it is not going to be installed
                            Depends: libqt4-opengl:i386 but it is not going to be installed
                            Depends: librsvg2-common:i386 but it is not going to be installed
                            Recommends: libgl1-mesa-glx:i386 but it is not going to be installed
                            Recommends: libgl1-mesa-dri:i386 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

运行ubuntu Precise:

junior@mediacenter:~$ uname -a
Linux mediacenter 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

突触修复损坏的程序包无济于事。有小费吗??谢谢,我需要这个软件包来安装其他应用程序,例如teamviewer7。

My sources.list is here.

最佳方案

从11.04升级到12.04后(超过11.10),在尝试安装wine和acroread时遇到了类似的问题,并且尝试安装ia32-libs-multiarch时遇到了投诉。看来我在11.04中有一些PPA在系统中安装了较新版本的应用程序。升级后,这些应用程序的其余部分似乎在依赖性方面有些混乱。

在德国的ubuntu板上找到了似乎可行(直到现在)的解决方案(http://forum.ubuntuusers.de,来自用户Lasall的帖子):

首先需要降级,并执行以下操作:创建’preferences’文件:

sudo vi /etc/apt/preferences

并插入以下行:

Package: *       
Pin: release a=precise*
Pin-Priority: 2012

输入:wq来写入文件。 Pin-Priority必须大于1000。

然后,您可以使用以下命令降级有问题的应用程序:

sudo apt-get dist-upgrade

然后,您可以安装抱怨依赖性的软件包,例如sudo apt-get install ia32-libs-multiarchsudo apt-get install ia32-libs

最后,您应该删除刚刚创建的文件:

sudo rm /etc/apt/preferences

因为否则将找不到新的更新。

希望这对您也有帮助!

次佳方案

由于ia32-libs现在是一个过渡包装程序包,围绕着以前捆绑在ia32-libs中的multiarch-enabled库集,因此所有这些库包都必须是可安装的。在Ubuntu的发行版本中(例如精确和precise-updates的口袋中),软件包始终可以单独安装;但是,多体系结构对可安装性施加了附加限制:库软件包必须在要为其安装的所有体系结构中使用完全相同的版本。

在此处给出的示例之一中,涉及了libcairo-gobject2包。此软件包最近已作为SRU更新为12.04。这意味着要尝试安装ia32-libs,需要系统上的libcairo-gobject2的amd64版本与要下载的i386版本匹配。

为确保获得所有库软件包的正确版本,请执行以下操作:

  1. 启动更新管理器

  2. 选择窗口底部的设置

  3. 在“更新”下,确保已选择“推荐更新”(precise-updates)。

  4. 单击检查以扫描任何新软件更新

  5. 单击“安装更新”以确保您现有的软件包都是最新的

如果您当前安装的损坏的软件包依赖于ia32-libs,则可能会要求将其删除。操作完成后,应继续进行删除并重新安装。然后,您应该可以运行

sudo apt-get install ia32-libs

安装ia32-libs,或从http://packages.ubuntu.com/下载软件包,然后

sudo dpkg -i /path/to/package.deb
sudo apt-get -f install

安装软件包并自动引入ia32-libs作为依赖项。

请注意,无论如何都认为ia32-libs已弃用。对于大多数软件,您应该安装软件包的i386版本,并使其直接拉出其依赖项所需的i386库,而不要使用ia32-libs(即catch-all)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8245.html,未经允许,请勿转载。