Бывает возникает необходимость установить какой-то пакет, который тянет за собой кучу зависимостей. И apt-get их благополучно автоматически устанавливает. Если пользоваться этим пакетом регулярно, то вопросов нет. А вот если он нужен на один раз, то дальше есть два варианта: забить и оставить как есть или удалять этот пакет и всё то, что было установлено с ним для удовлетворения зависимостей.

Сам пакет удалить проблем не составляет. А вот с зависимостями сложнее - их много, и наверняка весь список вы не запомнили. Можно конечно воспользоваться apt-get autoremove, но этот метод вызывает у меня подозрения, потому что иногда предлагает такое:

The following packages were automatically installed and are no longer required:
  libjsoncpp1 linux-image-4.19.0-6-amd64
Use 'apt autoremove' to remove them.

Остается только обратиться к истории установок - к логу apt (/var/log/apt/history.log). Там перечислены все устанавливаемые пакеты для каждого сеанса установки. Только вот запихивать его в командную строку apt-get remove (или purge) руками не удобно. Для этого у меня есть команда:

grep Install: ./history.log|perl -pe 's/\(.*?\),{0,1}//g'|perl -pe 's/Install:/apt-get purge/' >./cleanup.sh

В результате получаем файл cleanup.sh. Смотрим его содержимое, и в случае, если все хорошо, запускаем с помощью sh.

Собственно, почему perl, а не sed: в sed нет возможности использовать non-greedy регулярные выражения.