Topic: dpkg
-
apt-get, dpkg, dnf and zypper exit codes: when 100 means updates, not failure
apt-get uses a flat 0-success/100-error split; dpkg distinguishes a failed check (1) from a fatal usage or system error (2); dnf's check-update repurposes 100 to mean updates ARE available, not an error; and zypper defines a whole range, 100-107, of informational (non-error) exit codes for conditions like a pending reboot (though 104, package not found, and 105, interrupted, mean the action did not happen). Reading any of these as a plain success/fail boolean loses real information.
-
Checking installed package integrity on Debian and Ubuntu with debsums and dpkg --verify
debsums compares installed files against the MD5 sums recorded at package build time, dpkg --verify (since dpkg 1.17.2) compares metadata recorded in the dpkg database itself, and dpkg -S/-L answer "which package owns this file" and "what files did this package install" before deciding whether to reinstall it.
-
Running apt and dpkg non-interactively on Debian and Ubuntu without hanging on prompts
A scripted apt-get or dpkg run can stall on a debconf prompt, a modified-conffile question or a held dpkg lock. Setting DEBIAN_FRONTEND, the right confold/confdef options and preseeding debconf answers first turns an install into a command that either finishes or fails loudly.
Machine-readable: JSON