Kees Cook: combining apt install and get dist-upgrade ?
I frequently see a pattern in image build/refresh scripts where a set of packages is installed, and then all packages are updated:
apt update apt install -y pkg1 pkg2 pkg2 apt dist-upgrade -yWhile it s not much, this results in redundant work. For example reading/writing package database, potentially running triggers (man-page refresh, ldconfig, etc). The internal package dependency resolution stuff isn t actually different: install will also do upgrades of needed packages, etc. Combining them should be entirely possible, but I haven t found a clean way to do this yet. The best I ve got so far is:
apt update apt-cache dumpavail dpkg --merge-avail - (for i in pkg1 pkg2 pkg3; do echo "$i install") dpkg --set-selections apt-get dselect-upgradeThis gets me the effect of running install and upgrade at the same time, but not dist-upgrade (which has slightly different resolution logic that d I d prefer to use). Also, it includes the overhead of what should be an unnecessary update of dpkg s database. Anyone know a better way to do this? Update: Julian Andres Klode pointed out that
dist-upgrade
actually takes package arguments too just like install
. *face palm* I didn t even try it I believed the man-page and the -h
output. It works perfectly!
2020, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.