Недавно я вернулся из отпуска и, обновив около трёх сотен пакетов, получил уведомление от conky о том, что на корневом разделе вот - вот кончится место. И я подумал, что было бы полезно написать статью о нескольких приёмах, которым я научился за годы, и которые я использую, когда на жёстком диске не хватает места.
Для начала нужно оценить, сколько свободного места осталось на диске. Я для этого использую утилиту командной строки "df". Итак, приступим. Для того, чтобы получить список смонтированных файловых систем с отображением сведений об их использовании, используем команду:
|
Она выведет список смонтированных разделов, сколько места на них занято, сколько свободно, процент используемого места и их точки монтирования. Я считаю, что можно без опаски использовать корневой раздел, пока он не заполнится на 90% (а в случае домашнего раздела, и на все 95%). Системе в корневом разделе требуется место под логи, домашнюю папку суперпользователя и прочее, и она оповещает вас, если раздел «заполнится» (всё свободное место, за исключением места под логи, будет занято). Это означает, что мы не сможем устанавливать пакеты или перемещать на раздел файлы, чего нам не хотелось бы. Если Вы обнаружили, что не можете освободить достаточно места, возможно Вам придётся изменить размер раздела, чтобы впредь оно у вас было. Под корневой раздел мне достаточно 10 Гбайт (домашний раздел у меня занимает 25 Гбайт, а то и больше).
Если корневой раздел заполнен, первым делом Вам необходимо очистить кэш пакетов (aptitude, apt-get и synaptic сохраняют скачанные ими пакеты в кэше, чтобы, не нужно было скачивать пакет снова при необходимости переустановить какой - либо из них). Откройте новое окно терминала, чтобы вывод "df -h" в другом был Вам виден, и выполните:
|
или
|
чтобы удалить из кэша все пакеты, которые больше не доступны для скачивания. После выполнения вновь запустите "df -h", чтобы увидеть, сколько места освободилось. Если достаточно, то можно двигаться дальше. Однако, если его попрежнему не хватает, и Вы не подключали репозиторий бэкпортов, не нуждаетесь в самых свежих пакетах и не используете бета - версию Ubuntu, кэш, в принципе, можно очистить полностью. Я спокойно делал так, пока не перешёл на Arch, поскольку Ubuntu тщательно проверяет пакеты в своих репозиториях, оставляя лишь наиболее стабильные. Но если Вы используете репозитории типа getdeb, я бы не советовал так поступать — на тот случай, если для устранения некоторых проблем понадобится откат. Да и вообще, не стоит превращать это в привычку — рано или поздно пакеты из кэша могут для чего - нибудь да пригодиться.
Полностью очистить кэш можно командой:
|
или
|
К слову, я привожу команды и для aptitude, и для apt-get, поскольку для очистки предпочитаю aptitude, а так как Ubuntu в последнее время не пользуюсь, не уверен, что aptget выполняет её точно так же.
Очистка кэша дала нам немного свободного места. Если Вам нужно ещё, или у вас переполнен какой - либо другой раздел кроме корневого, попробуйте отсортировать папки и файлы по размеру и вручную удалить ненужные крупные файлы (старые ISO - образы, архивы, темы значков и т. п.). Приём я позаимствовал из Linux Journal (номер уже не помню) — работает на ура. Итак, если корневой каталог и домашняя папка у Вас на разных разделах, и Вам требуется освободить место в корневом, выполните:
|
Сначала команда меняет текущий каталог на корневой ("cd /"), показывает используемое дисковое пространство ("du") с размером блока в 1 Кбайт ("-k") и общим количеством занятого дискового пространства ("-c") раздела, исключая домашний раздел и другие. Полученная информация сортируется по размеру от мелких файлов к крупным (последний файл в списке - самый крупный) путём перенаправления вывода du команде «sort -n». Не советую удалять что - то в корневом каталоге, предварительно не выяснив, что это (если только это не кэш какой - нибудь программы, которой Вы уже давно не пользуетесь - но и в этом случае не помешает заранее всё проверить). Вы можете серьёзно повредить свою систему, просто стирая всё и вся. Для того, чтобы получить ту же информацию для домашней папки, воспользуйтесь следующей командой:
|
Она отобразит размеры всех папок и файлов в вашем домашнем каталоге и расположит их по порядку, от меньшего к большему. Выбрав самые крупные, Вы можете узнать их конкретный размер (в килобайтах / мегабайтах / гигабайтах), выполнив:
|
Ключ «-h» задаёт вывод размеров в удобочитаемом виде. Тильда (~) заменяет «/home/<имя_пользователя>» (что избавляет нас от набора лишнего текста), а «<имя_папки>» необходимо заменить на имя папки, которая вас интересует. Выяснив, какие папки и файлы захламляют диск, можете удалить те, которые больше не нужны (или сделать резервные копии нужных, но редко используемых файлов, на другие носители). После этих манипуляций свободного места станет ещё больше, и Вы снова сможете устанавливать пакеты!
Настоятельно рекомендую пройтись по списку установленных пакетов и решить, которые из них не нужны, удалив их впоследствии. Делается это легко, при помощи aptitude (рядом с названиями установленных пакетов она выводит метку "i"). Используйте команду:
|
или
|
Замечание насчет apt-cache: я не уверен, что она работает аналогично. Кроме того, стоит проверить назначение пакетов, которые Вы не устанавливали лично, перед тем, как их удалять. Пакет вполне может оказаться одной из зависимостей Ubuntu.
Я готов тысячу раз повторить: будьте предельно осторожны при удалении, особенно, если не знаете, что удаляете. Как говорится, бережёного бог бережёт.
Источник: интернет журнал full circle выпуск выпуск №30 — Октябрь 2009, стр. 5-6