The system update command lists also packages, that will fail to upgrade. This is due to the use of apt list --upgradable which doesn't check if a package could be installed. Differency from the apt-get update or apt update commans.
arduino@asdasdasd:~$ sudo apt upgrade
Not upgrading:
alsa-ucm-conf
arduino@asdasdasd:~$ sudo apt list --upgradable
alsa-ucm-conf/stable-backports 1.2.16.1-1~bpo13+1 all [upgradable from: 1.2.14-1qcom0.1arduino3]
arduino-app-cli/unstable 0.13.0-rc.10 arm64 [upgradable from: 0.12.1]
arduino-app-lab/unstable 0.10.0-rc.4 arm64 [upgradable from: 0.9.0]
....
This will cause a crash of the update if some packages have missing dependencies or other issues. For instance:
$ arduino-app-cli system update
...
[starting] Upgrade is starting
[log] Reading package lists...
[log] Building dependency tree...
[log] Reading state information...
[log] Solving dependencies...
[log] Some packages could not be installed. This may mean that you have
[log] requested an impossible situation or if you are using the unstable
[log] distribution that some required packages have not yet been created
[log] or been moved out of Incoming.
[log] The following information may help to resolve the situation:
[log]
[log] The following packages have unmet dependencies:
[log] alsa-ucm-conf : Depends: libasound2t64 (>= 1.2.15) but 1.2.14-1 is to be installed
[log] E: Unable to correct problems, you have held broken packages.
[log] E: The following information from --solver 3.0 may provide additional context:
[log] Unable to satisfy dependencies. Reached two conflicting decisions:
[log] 1. alsa-ucm-conf:arm64=1.2.16.1-1~bpo13+1 is selected as an upgrade
[log] 2. alsa-ucm-conf:arm64=1.2.16.1-1~bpo13+1 Depends libasound2t64 (>= 1.2.15)
[log] but none of the choices are installable:
[log] - libasound2t64:arm64=1.2.16.1-1~bpo13+1 is not selected for install
[restarting] Upgrade completed. Restarting ...
Terminated
A possible solution is to run a siumilatuon of the upgrade and get all the packages that will be actually install after the simulation.
arduino@asdasdasd:~$ apt-get -s upgrade | grep '^Inst'
Inst libexpat1 [2.7.1-2] (2.8.2-1~deb13u1 Debian-Security:13/stable-security [arm64])
Inst chromium [150.0.7871.181-1~deb13u1] (151.0.7922.108-1~deb13u1 Debian-Security:13/stable-security [arm64]) []
Inst chromium-common [150.0.7871.181-1~deb13u1] (151.0.7922.108-1~deb13u1 Debian-Security:13/stable-security [arm64])
Inst libnss3 [2:3.110-1+deb13u3] (2:3.110-1+deb13u4 Debian-Security:13/stable-security [arm64])
Inst jq [1.7.1-6+deb13u2] (1.7.1-6+deb13u3 Debian-Security:13/stable-security [arm64]) []
Inst libjq1 [1.7.1-6+deb13u2] (1.7.1-6+deb13u3 Debian-Security:13/stable-security [arm64])
Inst libaom3 [3.12.1-1] (3.12.1-1+deb13u1 Debian-Security:13/stable-security [arm64])
Inst libde265-0 [1.0.15-1+b3] (1.0.15-1+deb13u1 Debian-Security:13/stable-security [arm64])
Inst libheif-plugin-x265 [1.19.8-1] (1.19.8-1+deb13u1 Debian-Security:13/stable-security [arm64]) []
Inst libheif-plugin-dav1d [1.19.8-1] (1.19.8-1+deb13u1 Debian-Security:13/stable-security [arm64]) [libheif1:arm64 ]
Inst libheif-plugin-aomenc [1.19.8-1] (1.19.8-1+deb13u1 Debian-Security:13/stable-security [arm64]) [libheif1:arm64 ]
Inst libheif1 [1.19.8-1] (1.19.8-1+deb13u1 Debian-Security:13/stable-security [arm64]) [libheif-plugin-libde265:arm64 ]
Inst libheif-plugin-libde265 [1.19.8-1] (1.19.8-1+deb13u1 Debian-Security:13/stable-security [arm64])
Inst libssh-4 [0.11.2-1+deb13u1] (0.11.5-0+deb13u1 Debian-Security:13/stable-security [arm64])
Inst libtdb1 [2:1.4.13+samba4.22.10+dfsg-0+deb13u1] (2:1.4.13+samba4.22.10+dfsg-0+deb13u2 Debian-Security:13/stable-security [arm64])
Inst udisks2 [2.10.1-12.1+deb13u1] (2.10.1-12.1+deb13u2 Debian-Security:13/stable-security [arm64]) []
Inst libudisks2-0 [2.10.1-12.1+deb13u1] (2.10.1-12.1+deb13u2 Debian-Security:13/stable-security [arm64])
Inst arduino-router [0.9.0] (0.10.0-rc.1 Arduino:unstable [arm64])
Inst arduino-app-cli [0.12.1] (0.13.0-rc.10 Arduino:unstable [arm64])
Inst arduino-cli [1.5.1] (1.5.2-rc.1 Arduino:unstable [arm64])
Inst arduino-linux-config [0.2.0] (0.2.0-rc.3 Arduino:unstable [arm64])
Inst arduino-unoq-config [0.1.0] (0.2.0-rc.4 Arduino:unstable [arm64])
Inst arduino-unoq-radio-firmware [0.6.1] (0.7.0-rc.1 Arduino:unstable [arm64])
As a bonus feature of using the update similation is that we can get select to upgrade only the package that are in our repository (i.e., Arduino:)
The
system updatecommand lists also packages, that will fail to upgrade. This is due to the use ofapt list --upgradablewhich doesn't check if a package could be installed. Differency from theapt-get updateorapt updatecommans.This will cause a crash of the update if some packages have missing dependencies or other issues. For instance:
A possible solution is to run a siumilatuon of the upgrade and get all the packages that will be actually install after the simulation.
As a bonus feature of using the update similation is that we can get select to upgrade only the package that are in our repository (i.e.,
Arduino:)