In attesa di Debian CUT (Constantly Usable Testing), la mia politica di aggiornamento della testing è sempre stata quella di lanciare periodicamente aptitude, ma limitare l'aggiornamento a quei pacchetti che hanno subìto cambiamenti upstream. Questo si può fare esaminando la versione del pacchetto, che è sempre composta da due campi separati da un trattino.
(versione upstream)-(revisione debian)
Automatizzare il tutto è facile: si tratta di 3 semplici passi.
- Chiedere ad aptitude la lista dei pacchetti da aggiornare (
search '~U'), con l'indicazione della versione attuale e quella nuova (-F '%p %V %v'). - Passare l'output attraverso awk, isolando la versione upstream, sia l'attuale sia la nuova, (
split(campo,array,"-")) e filtrando i pacchetti in cui la versione non cambia (if Attuale[1] != Nuova[1] print). - Se è rimasto qualcosa(
[ -s file ]), aggiornarlo tramite aptitude.
Ed ecco lo script nudo e crudo (omessi controlli ed eccezioni varie, nella versione definitiva occorre assicurarsi di essere root, ecc.).
#!/bin/bash tmp=`tempfile` aptitude search '~U' -F '%p %?V %?v' | \ awk '{split($2,Attuale,"-");split($3,Nuova,"-"); if (Attuale[1] != Nuova[1]) print $1}' >$tmp [ -s $tmp ] && aptitude install $(<$tmp) rm $tmp


