Как получить список всех пакетов в Ubuntu/Debian, от которых никакие другие пакеты не зависят

dpkg-query --show --showformat='${Package}\t${Status}\n' | tac | awk '/installed$/ {print $1}' | xargs apt-cache rdepends --installed | tac | awk '{ if (/^ /) ++deps; else if (!/:$/) { if (!deps) print; deps = 0 } }'


Команда dpkg-query возвращает информацию о пакетах, аргументом —show передается формат вывода информации. Аргументом —showformat используется шаблон для форматирования вывода. Тору ‘|’ используется для передачи вывода предыдущей команды в качестве ввода следующей команде.

Команда tac обращает строки в обратном порядке, а команда awk используется для фильтрации вывода и выполнения действий в соответствии с определенными условиями. В данном случае, команда awk фильтрует строки, содержащие «installed» и выводит первое поле строки.

Команда xargs используется для передачи вывода предыдущей команды в качестве аргументов для apt-cache rdepends —installed. Команда apt-cache rdepends —installed возвращает список зависимостей, от которых зависят указанные пакеты.

Команда tac применяется для разворота вывода, а команда awk используется для фильтрации вывода и выполнения действий в соответствии с определенными условиями. В данном случае, команда awk фильтрует строки, начинающиеся с пробела, подсчитывает их количество и выводит строки, не содержащие двоеточие.

Эта команда может быть полезна для определения пакетов, которые не используются другими пакетами, и их возможное удаление для освобождения места. Альтернативой может быть использование различных инструментов, таких как apt-rdepends, aptitude или synaptic, для получения информации о зависимостях пакетов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *