无法安装 ia32-libs

无法安装 ia32-libs

我不知道为什么我无法安装 ia32-libs。它声称存在在 repos 上找不到的依赖项。

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

Synaptic 修复损坏的软件包没有任何作用。有什么建议吗?谢谢,我需要这个软件包来安装其他应用程序,例如 teamviewer7。

我的 sources.list 在这里。

答案1

我在尝试安装 wine 和 acroread 时遇到了类似的依赖关系中断问题,在从 11.04 升级到 12.04(跳过 11.10)后尝试安装 ia32-libs-multiarch 时也遇到了类似的问题。似乎我在 11.04 中的一些 ppa 在系统中安装了较新版本的应用程序。升级后,这些应用程序的残留似乎对依赖关系造成了一些混乱。

到目前为止,似乎有效的解决方案是在德国 ubuntu 论坛上找到的(http://forum.ubuntuusers.de,来自用户 Lasall 的帖子):

首先需要降级并执行以下操作:创建“首选项”文件:

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

因为否则就不会发现新的更新。

希望这也对你有帮助!

答案2

由于 ia32-libs 现在是一组支持多架构的库的过渡包装包,这些库以前捆绑在 ia32-libs 中,因此所有这些库包都必须可安装。在已发布的 Ubuntu 版本中(例如在 precise 和 precise-updates 包中),包始终可以单独安装;但是,多架构对可安装性施加了额外的限制:库包必须在您要安装的所有体系结构中处于完全相同的版本。

在这里给出的其中一个示例中,libcairo-gobject2 软件包被牵连其中。该软件包最近已作为 SRU 更新为 12.04;这意味着尝试安装 ia32-libs 需要系统中的 amd64 版本的 libcairo-gobject2 与将要下载的 i386 版本相匹配。

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

  1. 启动更新管理器
  2. 选择设置在窗口底部
  3. 在下面更新,确保推荐更新(精确更新)已选定。
  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。

答案3

我看到这个问题表现在你尝试从 deb 安装 64 位第三方二进制文件,最终却发现需要ia32-libs,例如Teamviewer 7或者Skype

先解决问题,再进行演示:

  • 跑步:

    dpkg --list `apt-cache 依赖 ia32-libs | sed -e '1,2d' -e 's/|//g' | tr '\n' ' '` | grep iU
    
  • 并查找具有版本名称的半安装软件包,例如:

    iU skype 2.2.0.35-1 Skype
    iU teamviewer7 7.0.9350 TeamViewer(远程控制应用程序)
    
  • dpkg --remove每一个罪犯,之后都sudo apt-get install ia32-libs应该成功。

答案4

在 Precise 上安装 teamviewer7 64 位包时我也遇到了同样的问题。

我认为您可能已禁用更新。

请转至Ubuntu 软件中心编辑软件源

在里面更新请标签检查所有更新(您可以稍后将其删除)并关闭。

请进入终端并运行:

sudo apt-get update
sudo apt-get install ia32-libs

它对我有用,如果没有运行sudo apt-get dist-upgrade,请尝试重新安装ia32-libs

相关内容