Эта статья для тех, кто болен перфекционизмом, нормальные люди могут не читать. А вот, если Вы поставили, к примеру, через Ubuntu Software Center (USC), Calligra Sheets, запустили, он Вам не понравился, решили удалить через тот же USC и заподозрили, что удалилось не всё, то эта статья для Вас.
История установок, удалений, обновлений в UCS очень неудобна, поэтому мы обратимся к старой доброй чёрной консоли.
Первое, что нужно знать, это где хранятся логи.
$ cat /var/log/dpkg.log
Далее, после изучения структуры, применяя grep, можно выцепить из лога нужную информацию по установке и удалению:
$ cat /var/log/dpkg.log | grep -i -w install | grep 2012-09-03
и
$ cat /var/log/dpkg.log | grep -i -w remove | grep 2012-09-03
Этот вывод можно «улучшить», добавив сортировку и убрав всё лишнее:
$ cat /var/log/dpkg.log | grep -i -w remove | grep 2012-09-03 | awk '{print $4}' | sort
В выводе этой команды можно увидеть, что слово «packages» лишнее, оно пришло из строки «startup packages remove», его тоже можно убрать из вывода:
$ cat /var/log/dpkg.log | grep -i -w remove | grep 2012-09-03 | awk '{print $4}' | sort | grep -v packages > removed.txt
На выходе получаем файл со списком удалённых пакетов. Для списка установленных пакетов аналогично:
$ cat /var/log/dpkg.log | grep -i -w install | grep 2012-09-03 | awk '{print $4}' | sort | grep -v packages > installed.txt
Затем нужно узнать разницу, то есть установленные, но неудалённые пакеты, и вывести её списком:
$ diff installed.txt removed.txt | grep '<' | awk '{print $1}'
Можно вывод сразу применить к команде aptitude:
$ sudo aptitude remove `diff installed.txt removed.txt | grep '<' | awk '{print $2}'`
Команда должна удалить установленные, но неудалённые пакеты.