Как найти все пакеты, которые были установлены вручную, которые не зависят от каких-либо других установленных пакетов?
Короткий ответ: использовать aptitude
как в следующем:
aptitude -F%p search '?installed?not(?automatic)
Но к сожалению эта команда возвращает много пакетов, которые соответствуют запросу, но не являются тем, что Вы ожидаете по двум причинам:
существуют пакеты, установленные во время начальной установки системы, которые заканчиваются как не автоматически установленный
пакеты, установленные как зависимости метапакета также, могут закончиться как не автоматически установленный
Решением, в которое я приехал некоторое время назад, является соответствие между предыдущей командой и dpkg
журналы, это, по крайней мере, пытается удалить влияние точки 1. в списке предыдущих проблем:
#!/bin/bash
export LC_COLLATE=C
eval $(lesspipe)
vars=($(less $(ls -rt /var/log/dpkg.log*) | grep 'status installed grub-pc' | head -1))
date="${vars[0]}"
time="${vars[1]}"
join \
<(aptitude -F%p search '?installed?not(?automatic)' |
sort) \
<(less $(ls -rt /var/log/dpkg.log*) |
awk -v date=$date -v time=$time '(($1 == date && $2 > time) || $1 > date) && $3 == "install" { print $4, $1, $2 }' |
sort -u) |
awk '{ print $2, $3, $1 }' |
sort
Это принимает это grub-pc
последний пакет, установленный во время начальной установки, и никоим образом не прекрасен, но может дать Вам грубую информацию для запуска с.