由于“grub-efi-amd64:依赖:grub-efi-amd64-bin(= 2.04-1ubuntu44)”而无法升级

由于“grub-efi-amd64:依赖:grub-efi-amd64-bin(= 2.04-1ubuntu44)”而无法升级

我的系统是 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-amd64apt 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我事先备份了冲突的文件,并在新旧版本上运行。它们是同一个文件diffmd5sum

相关内容