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

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

• 5 min read • Linux • Обновлено 29 Nov 2025
Очистка кэша Pacman в Arch Linux
Очистка кэша Pacman в Arch Linux

Корзина для мусора, символ очистки кэша

TL;DR

Pacman сохраняет скачанные пакеты в /var/cache/pacman/pkg/. Со временем эти tarball-файлы занимают много места. Для безопасной очистки используйте paccache (рекомендуется) или pacman (-Sc/-Scc). Планируйте автоматическую очистку через systemd-timer и храните 1–3 последних версий пакета.

Краткое описание проблемы

Arch Linux даёт много контроля. Pacman скачивает пакеты в кэш и не удаляет старые версии автоматически. Если вы часто обновляете систему, кэш может вырасти до гигабайт и занять ценный диск. Очистка кэша освобождает место, но требует осторожности — вы можете потерять возможность быстро откатиться на старую версию пакета.

Что такое кэш пакетов и зачем он нужен

Pacman использует локальный кэш в каталоге /var/cache/pacman/pkg/ для хранения загруженных tar.xz-файлов. Кэш экономит трафик и позволяет быстро переустановить или откатить пакет без повторного скачивания. Однако кэш растёт и хранит старые версии, которые чаще всего уже не нужны.

Содержимое кэша Pacman с несколькими версиями пакетов

Ключевые команды, которые запускают загрузку в кэш:

  • pacman -S <пакет> — скачивает и устанавливает пакет.
  • pacman -Syu — обновляет список репозиториев и устанавливает обновления.

При обновлении новые tarball-файлы остаются в кэше, а старые не удаляются автоматически.

Как проверить размер кэша

Простая проверка дискового места, занятого кэшем:

sudo du -sh /var/cache/pacman/pkg

Список пакетов в кэше:

ls -lh /var/cache/pacman/pkg

Список всех установленных пакетов и их версий:

pacman -Q

Эти команды помогут понять, сколько места занимает кэш и какие пакеты там хранятся.

Способы очистки кэша

Ниже — проверенные подходы от осторожного к агрессивному.

1) Стандартная команда pacman

sudo pacman -Sc

Что делает: удаляет все файлы из /var/cache/pacman/pkg/, кроме тех версий пакетов, которые в данный момент установлены. Риски: если вы удалили пакет и захотите установить старую версию — её не будет в кэше. Учтите, что pacman -Sc не удаляет все старые версии установленных пакетов — оно сохраняет версию, установленную сейчас.

Для полной очистки кэша используйте очень осторожно:

sudo pacman -Scc

Это удалит весь кэш и потребует повторного скачивания при переустановке.

2) Рекомендуемый способ — paccache

paccache предоставляет гибкий контроль.

sudo paccache -r

По умолчанию paccache оставляет три последние версии каждого пакета и удаляет остальные (включая неустановленные). Если хотите хранить другое количество версий:

sudo paccache -rk1

сохранит только одну версию каждого пакета. Чтобы удалить все tarball-файлы пакетов, которых нет на машине:

sudo paccache -ruk0
  • -r — удалить.
  • -kN — оставить N версий каждого пакета.
  • -u — применить действие только к пакетам, которые в настоящий момент не установлены (uninstalled).

paccache более безопасен и гибок, поэтому рекомендуется для рабочих систем.

3) Автоматизация с помощью systemd (рекомендуется для серверов и рабочих станций)

Создайте юнит и таймер, чтобы выполнять paccache раз в неделю.

Пример systemd service: /etc/systemd/system/paccache.service

[Unit]
Description=Очистка кэша pacman через paccache

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

Пример systemd timer: /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

Это простая и безопасная автоматизация, которую легко отменить.

Когда стоит избегать очистки кэша

  • Если вы часто тестируете откаты на старые версии программ.
  • Если у вас медленное или лимитированное подключение к Интернету.
  • Если зеркало репозитория может не хранить старые сборки.

