Proxmox, mise à jour impossible du système

Votre serveur Proxmox ne se met pas à jour à cause d'un paquet en conflit ? La solution se trouve à la fin de cette page...

Proxmox, mise à jour impossible du système
a computer which update its own system, white background, flat 3D

En faisant mes installations de Proxmox dans mon homelab (rappel via ce lien interne), j'installe le dernier noyau Linux disponible à date. Pour profiter des dernières versions, j'installe le paquet linux-image-amd64. Toutefois, ce paquet entre en conflit avec le noyau modifié fourni par les équipes de Proxmox.

Ainsi, en faisant machinalement la mise à jour de mes hôtes, l'erreur suivante est apparue :

root@w3p241:~# apt list --upgradable
Listing... Done
exim4-base/stable-security 4.96-15+deb12u4 amd64 [upgradable from: 4.96-15+deb12u3]
exim4-config/stable-security 4.96-15+deb12u4 all [upgradable from: 4.96-15+deb12u3]
exim4-daemon-light/stable-security 4.96-15+deb12u4 amd64 [upgradable from: 4.96-15+deb12u3]
linux-image-amd64/stable-security 6.1.69-1 amd64 [upgradable from: 6.1.67-1]
root@w3p241:~# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... 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:
 pve-firmware : Conflicts: firmware-linux-free but 20200122-1 is to be installed
E: Broken packages

J'ai alors initié l'installation du paquet firemware-linux-free, ce n'était pas du tout la bonne chose à faire...

