Мар 162014
 

Ерунда, конечно. Но, пусть будет. За годы работы серваков под Debian на них накопилось какое-то количество пакетов уже завершивших свой жизненный цикл. Как их найти? Ниже тупая и неэффективная команда, которая распечатает список кандидатов на удаление. С каждым потом надо, конечно, повозиться.

for i in `echo "q w e r t y u i o p a s d f g h j k l z x c v b n m"`; do \
 echo I=$i; aptitude versions --group-by=none $i |grep '^i' |fgrep -v 'testing' |fgrep 100 |fgrep -v 'i A '; \
done

Итого, команда ищет:

  • Только установленные
  • Не из “тестовой” ветки
  • Имеющие “мусорный” вес в системе
  • Не автоматические

Дано. Debian wheezy, недавно переведённый на ветку jessie. Посмотрим… Для примера возьмём

i   kweather 4:4.4.5-1 100

Теперь смотрим, а нужен ли этот пакет. Если нет, сносим.

~# aptitude versions kweather
Пакет kweather:
i 4:4.4.5-1 100
~# aptitude why kweather
Не удалось найти причину для установки kweather.
~# apt-get remove kweather
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакеты, которые будут УДАЛЕНЫ:
kweather
...

Ерунда, казалось бы. А уже набралось больше 500 метров освобождённого пространства. Да и зависимостям пакетов полегчало.

Главное, не удалить чего-то нужного. Пакеты ведь бывают и не из debian репозитория. Тот же dovecot попадает в этот список, но, он нужен. Мне нужен.

i   dovecot-common 2:2.2.5-0~auto+41 100