Гид по технологиям

Как очистить кэш пакетов в Arch Linux

5 min read Linux Обновлено 06 Jan 2026
Очистка кэша pacman в Arch Linux
Очистка кэша pacman в Arch Linux

очистка кэша пакетов в Arch Linux

Что произошло с моим диском?

Arch Linux сохраняет копии всех загруженных пакетов в каталоге /var/cache/pacman/pkg/. Это включает установленные версии и предыдущие версии пакетов, которые могут понадобиться для отката после неудачного обновления. Такая политика полезна на rolling-release дистрибутивах, но кэш быстро накапливает гигабайты, если им не управлять.

Важно: файлы в кэше — это не системные файлы, их можно удалить. Но при удалении старых пакетов вы теряете возможность быстро откатиться к предыдущей версии.

Быстрое очищение: pacman

Если нужно быстро освободить место, pacman умеет чистить кэш из коробки.

Команды:

pacman -Sc

Эта команда удалит из кэша те пакеты, которые в данный момент не установлены.

pacman -Scc

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

Гибкий вариант: paccache (pacman-contrib)

pacman -Sc и -Scc — «всё или ничего». Для баланса используйте paccache из пакета pacman-contrib.

Установка:

sudo pacman -S pacman-contrib

Пример: удалить из кэша все версии пакета, кроме трёх последних (paccache по умолчанию оставляет 3 последние версии):

sudo paccache -r

Если нужно явно сохранить ровно N последних версий, используйте -k:

sudo paccache -rk1

Это сохранит только одну последнюю версию каждого пакета.

Совет: всегда запускайте paccache с sudo, иначе не будет доступа к системному кэшу.

Как проверить, какие пакеты и сколько места занимает кэш

Команды для анализа:

