Вы задали здесь несколько разных вопросов, надеюсь, я смогу помочь хотя бы один или два.
Чтобы 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
выглядит в принципе правильно. Он может пропустить некоторые автоматически установленные пакеты, которые нужны только для автоматически установленных пакетов, которые нужны только для удаляемого вами пакета. Вот почему вы не считаете это подходящим ответом?