我的系统是 Ubuntu 20.4 服务器安装,其中安装了 webmin 用于管理,安装了 Icinga 用于监督问题、postfix、nodejs、apache 等。通常,升级会自动完成,但从 6 月 4 日起,apt 失败并出现以下错误:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Vous pouvez lancer « apt --fix-broken install » pour corriger ces problèmes.
Les paquets suivants contiennent des dépendances non satisfaites :
grub-efi-amd64 : Dépend: grub-efi-amd64-bin (= 2.04-1ubuntu44)
E: Dépendances non satisfaites. Essayez « apt --fix-broken install » sans paquet
(ou indiquez une solution).
所以我尝试了一下,apt --fix-broken install
结果返回
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
grub-efi-amd64
Les paquets suivants seront mis à jour :
grub-efi-amd64
1 mis à jour, 0 nouvellement installés, 0 à enlever et 64 non mis à jour.
Il est nécessaire de prendre 0 o/47,3 ko dans les archives.
Après cette opération, 7.168 o d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O
Préconfiguration des paquets...
(Lecture de la base de données... 259242 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../grub-efi-amd64_2.04-1ubuntu44.1.2_amd64.deb ...
Dépaquetage de grub-efi-amd64 (2.04-1ubuntu44.1.2) sur (2.04-1ubuntu44) ...
dpkg: erreur de traitement de l'archive /var/cache/apt/archives/grub-efi-amd64_2.04-1ubuntu44.1.2_amd64.deb (--unpack) :
tentative de remplacement de « /etc/kernel/postinst.d/zz-update-grub », qui appartient aussi au paquet grub2-common 2.02+dfsg1-20+deb10u4
Des erreurs ont été rencontrées pendant l'exécution :
/var/cache/apt/archives/grub-efi-amd64_2.04-1ubuntu44.1.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
的任何尝试apt autoremove
,最终都会犯同样的错误apt --only-upgrade install grub-efi-amd64
。apt install --reinstall grub-efi-amd64
在网上(以及本网站)上读到的多篇帖子都提到了冲突的软件包,在我的情况下是 grub2-common,要删除它然后运行apt install -f
。但是 grub2-efi-amd64 软件包依赖于该软件包,我有点害怕删除它并最终导致系统无法启动。
在尝试这个“解决方案”之前,我需要确认它,以避免必须重新安装整个系统,因为我第一次花了几个星期才正确安装和配置它。
运行apt-cache policy grub-efi-amd64
返回以下内容:
grub-efi-amd64:
Installé : 2.04-1ubuntu44
Candidat : 2.04-1ubuntu44.1.2
Table de version :
2.04-1ubuntu44.1.2 500
500 http://be.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
*** 2.04-1ubuntu44 100
100 /var/lib/dpkg/status
2.02+dfsg1-20+deb10u4 500
500 http://ftp.de.debian.org/debian buster/main amd64 Packages
2.02-2ubuntu8 500
500 http://be.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
存储库列表:
more /etc/apt/sources.list
deb http://be.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://be.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://be.archive.ubuntu.com/ubuntu/ bionic universe
deb http://be.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://be.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://be.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://be.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
more /etc/apt/sources.list.d/*
::::::::::::::
/etc/apt/sources.list.d/bionic-icinga.list
::::::::::::::
deb http://packages.icinga.com/ubuntu icinga-bionic main
::::::::::::::
/etc/apt/sources.list.d/nodesource.list
::::::::::::::
deb https://deb.nodesource.com/node_14.x buster main
deb-src https://deb.nodesource.com/node_14.x buster main
::::::::::::::
/etc/apt/sources.list.d/nonfree.list
::::::::::::::
deb http://ftp.de.debian.org/debian/ buster main non-free
::::::::::::::
/etc/apt/sources.list.d/tk-main-xenial.list
::::::::::::::
deb http://archive.thomas-krenn.com/packages xenial main
::::::::::::::
/etc/apt/sources.list.d/tk-optional-xenial.list
::::::::::::::
deb http://archive.thomas-krenn.com/packages xenial optional
::::::::::::::
/etc/apt/sources.list.d/webmin.list
::::::::::::::
deb http://download.webmin.com/download/repository sarge contrib
我发现一个奇怪的事情,可能是问题的原因是我的系统没有被引用为 Ubuntu 而是 debian(必须添加 debian repo 来安装一个版本的节点):
o LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
问题是由于这个问题,我无法再安装任何更新。感谢您提供的任何确认/帮助,
约安。
答案1
在当前的 Linux Mint 上遇到了完全相同的问题,在寻找解决方案时遇到了您的问题。最终的解决方案是这样的:
apt download grub-efi-amd64
apt download grub-efi-amd64-bin
sudo dpkg -i --force-overwrite grub-efi-amd64-bin_2.04-1ubuntu44.1.2_amd64.deb
sudo dpkg -i --force-overwrite grub-efi-amd64_2.04-1ubuntu44.1.2_amd64.deb
sudo apt install -f
这将手动下载冲突的包及其要求,并在安装过程中强制覆盖。
/etc/kernel/postinst.d/zz-update-grub
我事先备份了冲突的文件,并在新旧版本上运行。它们是同一个文件diff
。md5sum