В таких случаях храните как минимум 2–3 версии пакета или не удаляйте кэш для критичных пакетов.

Действия после очистки

  • Проверяйте, что системы и приложения запускаются нормально.
  • При проблемах с совместимостью — восстановите систему из резервной копии или скачайте старую сборку из архива пакетов.

Примеры и шпаргалка (cheat sheet)

  • Оставить 3 версии каждого пакета (по умолчанию пaccache):
sudo paccache -r
  • Оставить 1 версию каждого пакета:
sudo paccache -rk1
  • Удалить все пакеты, которые не установлены локально:
sudo paccache -ruk0
  • Удалить весь кэш pacman (внимание):
sudo pacman -Scc
  • Проверить размер кэша:
sudo du -sh /var/cache/pacman/pkg

Решение: дерево принятия решения

flowchart TD
  A[Проблема: мало диска?] --> B{Кэш пакетов велик?}
  B -->|Да| C{Нужны откаты?}
  C -->|Да| D[Оставить 2-3 версии: sudo paccache -rk3]
  C -->|Нет| E[Удалить неустановленные: sudo paccache -ruk0]
  B -->|Нет| F[Нет действий]
  D --> G[Настроить systemd-timer]
  E --> G
  G --> H[Мониторинг и проверка]

Рольные чек-листы

Администратор сервера:

  • Проверить политику откатов и совместимости.
  • Настроить systemd-timer для paccache.
  • Проверить зеркало репозиториев на доступность старых версий.

Пользователь рабочего стола:

  • Осмотреть размер кэша перед очисткой.
  • Использовать paccache -rk1 или -r.
  • Не выполнять pacman -Scc без крайней необходимости.

Разработчик / тестировщик:

  • Храните 2–3 версии для тестов.
  • Документируйте, какие пакеты критичны.

SOP: быстрая инструкция для команды

  1. Оцените свободное место: sudo df -h
  2. Оцените размер кэша: sudo du -sh /var/cache/pacman/pkg
  3. Если требуется очистка, выполните: sudo paccache -rk3
  4. Проверка: повторите du -sh и перезапустите критичные сервисы.
  5. Автоматизация: настроить paccache.timer как выше.

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

  • Размер каталога /var/cache/pacman/pkg уменьшился ожидаемо.
  • Система успешно загружает и запускает сервисы и приложения.
  • Процесс очистки задокументирован и настроен на повторение (таймер или cron).

Контрпримеры и ограничения

  • На системах без paccache (редкий случай) можно установить пакет pacman-contrib, который включает paccache.
  • Если вы используете AUR-хелперы (yay, paru), они могут иметь собственные кеши. Проверьте ~/.cache/yay и аналогичные каталоги.

Краткий словарь терминов

  • tarball — сжатый архив пакета, обычно .tar.xz.
  • paccache — скрипт для управления кэшем pacman.
  • pacman -Sc / -Scc — команды pacman для очистки кэша.

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

Очистка кэша не трогает конфигурации, но усложняет откат. Для критичных систем держите резервные копии пакетов или используйте локальное зеркало.

Итог

Pacman кэширует загруженные пакеты и со временем может занять много места. paccache — гибкий и безопасный инструмент для регулярной очистки. Для большинства пользователей достаточно оставить 1–3 версии пакета и настроить регулярную автоматизацию. Всегда проверяйте систему после очистки и документируйте процедуру.

Результат очистки кэша: освобождённое место и оставшиеся версии

Полезная шпаргалка (напоминание):

  • sudo paccache -r — удалить старые, оставить 3 версии.
  • sudo paccache -rk1 — оставить 1 версию.
  • sudo paccache -ruk0 — удалить неустановленные пакеты.
  • sudo pacman -Scc — удалить весь кэш (крайняя мера).

Важно: перед массовой очисткой убедитесь, что у вас есть резервные планы для восстановления старых версий.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро