Поиск по сайту:

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

В этом руководстве объясняется, что такое скрипт Paccache и как очистить кеш пакетов в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux.

Что такое Паккеш?

Мы все знаем, что Pacman, менеджер пакетов по умолчанию для Arch Linux и его производных, сохраняет все загруженные пакеты в /var/cache/pacman/pkg/<. каталог.

Мы также знаем, что Pacman не будет автоматически удалять старые или неустановленные пакеты из кеша. По истечении определенного периода времени размер папки кэша увеличится.

Поэтому рекомендуется периодически очищать кэш пакетов в Arch Linux, чтобы освободить место на жестком диске.

В Pacman есть встроенная опция для удаления всех кэшированных пакетов. Вы можете очистить кэшированные пакеты, выполнив команду sudo pacman -Sc.

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

Потому что иногда вам может потребоваться откатить определенный пакет до более старой версии. Итак, если вы очистили все старые пакеты, у вас нет возможности установить их из папки Cache. Вы можете установить их только из официальных репозиториев Arch Linux.

Здесь вам пригодится скрипт Paccache. Сценарий Paccache предоставляется самим пакетом Pacman. Таким образом, вам не придется заморачиваться с этапами установки.

Paccache по умолчанию сохранит 3 самые последние версии пакета. За исключением трех последних версий пакетов, будут удалены все кэшированные версии каждого пакета независимо от того, установлены они или нет.

В этом кратком руководстве рассказывается, как правильно очистить кеш пакетов в Arch Linux и его производных с помощью скрипта paccache.

A. Очистите кеш пакетов в Arch Linux с помощью Paccache.

1. Сначала проверьте, сколько кэшированных пакетов доступно в моей папке кэша.

$ sudo ls /var/cache/pacman/pkg/ | wc -l
3185

2. Как вы видите в приведенном выше выводе, у меня всего 3185 кэшированных пакетов. Позвольте мне проверить общий объем дискового пространства, используемый папкой кеша.

$ du -sh /var/cache/pacman/pkg/
9.7G /var/cache/pacman/pkg/

В настоящее время у меня есть кешированные пакеты размером 9,7 ГБ. Это слишком много. Я не хочу хранить их всех.

3. Чтобы очистить все пакеты, кроме трех последних версий, выполните следующую команду:

$ sudo paccache -r
[sudo] password for sk:

==> finished: 854 packages removed (disk space saved: 4.37 GiB)

Видеть? Paccache удалил из кеша 854 старых и/или неустановленных пакета и сэкономил 4,37 ГБ дискового пространства.

4. Позвольте мне еще раз проверить, сколько пакетов осталось в папке кеша.

$ sudo ls /var/cache/pacman/pkg/ | wc -l
2331

Большой! Теперь в папке Cache доступен 2331 кэшированный пакет. Это три самые последние версии каждого кэшированного пакета.

5. Теперь проверьте общий объем дискового пространства, используемый папкой кэша.

$ du -sh /var/cache/pacman/pkg/
5.4G /var/cache/pacman/pkg/

Большой! Я сэкономил до 4 ГБ дискового пространства.

6. Все еще хотите удалить дополнительные пакеты? Конечно вы можете! Paccache позволяет вам решить, сколько последних версий вы хотите сохранить.

Например, выполните следующую команду, если вы хотите сохранить только одну самую последнюю версию:

sudo paccache -rk 1

Где k указывает на сохранение num каждого пакета в кеше.

7. Чтобы удалить все кэшированные версии неустановленных пакетов, перезапустите paccache с флагом u:

sudo paccache -ruk0

Где флаг u указывает на неустановленные пакеты.

8. Вы также можете использовать следующую команду pacman для удаления всех неустановленных пакетов:

sudo pacman -Sc

9. Чтобы полностью удалить все пакеты (независимо от того, установлены они или удалены) из кеша, выполните следующую команду:

sudo pacman -Scc

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

Рекомендуемая загрузка – Бесплатная электронная книга: «Изучите Linux за 5 дней»

Б. Автоматическая очистка кеша пакетов в Arch Linux

1. Если вам лень очищать кэш пакетов вручную, вы можете автоматизировать эту задачу с помощью хуков pacman. Перехватчик pacman автоматически очищает кеш пакетов после каждой транзакции pacman.

Для этого создайте файл /etc/pacman.d/hooks/clean_package_cache.hook:

sudo mkdir /etc/pacman.d/hooks
sudo nano /etc/pacman.d/hooks/clean_package_cache.hook

Добавьте следующие строки:

[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache -r

2. Сохраните и закройте файл. С этого момента кэш пакетов будет очищаться автоматически после каждой транзакции pacman (например, обновления, установки, удаления). Вам не нужно каждый раз запускать команду paccache вручную.

Для получения более подробной информации обратитесь к разделу справки Paccache, выполнив следующую команду:

paccache -h

Связанное чтение:

  • Включить параллельную загрузку в Pacman в Arch Linux
  • Как установить Paru AUR Helper в Arch Linux
  • Получить последний список зеркал с помощью Reflector в Arch Linux

Заключение

В этом руководстве мы узнали, как очистить кеш пакетов с помощью скрипта Paccache и как автоматически очистить кеш пакетов с помощью перехватчика pacman в Arch Linux. Оба эти инструмента помогут вам поддерживать чистоту Arch Linux и сэкономить много дискового пространства.

Статьи по данной тематике