root@w3p241:~# apt install firmware-linux-free
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  bridge-utils cifs-utils corosync criu cstream dconf-gsettings-backend dconf-service dtach ebtables ethtool faketime fontconfig fontconfig-config
  fonts-dejavu-core fonts-font-awesome fonts-font-logos fonts-glyphicons-halflings genisoimage glib-networking glib-networking-common
  glib-networking-services glusterfs-client glusterfs-common gsettings-desktop-schemas gstreamer1.0-libav gstreamer1.0-plugins-base
  gstreamer1.0-plugins-good gstreamer1.0-x hdparm i965-va-driver idn ifupdown2 intel-media-va-driver ipset iptables libaa1 libaacs0
  libanyevent-http-perl libanyevent-perl libaom3 libappconfig-perl libapt-pkg-perl libarchive13 libass9 libasync-interrupt-perl libasyncns0
  libauthen-pam-perl libavahi-client3 libavahi-common-data libavahi-common3 libavc1394-0 libavcodec59 libavfilter8 libavformat59 libavutil57
  libbdplus0 libblas3 libbluray2 libbs2b0 libcaca0 libcairo-gobject2 libcairo2 libcdparanoia0 libcfg7 libchromaprint1 libcjson1 libcmap4
  libcodec2-1.0 libcorosync-common4 libcpg4 libcrypt-openssl-bignum-perl libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl libcups2
  libcurl3-gnutls libdav1d6 libdbi1 libdconf1 libdeflate0 libdevel-cycle-perl libdigest-bubblebabble-perl libdrm-amdgpu1 libdrm-common
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libdv4 libepoxy0 libev-perl libfaketime libfdt1 libfile-chdir-perl
  libfile-readbackwards-perl libfilesys-df-perl libflac12 libflite1 libfontconfig1 libfuse3-3 libgbm1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
  libgdk-pixbuf2.0-common libgfapi0 libgfchangelog0 libgfortran5 libgfrpc0 libgfxdr0 libgl1 libgl1-mesa-dri libglapi-mesa libglusterd0
  libglusterfs0 libglvnd0 libglx-mesa0 libglx0 libgme0 libgnutlsxx30 libgomp1 libgpgme11 libgraphite2-3 libgsm1 libgstreamer-plugins-base1.0-0
  libgstreamer1.0-0 libguard-perl libgudev-1.0-0 libharfbuzz0b libhwy1 libiec61883-0 libigdgmm12 libio-multiplex-perl libio-stringy-perl libip6tc2
  libipset13 libiscsi7 libjack-jackd2-0 libjbig0 libjpeg62-turbo libjs-bootstrap libjs-extjs libjs-qrcodejs libjs-sencha-touch libjson-glib-1.0-0
  libjson-glib-1.0-common libjxl0.7 libknet1 liblapack3 liblcms2-2 libldb2 liblerc4 liblilv-0-0 liblinux-inotify2-perl libllvm15 libmbedcrypto7
  libmfx1 libmime-base32-perl libmp3lame0 libmpg123-0 libmysofa1 libnet-dbus-perl libnet-dns-perl libnet-dns-sec-perl libnet-ip-perl
  libnet-libidn2-perl libnet-subnet-perl libnet1 libnetaddr-ip-perl libnetfilter-conntrack3 libnetfilter-log1 libnfnetlink0 libnorm1 libnozzle1
  libnspr4 libnss3 libnvpair3linux libogg0 libopenjp2-7 libopenmpt0 libopus0 liborc-0.4-0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpciaccess0 libperl4-corelibs-perl libpgm-5.3-0 libpixman-1-0 libplacebo208 libpocketsphinx3 libposix-strptime-perl libpostproc56
  libprotobuf32 libproxmox-acme-perl libproxmox-acme-plugins libproxmox-backup-qemu0 libproxmox-rs-perl libproxy1v5 libpulse0
  libpve-access-control libpve-apiclient-perl libpve-cluster-api-perl libpve-cluster-perl libpve-common-perl libpve-guest-common-perl
  libpve-http-server-perl libpve-network-perl libpve-notify-perl libpve-rs-perl libpve-storage-perl libpve-u2f-server-perl libqb100 libquadmath0
  libquorum5 librados2-perl librav1e0 libraw1394-11 librist4 librrd8 librrds-perl librsvg2-2 librsvg2-common librubberband2 libsamplerate0
  libsensors-config libsensors5 libserd-0-0 libshine3 libshout3 libslirp0 libsmbclient libsndfile1 libsodium23 libsord-0-0 libsoup2.4-1
  libsoup2.4-common libsoxr0 libspeex1 libsphinxbase3 libspice-server1 libsratom-0-0 libsrt1.5-gnutls libssh-gcrypt-4 libstatgrab10
  libstring-shellquote-perl libsubid4 libsvtav1enc1 libswresample4 libswscale6 libtag1v5 libtag1v5-vanilla libtalloc2 libtdb1 libtemplate-perl
  libtevent0 libtheora0 libtie-ixhash-perl libtiff6 libtpms0 libtwolame0 libu2f-server0 libudfread0 liburing2 libusbredirparser1 libuuid-perl
  libuutil3linux libv4l-0 libv4lconvert0 libva-drm2 libva-x11-2 libva2 libvdpau-va-gl1 libvdpau1 libvidstab1.1 libvirglrenderer1 libvisual-0.4-0
  libvorbis0a libvorbisenc2 libvorbisfile3 libvotequorum8 libvpx7 libvulkan1 libwavpack1 libwayland-client0 libwayland-server0 libwbclient0
  libwebp7 libwebpmux3 libx11-xcb1 libx264-164 libx265-199 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-render0
  libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxdamage1 libxfixes3 libxi6 libxml-libxml-perl libxml-twig-perl libxml-xpathengine-perl libxrender1
  libxshmfence1 libxslt1.1 libxv1 libxvidcore4 libxxf86vm1 libyaml-libyaml-perl libz3-4 libzfs4linux libzimg2 libzmq5 libzpool5linux
  libzvbi-common libzvbi0 lxc-pve lxcfs lzop mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers novnc-pve numactl ocl-icd-libopencl1
  pocketsphinx-en-us proxmox-archive-keyring proxmox-backup-client proxmox-backup-file-restore proxmox-backup-restore-image
  proxmox-kernel-6.2.16-20-pve proxmox-kernel-6.5.11-7-pve-signed proxmox-kernel-helper proxmox-mail-forward proxmox-mini-journalreader
  proxmox-offline-mirror-docs proxmox-offline-mirror-helper proxmox-termproxy proxmox-websocket-tunnel proxmox-widget-toolkit pve-cluster
  pve-container pve-docs pve-edk2-firmware-legacy pve-edk2-firmware-ovmf pve-firewall pve-ha-manager pve-i18n pve-lxc-syscalld pve-manager
  pve-qemu-kvm pve-xtermjs python3-gpg python3-jwt python3-ldb python3-protobuf python3-samba python3-systemd python3-talloc python3-tdb
  qemu-server qrencode rrdcached rsync samba-common samba-common-bin samba-dsdb-modules samba-libs sgml-base smbclient socat spiceterm sqlite3
  swtpm swtpm-libs swtpm-tools uidmap va-driver-all vdpau-driver-all vncterm xsltproc zfs-zed zfsutils-linux
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  proxmox-default-kernel proxmox-kernel-6.2 proxmox-kernel-6.5 proxmox-ve pve-firmware pve-kernel-6.2
The following NEW packages will be installed:
  firmware-linux-free
