Мой SSD вышел из строя, и я не могу найти вывод из dpkg --get-selections
, который я недавно создал. Тем не менее, я мог бы сделать копию файла /var/backups/dpkg.status.0
с испорченного ssd. Я чувствую, что вся информация, которую дал мне dpkg --get-selections
, находится там, но в формате wron. И я чувствую, что должна быть команда, которая позволяет конвертировать ее (а не писать сценарий самостоятельно). Вопрос: что это за команда?
По сути, я думаю, что все приложения в /var/backups/dpkg.status.0
имеют строку install ok installed
, поэтому вам нужно будет использовать только эту команду, чтобы получить одинаковые выходные данные dpkg --get-selections
: grep "Package" < /var/backups/dpkg.status.0 | awk '{print $2"\t\tinstall"}'
. Проверьте это.
Во-первых, вы проверяете, откуда dpkg --get-selections
получает исходные данные. Если вы подозреваете, что он получает данные из / var, вы можете дополнительно сузить результаты с помощью grep. Например:
strace dpkg --get-selections 2>&1 | grep /var
Это приведет к следующему результату:
open("/var/lib/dpkg/updates/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/var/lib/dpkg/available", O_RDONLY) = 3
open("/var/lib/dpkg/triggers//File", O_RDONLY) = 3
stat("/var/lib/dpkg/triggers/Unincorp", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
Затем, если вам интересно, откуда взялся этот резервный файл dpkg
, вы можете искать в своих файлах cron Упоминает dpkg
:
grep -R dpkg /etc/cron*
Исходя из этого, вы можете выяснить, что /var/backup/dpkg.status.0
сначала был скопирован, а затем повернут, основываясь на /var/lib/dpkg/status
.
Собрав все вышеперечисленное, вы получаете dpkg --get-selections
для создания необходимого отчета, временно восстанавливая файл «dpkg status» обратно в /var/lib/dpkg/status
и затем запуская dpkg --get-selections
. Теперь он будет ссылаться на ваши резервные данные.