sudo du -sh /var/cache/pacman/pkg
sudo du -sh /var/cache/pacman/pkg/* | sort -h
ls -lh /var/cache/pacman/pkg | tail -n 20

Эти команды помогут понять общий размер кэша и какие файлы занимают больше места.

Автоматизация: systemd timer для paccache

На Arch обычно есть юниты systemd для paccache. Вы можете включить таймер, чтобы кэш автоматически чистился по расписанию.

Включение системного таймера (если он поставляется с pacman-contrib):

sudo systemctl enable --now paccache.timer

Если таймер отсутствует или вы хотите задать свой интервал, создайте пользовательский таймер в /etc/systemd/system/paccache.service и /etc/systemd/system/paccache.timer.

Пример простого service и timer:

# /etc/systemd/system/paccache.service
[Unit]
Description=Run paccache to clean pacman cache

[Service]
Type=oneshot
ExecStart=/usr/bin/paccache -r

# /etc/systemd/system/paccache.timer
[Unit]
Description=Run paccache weekly

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

Затем активируйте:

sudo systemctl daemon-reload
sudo systemctl enable --now paccache.timer

Что делать, если нужно сохранить конкретный пакет

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

sudo cp /var/cache/pacman/pkg/name-1.2.3-1-x86_64.pkg.tar.zst ~/backups/

Или скачайте пакет заново из репозитория с помощью pacman -Sw:

pacman -Sw package-name

Когда очистка кэша не решит проблему

  • Если проблема — не кэш, а лог-файлы: проверьте /var/log и journalctl –vacuum-size.
  • Если диск переполнен из-за временных файлов (например, /tmp) — почистите их отдельно.

Безопасность и риски

Важно: удаление кэша не влияет на установленные пакеты, но удаление текущих версий лишит вас локального резерва для отката. Всегда имейте резервную стратегию (backup/rsync, Btrfs snapshots, Timeshift).

Практические примеры и шаблоны

  • Единоразовая очистка, оставляя 3 версии (по умолчанию):
sudo paccache -r
  • Оставить только текущую версию каждого пакета:
sudo paccache -rk1
  • Полная очистка (аналог pacman -Scc):
sudo rm -v /var/cache/pacman/pkg/*

Используйте rm только если понимаете последствия.

Мини-методология для регулярного обслуживания

  1. Еженедельно: проверять размер кэша и свободное место.
  2. Настроить paccache.timer или cron/systemd-таймер.
  3. Перед крупным обновлением делать резервную копию важных пакетов/снимок.
  4. После очистки проверить статус диска и работающие сервисы.

Роли: чек-листы

  • Desktop-пользователь:

    • Запустить sudo paccache -r раз в месяц.
    • Включить paccache.timer.
    • Копировать редкие пакеты вручную при необходимости.
  • Серверный администратор:

    • Настроить paccache с -k2 или -k1 в зависимости от SLA.
    • Включить мониторинг свободного места и алерты.
    • Перед major-обновлением создать снимок/backup.
  • Пользователь с ограниченным диском (микро-VM):

    • Оставлять только текущие версии: sudo paccache -rk1
    • Ограничить логи journalctl: sudo journalctl –vacuum-size=100M

Когда paccache не поможет — альтернативы

  • Управление снимками: Btrfs/ZFS snapshots позволяют откатываться без хранения пакетов.
  • Локальный репозиторий: храните важные пакеты на приватном репозитории или на NAS.
  • Ограничение размера кэша через регулярные задачи (cron/systemd).

Факто-бокс: ключевые моменты

  • Место кэша: /var/cache/pacman/pkg/
  • Быстрая очистка: pacman -Sc (удаляет неустановленные пакеты)
  • Полная очистка: pacman -Scc (удаляет всё)
  • Гибкая очистка: paccache (pacman-contrib), по умолчанию сохраняет 3 последние версии

Критерии приёмки

  • Диск: свободное место увеличилось на ожидаемую величину.
  • Система: пакеты, которые нужны в рабочем состоянии, не удалены.
  • Автоматизация: таймер или cron запущен и выполняется корректно.

Полезные команды для проверки после очистки

df -h /
sudo du -sh /var/cache/pacman/pkg
sudo journalctl --no-pager -n 50

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

Как вернуть пакет из кэша, если он был удалён?

Если пакет удалён из кэша, скачайте его снова командой pacman -Sw package-name или найдите нужную версию на AUR/репозитории и установите.

Можно ли полностью автоматизировать очистку без риска?

Да, если у вас есть надёжные бэкапы или файловая система со снапшотами. На серверах рекомендовано сохранять хотя бы одну предыдущую версию или использовать снимки.

Наглядный выбор: простая диаграмма

flowchart TD
  A[Кэш слишком большой?] -->|да| B{Нужны ли старые версии?}
  B -- Да --> C[Установить paccache и оставить N версий]
  B -- Нет --> D[Использовать pacman -Scc или rm]
  C --> E[Настроить paccache.timer]
  D --> E
  A -->|нет| F[Ничего не делать]

Краткое резюме

Очистка кэша pacman помогает быстро вернуть место на диске. Для безопасного и гибкого управления используйте paccache из pacman-contrib и автоматизируйте процесс через systemd timer. Всегда имейте резервную стратегию, если вы полагаетесь на старые пакеты для отката.

Социальный превью (рекомендация): “Освободите место в Arch Linux: pacman, paccache и автоматизация очистки кэша”.

Короткое объявление (для рассылки, 100–200 слов):

Освободите место на диске в Arch Linux без потери возможности отката. Arch сохраняет все загруженные пакеты в /var/cache/pacman/pkg/, и этот кэш со временем занимает значительное пространство. Для быстрой зачистки используйте pacman -Sc или pacman -Scc. Для более гибкого управления установите pacman-contrib и применяйте paccache (по умолчанию оставляет несколько последних версий). Рекомендуется включить paccache.timer или настроить systemd-таймер, чтобы автоматизировать процесс. На серверах сохраняйте минимум одну предыдущую версию и применяйте снимки/бэкапы для надёжного отката.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство