Archive for December, 2011

Tener traccia dei pacchetti installati

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.