воскресенье, 8 марта 2009 г.

Очистка системы

Думаю все когда-либо сталкиваются с проблемой свободного места — а точнее с его недостатком. Да и вообще, со временем накапливается мусорок разного рода.
  • Старые ядра:
После пары-тройки (в данном случае) обновлений ядра в меню GRUB будет наблюдаться подобная картина. По-моему это неправильно, так «не надо мне тут».

тут картинка

Каждая версия ядра состоит из нескольких пакетов, общим «весом» около 100-150 Мб. То есть при вышеобозначенном случае мы имеем выигрыш в ~300 мегабайт. Неплохо.

Алгоритм действий:
  1. Узнаем используемую версию ядра: $ uname -sr (в данном случае ответом будет linux 2.6.22-10-generic)
  2. В Synaptic найдём пакеты с именем вида «linux-image-x.x.xx-xx» и «linux-headers-x.x.xx-xx», имена которых НЕ СООТВЕТСТВУЮТ используемым в системе. То есть, для нашего случая, удаляться будут пакеты linux-image-2.6.20-16, linux-headers-2.6.20-16, linux-headers-2.6.20-16-generic, linux-image-2.6.20-15 и так далее, по аналогии.
  3. Удаляем их.
  4. $ sudo update-grub
и тут картинка

Фтагн!
  • Удаление ненужных локализаций.
При установке пакетов зачастую устанавливается и документация, рассказывающая, как там, что и куда делать с этой программой. Это бесспорно отлично. Как минимум, можно узнать для чего этот пакет вообще нужен. Однако, я не житель Пакистана и граничащих с ним провинций Индии, и мне не нужна заботливо написанная на урду документация. Для избавления от подобного «мусора» при установке очень полезно использовать небольшой скрипт localepurge.
  1. $ sudo apt-get install localepurge
  2. Прямо при установке произойдёт настройка скрипта. Надо будет отметить необходимые локали.
  3. Забыть об этом скрипте :)
  • Очистка от ненужных пакетов.
  1. $ sudo apt-get autoclean — удаляет старые пакеты
  2. $ sudo apt-get clean — очищает кэш apt.
    Полезно знать, что при установке пакета с помощью apt-get install, APT заботливо помещает каждый полученный пакет в кэш, располагающийся по адресу /var/cache/apt/archives. Причём, при удалении через apt-get remove, он не удаляет пакет из кэша.
    Со временем набирается приличная коллекция, что может быть полезно, например при установке системы на компьютере без соединения с Интернетом — нарезать эти пакеты на болванку и вперёд. Однако, это лишнее место, поэтому я их периодически вычищаю.
  3. $ sudo apt-get autoremove — удаляет пакеты, которые были установлены как зависимости, но остались после удаления оригинальных пакетов, и, соответственно более не нужны. Может использоваться как более лучшая альтернатива apt-get remove.
  4. Пакет deborphan и фронтэнд к нему orphaner — ищет оставшиеся в системе «брошенные» пакеты, оставшиеся после удаления других. deborphan просто выводит список таких пакетов, а на orphaner остановлюсь поподробнее. Так как в процессе работы мы будем удалять пакеты, то запускается он через sudo: $ sudo orphaner. Появится такое окошко:

Отметив (пробелом) пакеты, выбираем <Симуляция>. При этом, утилита произведёт тест, по результатам которого будет ясно, появятся ли в системе очередные «брошенные пакеты» после удаления выбранных. В нашем случае появился ешё один пакет. Отмечаем его, и снова прогоняем симуляцию. Всё чисто, новых пакетов не появилось. Выбираем <ОК>.


Всё :)

5 комментариев:

  1. Спасибо, хорошо написано. Детальный пример очень помог.

    ОтветитьУдалить
  2. =))) Буду заглядывать еще

    ОтветитьУдалить
  3. Действительно статья очень хорошо и качественно написана.
    Остался вопрос:
    чем будет отличаться результат autoremove от результата orphaner?

    ОтветитьУдалить
  4. Спасибо! В принципе, autoremove и orphaner предназначены для одного и того же, просто orphaner делает это более "тщательно" что-ли, позволяя удалить за раз не только более не нужные зависимости, но и "подзависимости", если таковые имеются.

    ОтветитьУдалить