CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.10.2020

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Debian Day

Deborphan: найдите ненужные пакеты

http://beshenov.ru

Оригинал: «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.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds