Как я могу перечислить все файлы, которые будут быть установленным пакетом APT?

Вы не можете различать уровень журнала syslog (если это то, что вы хотите) после записи журналов в файл журнала. Но lnav: http://lnav.org/ поддерживает автоматическую раскраску для многих типов журналов.

0
08.12.2018, 15:14
2 ответа

Вы можете передать apt-file listсписок пакетов для обработки за один раз, используя

apt-file -f-

(для чтения со стандартного ввода ). Мои измерения показывают, что

apt-get -s install xorg | awk '/^Inst / { print $2 }' | apt-file -f- list

более чем в два раза быстрее, чем тот же процесс с циклом apt-file(с использованиемxargs).

Я публикую -процесс с sort -k2,2, так как мне очень нравится видеть задействованный пакет.

Использование apt-get -s installвместо пост--обработки apt-cache depends xorgозначает, что учитываются все пакеты, которые будут установлены в вашей системе, и только те пакеты, включая рекурсивные зависимости. apt-cache depends xorgпоказывает только непосредственные зависимости xorg, а ваша обработка сообщения -не обрабатывает альтернативы.

1
28.01.2020, 02:31

Это то, чем я сейчас пользуюсь,но он может содержать ошибки и определенно не очень эффективен:

apt-cache depends xorg | grep '..\(Depends\|Recommends\): [^<]' | sed 's/[^:]*: //' | while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done | sed 's/[^:]*: //' | sort

Шаг -на -шаг:

Получить список пакетов, которые будут установлены:

apt-cache depends xorg

Выберите записи «зависит» и «рекомендует»:

grep '..\(Depends\|Recommends\): [^<]'

Удалите все, кроме имени пакета:

sed 's/[^:]*: //'

Если строка не пуста, запустите apt-fileс каждым именем пакета:

while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done

apt-file listвозвращает строки, каждая из которых начинается с соответствующего имени пакета для файла. Удалить имя пакета из строки, оставив только имя файла:

sed 's/[^:]*: //'

Сортировка строк:

sort
1
28.01.2020, 02:31

Теги

Похожие вопросы