当我尝试使用软件中心安装软件包时,或者当我尝试使用 sudo apt-get install upgrade 升级软件包时,出现了一些奇怪的错误:
dpkg: error: file triggers record mentions illegal package name `libglib2.0-0' (for interest in file `/usr/lib/x86_64-linux-gnu/gio/modules'): ambiguous package name 'libglib2.0-0' with more than one installed instance
之前我遇到过一个错误:
dpkg: error: configuration error: /etc/dpkg/dpkg.cfg.d/multiarch:1: unknown option 'foreign-architecture'
但我刚刚用以下方法删除了它:sudo rm /etc/dpkg/dpkg.cfg.d/multiarch
,我想这个帖子描述了这个问题 - 我已经关注了它,但最后一部分sudo apt-get install dpkg=1.16.0.3ubuntu5
对我来说不起作用 - 找不到这样的包。可能是因为我使用的是 ubuntu 12.04。
更新:按照答案中的建议尝试安装正确版本的 dpkg 1.16.1.2ubuntu7 后,我现在收到以下错误:
$ sudo apt-get install dpkg=1.16.1.2ubuntu7
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:
ia32-libs : Depends: ia32-libs-multiarch but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
顺便说一句,这可能也有帮助:
$ sudo dpkg --configure -a
dpkg: error: file triggers record mentions illegal package name `libglib2.0-0' (for interest in file `/usr/lib/x86_64-linux-gnu/gio/modules'): ambiguous package name 'libglib2.0-0' with more than one installed instance
这其实讲的是同一件事。
更新:(...) 模块的内容:
/usr/lib/x86_64-linux-gnu/gio/modules$ ls
giomodule.cache libgiognutls.so libgvfsdbus.so
libdconfsettings.so libgiolibproxy.so
libgiognomeproxy.so libgioremote-volume-monitor.so
更新:/var/lib/dpkg/triggers/文件
$ sudo grep libglib /var/lib/dpkg/triggers/File
/usr/lib/x86_64-linux-gnu/gio/modules libglib2.0-0
/usr/lib/gio/modules libglib2.0-0
/usr/share/glib-2.0/schemas libglib2.0-0
/usr/lib/i386-linux-gnu/gio/modules libglib2.0-0:i386
/usr/lib/gio/modules libglib2.0-0:i386
/usr/share/glib-2.0/schemas libglib2.0-0:i386
答案1
找不到这样的包。可能是因为我使用的是 ubuntu 12.04。
截至目前,Ubuntu 12.04 对应的版本应该是1.16.1.2ubuntu7
。
ia32-libs : Depends: ia32-libs-multiarch but it is not installable
这是一个关联ia32-libs-multiarch
进入下载.deb文件的页面,请使用手动dpkg -i filename.deb
安装,如果成功,请重试apt-get,如果不成功,请使用dpkg error更新。
我在测试 x86_64 系统上安装了 ia32,并获得了以下触发器文件的内容和 giomodule.cache 的内容。请检查您的内容有何不同:
izx@myprecise:~$ grep libglib /var/lib/dpkg/triggers/File /usr/lib/x86_64-linux-gnu/gio/模块 libglib2.0-0 /usr/lib/gio/模块 libglib2.0-0 /usr/share/glib-2.0/schemas libglib2.0-0 /usr/lib/i386-linux-gnu/gio/模块 libglib2.0-0:i386 /usr/lib/gio/模块 libglib2.0-0:i386 /usr/share/glib-2.0/schemas libglib2.0-0:i386 izx@myprecise:~$ ls /usr/lib/x86_64-linux-gnu/gio/modules giomodule.cache libgiognutls.so libgvfsdbus.so libdconfsettings.so libgiolibproxy.so libgiognomeproxy.so libgioremote-volume-monitor.so izx@myprecise:~$ cat /usr/lib/x86_64-linux-gnu/gio/modules/giomodule.cache libgiognutls.so: gio-tls-后端 libgioremote-volume-monitor.so: gio-native-volume-monitor,gio-volume-monitor libgvfsdbus.so: gio-vfs,gio-volume-monitor libgiolibproxy.so: gio-proxy-resolver libdconfsettings.so: gsettings-后端 libgiognomeproxy.so: gio-proxy-resolver
答案2
我也遇到了完全相同的问题。
我删除了
/usr/lib/gio/modules libglib2.0-0
从/var/lib/dpkg/triggers/File
尽管我还是个新手,我不确定这是否是个好主意,但它至少消除了错误,所以我可以继续。
答案3
我遇到了同样的问题,用户 user76204 的方法对我有用,但我不能只/usr/lib/gio/modules libglib2.0-0
从文件中删除,而是/var/lib/dpkg/triggers/File
必须删除所有 3 个:
/usr/lib/x86_64-linux-gnu/gio/modules libglib2.0-0
/usr/lib/gio/modules libglib2.0-0
/usr/share/glib-2.0/schemas libglib2.0-0
我不知道这是否会在将来造成问题,但目前我已经成功通过了升级