Это был определенно интересный вопрос. Кажется, что единственное, что я когда-либо видел, дает мне вывод "XX будет освобожден" - это «apt-get remove». Еще более странно, это не дает вам эту строку с -s ("сухой ход") параметр командной строки.
ПРЕДУПРЕЖДЕНИЕ [0]: Это означает, что использование apt-get для определения выходных данных должно выполняться от имени пользователя root. Так что, ради любви к Бобу, УБЕДИТЕСЬ, ЧТОБЫ сначала протестировать его на ВМ!
ВНИМАНИЕ [1]: Убедитесь, что вы знаете, что делаете, прежде чем начинать удалять пакеты. Это будет проходить через КАЖДЫЙ пакет в системе и смотреть, сколько места будет восстановлено (как сообщает apt-get), если оно будет удалено. Это не значит, что они безопасны для удаления. Я снимаю с себя всякую ответственность!
Также стоит упомянуть: это, вероятно, будет очень, очень медленно. Надеюсь, это то, что вы хотите запустить ситуативно, по мере необходимости, а не многократно.
Тем не менее, я предлагаю вам мой последний клуге 2013 года. Надеюсь, это поможет.
#!/bin/bash
for I in `dpkg --get-selections | grep install | grep -v adduser | grep -v apt | awk '{print $1}'`;
do
echo -n "$I : "
apt-get --assume-no --purge remove $I | grep "will be freed" | awk '{print $4, $5}' >> ~/package_script.out
done
Я написал и протестировал его под Ubuntu, поэтому он должен хорошо работать для Debian и соавт.
Обновление: я добавил фильтр для удаления пакетов adduser и apt из рассмотрения. Первое слишком "ядро", чтобы его можно было удалить, и оно уходит навсегда, последнее, по-видимому, навсегда. A Возможно, есть еще такие пакеты ...