为什么会出现这个 dpkg 错误:不明确的包名称‘libglib2.0-0’...?

为什么会出现这个 dpkg 错误:不明确的包名称‘libglib2.0-0’...?

当我尝试使用软件中心安装软件包时,或者当我尝试使用 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           

我不知道这是否会在将来造成问题,但目前我已经成功通过了升级

相关内容