0 upgraded, 1 newly installed, 6 to remove and 4 not upgraded.
Need to get 24.2 kB of archives.
After this operation, 227 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

root@w3p241:~# 

Heureusement, apt est intelligent et m'a évité une grosse bourde (de plus, par chance, je n'ai pas forcé l'installation avec un apt install -y ...).

Solution : supprimer le paquet linux-image-amd64.

root@w3p241:~# apt remove linux-image-amd64 && apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  linux-image-amd64
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
After this operation, 13.3 kB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 66321 files and directories currently installed.)
Removing linux-image-amd64 (6.1.67-1) ...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  exim4-base exim4-config exim4-daemon-light
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,978 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://security.debian.org/debian-security bookworm-security/main amd64 exim4-config all 4.96-15+deb12u4 [256 kB]
Get:2 http://security.debian.org/debian-security bookworm-security/main amd64 exim4-base amd64 4.96-15+deb12u4 [1,117 kB]
Get:3 http://security.debian.org/debian-security bookworm-security/main amd64 exim4-daemon-light amd64 4.96-15+deb12u4 [605 kB]
Fetched 1,978 kB in 0s (4,901 kB/s)
Preconfiguring packages ...
(Reading database ... 66318 files and directories currently installed.)
Preparing to unpack .../exim4-config_4.96-15+deb12u4_all.deb ...
Unpacking exim4-config (4.96-15+deb12u4) over (4.96-15+deb12u3) ...
Preparing to unpack .../exim4-base_4.96-15+deb12u4_amd64.deb ...
Unpacking exim4-base (4.96-15+deb12u4) over (4.96-15+deb12u3) ...
Preparing to unpack .../exim4-daemon-light_4.96-15+deb12u4_amd64.deb ...
Unpacking exim4-daemon-light (4.96-15+deb12u4) over (4.96-15+deb12u3) ...
Setting up exim4-config (4.96-15+deb12u4) ...
Setting up exim4-base (4.96-15+deb12u4) ...
exim4-base.service is a disabled or a static unit not running, not starting it.
Setting up exim4-daemon-light (4.96-15+deb12u4) ...

root@w3p241:~# 

Désormais, plus de problème de mise à jour, en plus d'utiliser le "bon" noyau fourni par Proxmox (Stéphane ROBERT m'avait déjà fait la remarque récemment, ça se confirme !).

Vous pouvez effectuer un update-grub pour mettre à jour la liste des noyaux disponibles au démarrage et le tour est joué ;).

Source : https://forum.proxmox.com/threads/pve-firmware-conflicts-firmware-linux-free.53806/post-248707