Deborphan: найдите ненужные пакеты
May. 30th, 2012 11:30 pmDeborphan: найдите ненужные пакеты
5 Март 2008 г
Оригинал: «deborphan: find packages you don’t want», 21 октября 2007 г.
Если вы давно читаете «Пакет дня», то скорее всего ставили для пробы кучу пакетов, и часть из них используете, а о других просто забыли.
Забытые пакеты могут дорого обойтись: они могут содержать исполняемые файлы с атрибутом setuid или запускать демоны, которые нарушают безопасность. Обновления будут занимать больше времени, и в ходе них будет загружаться больше информации. Резервные копии будут занимать больше места (вы ведь делаете резервные копии? при помощи Duplicity?
Если вы используете для работы с пакетами aptitude, то лишние пакеты удалит команда автоматической очистки. Вот как используется Deborphan:
$ deborphan libssl0.9.7 libstdc++5В этом примере Deborphan обнаружил пару небольших лишних пакетов, которые можно удалить. Deborphan просто перечисляет пакеты, для удаления можно использовать команду
$ aptitude purge `deborphan`или, если привыкли работать на более низком уровне,
$ dpkg --purge `deborphan`
Рекурсивный вызов
После удаления ненужных пакетов может обнаружиться, что какие-то другие пакеты тоже оказались ненужными. Поэтому процесс очистки пакетов имеет смысл вызывать рекурсивно:
#!/bin/sh
while [ -n "`deborphan`" ]; do
deborphan
echo
aptitude purge `deborphan`
done
Код выше можно сохранить в скрипт «deborphan-recursive» и вызывать по необходимости.Не библиотеками едиными
Deborphan выдает список установленных в системе пакетов, от которых не зависят другие пакеты. По умолчанию показываются только библиотеки, но, если указан флаг -a, то будет представлен список всех таких пакетов. Рассмотрим такую составную команду:$ dpkg-query -W --showformat='${Installed-Size} ${Package}n'
`deborphan -a | awk '{print $2}'` | sort -rn Это можно оформить в скрипт «deborphan-by-size». По его вызову будет выдаваться отсортированный по убыванию размера список пакетов, от которых ничего не зависит. Результат можно отсматривать от начала к концу, выбирая, что не нужно и что можно удалить. Но помните, что каждое удаление пакета может внести в список изменения — какие-то пакеты могут требоваться только удаленному, а поэтому тоже стать ненужными.Самое плохое, что может случиться — вы случайно удалите какой-нибудь пакет, а потом его придется снова устанавливать и настраивать. Но на этот случай есть резервные копии. Однако если вы устанавливали что-то без системы управления пакетами, то это уже совсем другая история — нужно будет самостоятельно убедиться, что Deborphan не удалит что-то требующееся установленному вручную ПО.
Как насчет маленькой системы, где было бы как можно меньше пакетов и, соответственно, как можно больше свободного места на диске? Для удаления всего лишнего можно шаг за шагом вызывать deborphan. Если что, то dpkg, apt-get, либо aptitude предупредит вас, что вы пытаетесь удалить действительно нужный пакет. Тут следует остановиться, если не хотите проблем.
Иногда библиотеки устанавливаются только для удовлетворения зависимостей разрабатываемого пакета. Тут можно столкнуться с тем, что Deborphan удаляет нужные вещи. Чтобы решить проблему, создайте метапакет, зависящий от требуемых пакетов, либо настоящий пакет (при помощи pbuilder).
Deborphan всегда входил в состав Debian и Ubuntu.
http://citkit.ru/articles/681/