When updating CentOS it can be very useful as a sysadmin to compare the incoming update package versions against the currently installed version. However this isn't an overly easy task as the installed version numbers are not printed out in the resulting dnf/yum update summary table.
Updates coming in can be seen in the summary table by running
dnf update
However a safer command (as you have to rememeber to cancel the command) is:
dnf check-update
Next seeing installed packages can be done using:
dnf list installed
However this lists all installed packages instead of the ones we are updating. A quick AWK script can match the update package names list against the installed packages, filter to matches only and pluck out both version numbers:
#/bin/bash
update=$(dnf check-update)
installed=$(dnf list installed)
awk 'BEGIN {FS=OFS=" "} NR==FNR {v[$1]=$2; next} {print (v[$1] ? $1 " " v[$1] " " $2 : "")}' <(echo "$update") <(echo "$installed") | awk NF | column -t
This can really help spot major version numbers for programming languages, databases and other relied on packages. These may need hosted applications to be upgraded manually by development teams before the server package(s) can be safely upgraded.
Note for CentOS 7: replace dnf with yum
- Log in to post comments