вторник, 10 апреля 2012 г.

Натравливаем aptitude на ненужные пакеты

По идее, aptitude должно удалять их за нас само. Там для каждого пакета даже наличие флажка специального предусмотрено -- automatically installed. Но это в идеальном вакууме. На практике вы часто что-то ставите руками, а потом забываете сделать remove или unmarkauto. Хуже того, вам придётся пометить как установленные вручную пакеты с приоритетами required, important и standard, чтобы оно вам ничего лишнего не снесло. Поддерживать такой список пакетов вручную смерть есмь. Решение следующее -- будем помечать необходимые пакеты специально обученным тэгом:
# aptitude add-user-tag mytag <package>...
Отключаем ненужное автоматическое удаление неиспользуемых пакетов -- его и вручную несложно запустить.
Затем пишем скрипт, помечающий всё, что не нужно, как automatically installed:
/root/bin/markallauto:
# !/bin/bash
aptitude markauto `aptitude -F %p --disable-columns search "~i ?not(~M)"`
aptitude unmarkauto `aptitude -F %p --disable-columns search "?user-tag(mytag)" ~prequired ~pimportant ~pstandard`
Помечаем необходимые пакеты тэгом и запускаем скрипт. Всё это делаем, конечно, от рута.
Удаляем мусор:
# aptitude remove ~g ~o
Радуемся полчаса.

Если вы после этого сделали (safe|full)-upgrade, примените клизму повторно.

Комментариев нет:

Отправить комментарий