Strumenti per tener traccia delle variazioni di pacchetti presenti nel sistema ce ne sono molti. Si può consultare il file di log di pacman (cosa decisamente poco pratica), oppure lanciare ogni tanto yaourt –stats per vedere se ci sono pacchetti non utilizzati.
Questi metodi però non permettono di capire cosa in effetti sia variato a distanza di tempo nel sistema, quindi una soluzione semplice e veloce a quest’esigenza potrebbe essere il seguente script:
#!/bin/bash
new_file=tracepkg_$(hostname)_$(date +%F_%H-%M-%S).log
if [ $1 = ]
then
last_file=$(ls -t -1 *.log 2> /dev/null | head -n1 2> /dev/null)
else
last_file=$1
echo "1"
fi
pacman -Qqes > $new_file
echo ""
if [ $last_file ]
then
changed=$(diff -q $last_file $new_file)
if [ "$changed" ]
then
diff -y $last_file $new_file
echo ""
echo -n "Changed: "
diff -y --suppress-common-lines $last_file $new_file | wc -l
else
echo "Nothing has changed."
rm $new_file
fi
echo ""
echo "Column1: $last_file"
echo "Column2: $new_file"
else
echo "Nothing to compare."
fi
echo ""
Crea una lista dei pacchetti installati e la salva in un file. All’esecuzione successiva compara la lista creata in precedenza, con quella attualmente presente, e ne notifica le eventuali differenze.
Nel caso in cui si specifichi un file come opzione, lo script lo utilizzerà per il confronto con la lista attuale.