Очистка кэша pacman в Arch Linux

Если при запуске обновления через sudo pacman -Syu вы видите ошибку о нехватке места, скорее всего виноват кэш пакетов. Arch хранит загруженные пакеты в каталоге /var/cache/pacman/pkg/, включая все версии при обновлениях. Это удобно для отката, но со временем занимает много места.
Что произошло с дисковым пространством?
Arch сохраняет каждый скачанный пакет в /var/cache/pacman/pkg/. После обновления старая версия остаётся в кэше. На rolling-release дистрибутивах это удобно: если обновление ломает программу, можно быстро установить старую версию из кэша. Но при ограниченном объёме диска накопление версий приводит к проблемам.
Проверьте текущий размер кэша командой:
du -sh /var/cache/pacman/pkgТакже можно просмотреть список файлов:
ls -lh /var/cache/pacman/pkg | lessВажно: не путайте кэш пакетов с системными логами или большими данными в /var/lib или /home. Всегда сначала проанализируйте, кто именно занимает место.
Как очистить кэш пакетов в Arch Linux
pacman предоставляет простые команды для удаления кэша.
Удалить из кэша пакеты, которые в системе в текущий момент не установлены:
sudo pacman -ScУдалить весь кэш пакетов полностью:
sudo pacman -SccПримечание: pacman -Sc сохраняет в кэше версии, соответствующие текущим установленным пакетам. pacman -Scc делает «всё или ничего» и удаляет все файлы кэша. Это может затруднить откат к предыдущим версиям.
Утилита paccache: гибкое управление кэшем
pacman-contrib включает утилиту paccache, которая обычно лучше подходит для повседневного обслуживания: она сохраняет несколько последних версий пакета и удаляет старые.
Установка pacman-contrib:
sudo pacman -S pacman-contribУдалить из кэша все версии, кроме трёх последних, можно командой:
sudo paccache -rЕсли нужно сохранить ровно N последних версий, используйте ключ -k:
sudo paccache -rk1Это оставит только самую последнюю версию каждого пакета. Комбинация paccache удобна для балансирования между безопасностью отката и свободным местом.
Как откатиться на старую версию пакета
Если после обновления нужна старая версия, её можно установить прямо из кэша:
sudo pacman -U /var/cache/pacman/pkg/имя-пакета-версия.pkg.tar.zstУбедитесь, что вы выбираете правильный файл и проверяете зависимости. Откат может потребовать блокировки версии в pacman.conf, если вы не хотите, чтобы пакет обновлялся автоматически.
Автоматизация: systemd-таймер для регулярной зачистки
Чтобы не делать очистку вручную, создайте systemd-сервис и таймер, запускающий paccache раз в неделю.
Файл /etc/systemd/system/paccache.service:
[Unit]
Description=Очистка кэша pacman с помощью paccache
[Service]
Type=oneshot
ExecStart=/usr/bin/paccache -rФайл /etc/systemd/system/paccache.timer:
[Unit]
Description=Запуск paccache еженедельно
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.targetАктивируйте таймер:
sudo systemctl daemon-reload
sudo systemctl enable --now paccache.timerЭто разумный способ поддерживать кэш в порядке без ручного вмешательства.
Когда очистка кэша не поможет
Важно понимать, что удаление кэша освобождает место только если именно кэш занимал пространство. Если дело в логах, бэкапах или других больших файлах, очистка pacman ничего не изменит. Проверьте общий разбор диска командой:
sudo du -xh / | sort -rh | head -n 30Если место всё ещё быстро кончается, проанализируйте, какие каталоги растут в размерах, и определите причину.
Риски и рекомендации
Важно:
- Не удаляйте кэш, если вы планируете немедленный откат после обновления.
- Перед массовым удалением проверьте, какие версии будут удалены.
- Делайте резервные копии конфигураций, если откат может затронуть несовместимые изменения в файлах конфигурации.
Советы:
- Для десктопа достаточно оставлять 1–3 версии.
- Для серверов с критичными приложениями оставляйте больше версий и применяйте автоматические тесты перед обновлением.
Чек-лист перед очисткой
- Проверить размер кэша: du -sh /var/cache/pacman/pkg
- Просмотреть файлы в кэше: ls -lh /var/cache/pacman/pkg
- Решить стратегию: полная очистка или оставить N версий
- Выполнить paccache или pacman
- Проверить свободное место: df -h
- При необходимости выполнить откат: sudo pacman -U /var/cache/pacman/pkg/…
Сводка
Очистка кэша pacman помогает вернуть место на диске, но делает это ценой потери удобного отката. Для регулярного обслуживания лучше использовать paccache из pacman-contrib и автоматизировать запуск через systemd-таймер. Всегда проверяйте, что именно занимает место, прежде чем удалять данные.
Ключевые команды-снапшот:
du -sh /var/cache/pacman/pkg
sudo pacman -Sc
sudo pacman -Scc
sudo pacman -S pacman-contrib
sudo paccache -r
sudo paccache -rk1
sudo pacman -U /var/cache/pacman/pkg/имя-пакета-версия.pkg.tar.zstКритерии приёмки
- После очистки место на диске увеличилось на ожидаемую величину.
- Не потеряна возможность отката для пакетов, которые должны быть сохранены.
- Запланированная автоматическая зачистка работает без ошибок.
Примечание: если вы только знакомитесь с Arch, рассмотрите возможность установки через guided installer, чтобы избежать ошибок при начальной настройке и управлении системой.
Сводка ключевых выводов:
- Кэш пакетов в /var/cache/pacman/pkg может занимать значительное место.
- pacman обеспечивает базовую зачистку, но paccache даёт тонкий контроль.
- Автоматизация через systemd облегчает обслуживание.
- Всегда проверяйте содержимое кэша и имейте план отката.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone