Z každého z mých serverů mi chodí pravidelné reporty, ve kterých se dočtu spoustu užitečných informací. Jaké služby jsou aktivní a jaké zastavené, jaké porty jsou otevřené, kolik spojení je aktivních, jaký je stav firewallu, jak vypadá RAID, jak jsou zaplněné disky a podobně. Už jsem se zmínil, že mám i server postavený na Debianu Wheezy (unstable) a tak jsem si říkal, že by se mi hodilo i reportování zastaralých balíčků, abych věděl, zda má smysl hrdinně přiskočit a systém aktualizovat. Tato funkce dá využít u všech systémů podporujících APT, ale u Wheezyho s jeho každodenními aktualizacemi ji využiju obzvlášt.
Zrcadlo, zrcadlo, kdo je na světě nejnovější?
Samozřejmě by se tu dal vyrobit nějaký skript, operující nad výstupem z apt-get -q -s upgrade nebo přímo napsat vlastní utilitku pracující s libaptem, ale není třeba znovu vynalézat kolo, protože taková utilita již existuje. APT nástroj, který se k tomuto účelu dá zneužít, se jmenuje apt-show-versions. Standardně ve výchozí instalaci k dispozici není a je třeba jej doinstalovat.
apt-get install apt-show-versions
Pokud spustíte apt-show-versions bez parametru, vypíše vám všechny nainstalované balíčky, jejich verze a informaci o tom, zda jsou up-to-date nebo zda je v repozitáři nějaká novější verze (a pokud ano, jaká). Mě ale zajímají jen ty balíčky, které jsou zastaralé - tedy u kterých existuje novější verze v repozitáři. Aby se výpis omezil pouze na tyto, zajistím paramtrem -u.
apt-show-versions -u
Výstup pak bude vypdat třeba takto:
root@debian:~# apt-show-versions -u
libjasper1/squeeze upgradeable from 1.900.1-7+b1 to 1.900.1-7+squeeze1
lighttpd/squeeze upgradeable from 1.4.28-2 to 1.4.28-2+squeeze1
x11-common/squeeze upgradeable from 1:7.5+8 to 1:7.5+8+squeeze1
což je přesně to co jsem si představoval.
Apt-show-versions, stejně jako většina ostatních APT nástrojů, pracuje nad lokální cache, takže pokud chcete čerstvé informace, musíte před každým dotazem provést starý známý
apt-get update