Битлента
Windows, macOS, Android, iOS6 мин чтения·

apt clean, autoclean и autoremove: как очистить кэш пакетов в Ubuntu и Debian

Чем отличаются apt clean, apt autoclean и apt autoremove, где лежит кэш пакетов, как посмотреть результат заранее и что учесть при удалении старых ядер.

Кратко

apt clean очищает каталог со скачанными .deb, apt autoclean удаляет из него только устаревшие файлы, а apt autoremove убирает ненужные зависимости. Перед autoremove полезен пробный запуск с ключом -s.

Три команды, которые путают из-за похожих названий

В Ubuntu и Debian при установке пакетов менеджер сначала скачивает файлы .deb, а потом распаковывает их. Скачанные файлы остаются на диске, даже когда пакет уже установлен. Для одного обновления это немного, но за годы работы набирается заметный объём. Отдельный вопрос: зависимости, которые тянулись для программы и остались после её удаления.

На эти две задачи рассчитаны три команды с очень похожими названиями. Они затрагивают разное, поэтому полезно развести их сразу.

КомандаЧто делает
sudo apt cleanудаляет все скачанные файлы .deb из кэша
sudo apt autocleanудаляет из кэша только те файлы, которые больше нельзя скачать из репозиториев
sudo apt autoremoveудаляет пакеты, которые ставились как зависимости и больше никому не нужны

Первые две команды касаются только кэша: установленные программы они не трогают. Третья меняет состав системы, поэтому к ней стоит относиться внимательнее. Обновление списков и самих пакетов — отдельная тема, она описана на странице про apt update и apt upgrade.

Где лежит кэш и как оценить его размер

Скачанные пакеты хранятся в каталоге /var/cache/apt/archives. Незавершённые загрузки лежат в подкаталоге partial. Посмотреть общий объём можно одной командой: du -sh /var/cache/apt/archives. Если на домашнем компьютере вы часто ставили и обновляли программы, объём зависит от того, как давно кэш не чистили.

На некоторых установках кэш выглядит почти пустым. Так бывает, когда кэш уже очищали, когда в настройках apt включено автоматическое удаление скачанных файлов либо когда установка шла через другой инструмент. Это не признак поломки.

Спискам пакетов от репозиториев отведён другой каталог, /var/lib/apt/lists. Команда apt clean его не очищает, и удалять оттуда файлы руками не требуется: apt update сам обновит содержимое. Если вы видите ошибки о повреждённых списках, это уже отдельная диагностика, а не вопрос свободного места.

Если на диске мало места, полезно время от времени смотреть размер каталога кэша: оценка занимает секунды. Заодно стоит помнить, что пакеты, скачанные для разовой задачи, остаются в кэше, пока его не очистят.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Когда запускать apt clean, а когда достаточно autoclean

Для домашнего компьютера разница небольшая. apt clean полностью освобождает кэш. Это удобно, когда нужно быстро вернуть место, и ничего не ломает: при следующей установке пакет просто скачается снова. Минус только один: если пакет понадобится заново, потребуется интернет.

apt autoclean осторожнее. Он оставляет файлы, которые ещё есть в репозиториях, и убирает устаревшие версии. Если вы регулярно обновляете систему, этот вариант освободит меньше, но сохранит возможность переустановить текущую версию пакета без скачивания.

В каких случаях имеет смысл подождать с очисткой:

  • вы собираетесь переносить пакеты на другой компьютер без доступа в сеть и берёте их из кэша;
  • вы откатываете проблемное обновление и ищете предыдущую версию пакета в кэше;

В остальных ситуациях clean, как правило, безопасен. Команду можно запускать вручную, когда нужно освободить место.

autoremove: удаляем ненужные зависимости с проверкой

Когда вы ставите программу, apt подтягивает библиотеки, которые она требует. Эти пакеты помечаются как установленные автоматически. После удаления программы такие библиотеки остаются, пока не будет выполнена команда autoremove. Она находит автоматически установленные пакеты, от которых больше ничего не зависит, и удаляет их.

Перед реальным запуском сделайте пробный прогон: apt -s autoremove (ключ -s означает симуляцию). Команда покажет список пакетов, которые были бы удалены, но ничего не изменит. Просмотрите его внимательно: если видите знакомую программу, которую удалять не хотели, пометьте её как установленную вручную командой sudo apt-mark manual имя-пакета и повторите проверку.

Ключ --purge у autoremove удаляет вместе с пакетами и их файлы настроек из /etc. Это полезно, когда вы точно не планируете возвращаться к программе, но настройки без резервной копии потом не восстановить.

Некоторые пакеты apt не считает лишними, хотя вы ими не пользуетесь: например, мета-пакеты окружения рабочего стола. Удалять их по своей инициативе без понимания последствий не рекомендуется.

Если вы не уверены, стоит ли выполнять очистку на рабочем компьютере, начните с проверки: посмотрите размер кэша и список из пробного прогона. Эти два действия ничего не меняют, зато дают представление о том, сколько места вы вернёте и какие пакеты исчезнут.

Старые ядра и что нужно знать перед удалением

Среди пакетов, которые убирает autoremove, часто оказываются старые версии ядра Linux. Это ожидаемо: при обновлении ядра новая версия ставится рядом со старой, и старые образы постепенно копятся, занимая место в /boot и в каталоге модулей ядра. Система обычно сама хранит как минимум два ядра, чтобы можно было загрузиться со старого, если новое не запустилось, но точное поведение зависит от дистрибутива и его версии.

Перед запуском посмотрите, какое ядро работает сейчас: uname -r. Проверьте список установленных образов командой dpkg -l 'linux-image*'. Работающее ядро apt обычно не удаляет автоматически, и всё же имеет смысл перезагрузиться после обновления до очистки, а не наоборот.

Если раздел /boot маленький и заполнен, обычная очистка может не пройти из-за нехватки места. Тогда сначала убирают самые старые версии ядра пакетной командой по имени, внимательно сверяя номера, а потом запускают autoremove. Пока вы не уверены, оставьте текущую и предыдущую версии. Перед удалением ядер сделайте резервную копию важных данных: ошибка в номере пакета может оставить систему без рабочего ядра. Сведения о свободном месте в разделах покажет df -h, а ошибки с нехваткой места, как правило, видны прямо в выводе apt.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
aptubuntudebianкэшочистка

Часто задаваемые вопросы

Читайте также