Вы задали здесь несколько разных вопросов, надеюсь, я смогу помочь хотя бы один или два.
Чтобы dpkgвывести список всех установленных пакетов, используйте для вывода в список, разделенный полями
dpkg -l
Чтобы просто получить список пакетов, без дополнительных полей, так что вы можете передать его в другом месте.
dpkg -l | awk '{print $2 }' # Pipe to grep after the awk, or glob from dpkg
Например, если я хочу удалить старое ядро,
apt-get purge `dpkg -l linux* | awk '{print $2}' | grep 3.0.0-12`
Самый простой способ пройти через все ненужные зависимости - с debfoster. Он работает в интерактивном режиме и просматривает то, что вы хотите, их зависимости и может удалить или перечислить то, что не является рекурсивной зависимостью.
Чтобы вывести список всех рекурсивных зависимостей определенного пакета,
debfoster -d $PACKAGE ## PACKAGE is the specific package.
После того, как вы выполнили, debfosterвы можете проверить любых иждивенцев, которые есть у пакета,
debfoster -e $PACKAGE ## PACKAGE is the specific package.
Действительно отличный способ перечислить «осиротевшие» пакеты, это с deborphan. Запустите deborphanбез параметров, и в нем будут перечислены все «потерянные» пакеты. «Сирота» - это пакет, от которого ничего не зависит, и вы явно его не установили.
Я также люблю чистить любые «потерянные» пакеты после новой установки. После того, как я удалил определенные пакеты, вы можете получить что-нибудь пропущенное с apt-get autoremove --purgeпомощью,
apt-get purge `deborphan`
Наконец, иногда вы этого не делаете --purgeи в итоге получаете пакет «остатки», более новые версии apt-getмогут автоматически удалять их. Чтобы удалить все «остатки» из запущенных неустановленных пакетов,
apt-get autoclean
Если у вас нет новой версии apt-get, вы всегда можете удалить их с помощью этих команд. Они выдают ошибку, если не существует «оставшихся» файлов, кажется, что autoclean может пропустить некоторые из них в любом случае.
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs dpkg --purge
apt-get --dry-run removeвыглядит в принципе правильно. Он может пропустить некоторые автоматически установленные пакеты, которые нужны только для автоматически установленных пакетов, которые нужны только для удаляемого вами пакета. Вот почему вы не считаете это подходящим ответом?