Pacman как очистить кеш

Обновлено: 02.07.2024

В этом руководстве о том, как удалить кэшированные пакеты в Arch, которые не нужны с помощью Pacman, я покажу вам шаги, предпринятые для удаления потерянных пакетов, которые обычно кэшируются в Arch. Менеджер пакетов Pacman является одной из основных отличительных особенностей Arch Linux, он может сочетать простой бинарный пакет и систему сборки пакетов, аналогичную Gentoo. Pacman упрощает управление как официальными исходными пакетами Arch, так и сборочными пакетами других пользователей.

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

Удалить кэшированные пакеты в Arch

Каталог для хранения загруженных пакетов pacman — /var/cache/pacman/pkg/. Старые и неустановленные пакеты автоматически не удаляются и вам нужно намеренно делать очистку вручную. Вы можете очистить все кешированные пакеты или определенные.

Удалить все кешированные пакеты, которые в данный момент не установлены

Чтобы удалить из кэша все пакеты, которые в данный момент не установлены в вашей системе, используйте команду:

Удалить кэшированные пакеты в Arch

Объяснение используемых параметров приведено ниже:

-c, --cascade: удалить все целевые пакеты, а также все пакеты, зависящие от одного или нескольких целевых пакетов. Эта операция является рекурсивной, и ее следует использовать с осторожностью, поскольку она может удалить многие потенциально необходимые пакеты.

-S, --sync : синхронизировать пакеты

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

Удалите все кешированные пакеты, очистив папку кеша

Можно очистить все внутри каталога /var/cache/pacman/pkg/ с помощью следующей команды:

Это также предотвращает переустановку пакета непосредственно из папки кеша в случае необходимости, что требует новой загрузки. Его следует избегать, если только нет срочной потребности в дисковом пространстве.

Удалить все кешированные версии каждого пакета с помощью paccache

Следующая команда удалит все кешированные версии каждого пакета независимо от того, установлены они или нет, кроме трех самых последних, по умолчанию:

-d, --dryrun : выполнить пробный запуск, найдя только пакеты-кандидаты.
-m, --move : переместить пакеты-кандидаты в «каталог».
-r, --remove : Удалите пакеты-кандидаты.

Опции, которые можно использовать с приведенными выше рабочими командами, включают:

-f, --force : применить силу к операциям mv(1) и rm(1).
-i, --ignore : игнорировать «пакеты», разделенные запятыми.
-k , --keep : сохранить «число» каждого пакета в кеше (по умолчанию: 3).
-q, --quiet : свести к минимуму вывод
-u, --uninstalled :нацелить на удаленные пакеты.< /p>

Например, чтобы сохранить 10 последних пакетов, вы будете использовать:

Чтобы удалить все кешированные версии удаленных пакетов, повторно запустите пакет paccache с помощью:

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

Автоматическая очистка кэша после каждой транзакции pacman

Вы также можете создавать хуки pacman, которые автоматически запускаются после каждой транзакции pacman для очистки кеша pacman. Хуки Pacman до и после транзакции загружаются из каталога /usr/share/libalpm/hooks/. Пример сценария пост-хука показан ниже:

Оба были определены как обработчики PostTransaction, что означает, что они запускаются после каждой успешной транзакции pacman. Используемые параметры команды Exec показаны ранее, поэтому вам не составит труда написать свои собственные.

Теги Arch LinuxPackage Management slug; $list = get_page_by_title('related', 'OBJECT', 'wp_show_posts'); wpsp_display($list->ID, 'tax_term="' . $cat_slug . '"' );*/ ?>

Испытываете проблемы с нехваткой места на диске в Arch Linux? Вы можете освободить место в системе, очистив кеш пакетов.

Итак, вы используете Arch Linux и вводите sudo pacman -Syu для обновления системы, но утилита pacman сообщает, что у вас недостаточно места на диске. Что случилось? Скорее всего, вам просто нужно очистить кэш пакетов вашей системы.

Что случилось с моим дисковым пространством?

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

Несмотря на то, что наличие нескольких копий пакета полезно для восстановления, оно занимает место. Вы можете забыть удалить старые версии пакетов. Разработчики Arch Linux решили, что лучше самому управлять этим кешем, чем создавать какую-то автоматическую утилиту для избавления от устаревших версий. Так как же вернуть свое место?

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

К счастью, утилита pacman позволяет очистить кэш пакетов. Для этого введите:

Это удалит из кеша все пакеты, которые в данный момент не установлены. Добавление в команду еще одного флага -c приведет к удалению всех кэшированных пакетов.

Утилита paccache

Очистка кеша пакетов с помощью pacman — это решение по принципу «все или ничего». Вы захотите иметь несколько более старых версий, чтобы вернуться к ним, сохраняя при этом достаточно места на диске. Утилита paccache поможет вам сбалансировать эти потребности. Это часть пакета pacman-contrib.

Чтобы установить его, введите:

Чтобы удалить все кешированные пакеты, кроме трех последних версий, введите:

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

Теперь у вас больше места на диске

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

Если вы еще не пробовали Arch Linux или сложный процесс установки кажется вам пугающим, вы можете легко установить Arch Linux с помощью пошагового установщика.

Недавно я установил Arch Linux и обнаружил, что довольно быстро расходую большой объем памяти. По какой-то причине я уже использовал 17 ГБ всего за 2 недели. У меня установлено не так много программного обеспечения, поэтому я склонен полагать, что все старые пакеты где-то хранятся.

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

После того, как я установил свою базовую систему, до дополнительного программного обеспечения я использовал около 2 ГБ или около того. С тех пор я установил только Matlab, Skype, Wine и несколько других небольших программ. Конечно, я также установил отсутствующие библиотеки и тому подобное, но их объем не превышает 15 ГБ.

Я тут совершенно не прав или Arch никогда не удаляет старые пакеты при загрузке/обновлении до новых версий?

Если да, то как удалить эти неиспользуемые пакеты?

Кроме того, когда я удаляю установленные пакеты, я использую pacman -R .

4 ответа 4

Нет, pacman не удаляет старые пакеты из кэша ( /var/cache/pacman/pkg ), поэтому со временем он может заполниться.

Вы можете использовать два подхода к очистке кеша: метод полного перебора с помощью pacman -Sc :

-c, --clean
Удалите пакеты, которые больше не установлены, из кеша, а также неиспользуемые базы данных синхронизации, чтобы освободить место на диске. Когда pacman загружает пакеты, он сохраняет их в каталоге кеша. Кроме того, базы данных сохраняются для каждой базы данных синхронизации, из которой вы загружаете, и не удаляются, даже если они удаляются из файла конфигурации pacman.conf(5). Используйте один параметр --clean для удаления только тех пакетов, которые больше не установлены; используйте два, чтобы удалить все файлы из кеша. В обоих случаях у вас будет выбор «да» или «нет» для удаления пакетов и/или неиспользуемых загруженных баз данных.

Или, для более тонкого подхода, вы можете использовать одну из утилит, поставляемых с pacman-contrib, paccache :

paccache — это гибкая утилита для очистки кэша pacman, которая имеет множество параметров, помогающих контролировать, что и сколько будет удалено из любого каталога, содержащего tar-архивы пакетов pacman.

По умолчанию paccache -r удалит все версии установленного пакета, кроме трех последних, но вы можете изменить это число с помощью переключателя -k, --keep. Также есть ключ -d, --dryrun для предварительного просмотра ваших изменений. Вы также можете использовать опцию -m, --move для перемещения пакетов в отдельный каталог по вашему выбору. См. paccache -h или paccache --help для всех переключателей.

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

Несмотря на то, что Arch Linux занимает немного места на диске сразу после установки, с течением времени его объем значительно увеличивается. Итак, если у вас не осталось свободного места на вашем компьютере или вы просто хотите, чтобы ваша система Arch Linux была чистой, этот пост — все, что вам нужно.

В этом посте вы узнаете, как:

ПРИМЕЧАНИЕ: я хотел бы предупредить вас, что вы можете повредить свою систему, если допустите ошибку во время этих процедур.Поэтому, пожалуйста, создайте резервные копии всех ваших файлов, прежде чем что-либо делать с вашей системой.

ВИДЕО

Шаги по очистке Arch Linux

1. Очистить кэш пакетов

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

Однако эта папка /var/cache/pacman/pkg/ может неограниченно увеличиваться в размере.

Отображение размера загруженных пакетов в моем Arch Linux

Отображение размера загруженных пакетов в моем Arch Linux

Поэтому время от времени его нужно чистить. Это можно сделать двумя способами: вручную и автоматически.

Очистка кеша вручную

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

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

Другой вариант – удалить из кеша все пакеты, включая установленные:

Удалите кеш PKG для экономии места

Удалите кеш PKG, чтобы сэкономить место

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

Автоматическая очистка кеша

Еще один способ очистить каталог /var/cache/pacman/pkg/ — использовать сценарий, который автоматически удаляет все кешированные версии установленных и удаленных пакетов, кроме трех самых последних версий. Скрипт называется paccache. Вы можете установить его с помощью пакета pacman-contrib.

Доступные параметры см. в меню справки пакета .

Показ справки по пакету

Отображение справки Paccache

Например, вы можете запустить его в сухом режиме, чтобы увидеть, сколько пакетов будет удалено с помощью параметра -d. Затем вы можете запустить настоящую очистку, используя параметр -r.

Запуск пакета

Ежемесячно запускать пакет

Очень полезным способом использования этого скрипта является его автоматический запуск раз в месяц с помощью системного таймера. По сути, вам нужно создать файл paccache.timer в /etc/systemd/system/ , который вызовет /usr/lib/systemd/system/paccache.service .

Итак, вы создаете файл paccache.timer с помощью nano:

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

После этого запустите службу systemd:

Наконец, вы можете проверить статус службы.

Статус пакета в systemd активен

Статус пакета в systemd активен

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

Запустить paccache после pacman

В качестве альтернативы этому таймеру вы также можете запускать paccache каждый раз после запуска pacman . Итак, вам нужно создать хук для этого. Просто создайте файл /usr/share/libalpm/hooks/paccache.hook .

После этого добавьте этот контент в файл.

Теперь, если я удалю пакет с помощью pacman , пакет paccache также будет выполнен.

Теперь paccache будет запускаться после pacman

Теперь paccache будет запускаться после pacman

Разве вы не знали, как очистить Arch Linux?

2. Удалить неиспользуемые пакеты (сироты)

Когда вы устанавливаете и удаляете пакеты в Arch Linux, некоторые неиспользуемые пакеты-сироты могут остаться в вашей системе.Чтобы найти их, вам нужно запустить эту команду:

Показ потерянных пакетов

Отображение потерянных пакетов

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

Удаление потерянных пакетов

Удаление потерянных пакетов

Теперь вы знаете, как очистить системные файлы Arch Linux, удалив кеш pkg и удалив потерянные пакеты. Однако в вашей домашней папке есть еще много вещей, которые нужно сделать.

3. Очистите кеш в вашем /home каталоге

На этом этапе я покажу вам, как очистить Arch Linux, удалив файлы кеша в вашей папке /home/user.

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

Показать размер папки кеша в домашнем каталоге

Чтобы очистить его, вам нужно удалить все файлы внутри него:

4. Удалить старые файлы конфигурации

Файлы конфигурации различных программ хранятся в ~/.config/ . Вы можете войти в него из своего файлового менеджера и проверить, остались ли какие-либо файлы конфигурации от программ, которые вы удалили. Просто выберите эти папки и удалите их. Но прежде чем вы удалите какой-либо файл, я также хотел бы напомнить вам, что лучше иметь резервную копию всех ваших файлов, прежде чем что-либо удалять.

В папке .config находятся файлы конфигурации

Файлы конфигурации в ~/.config

Некоторые старые файлы также могут лежать в ~/.local/share/ . Проверьте его и при необходимости удалите некоторые файлы и папки.

5. Удалите дубликаты, пустые файлы, пустые каталоги и неработающие символические ссылки

Вы можете сделать еще большую очистку, удалив повторяющиеся и пустые файлы и каталоги. Чтобы поддерживать порядок в вашей системе, я также рекомендую удалять неработающие символические ссылки, т.е. ссылки, которые ведут к несуществующему файлеру или папкам. Они не занимают много места, но загромождают вашу систему. Чтобы удалить такие вещи, вы можете использовать программу rmlint.

Если вы проверите все его параметры с помощью --help , вы увидите, что их довольно много. Я рекомендую изучить их.

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

Использование rmlint в домашней папке

Использование rmlint в домашней папке

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

rmlint создает файл сценария

rmlint создает файл сценария

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

Удаление дубликатов файлов с помощью rmlint

Удаление повторяющихся файлов с помощью rmlint

Теперь ваша система стала чище. Но это еще не конец, есть еще несколько вещей, которые вы можете сделать, чтобы очистить его еще больше.

6. Найдите самые большие файлы и каталоги

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

Чтобы установить его, выполните следующую команду:

Выполните поиск самых больших каталогов, а затем зайдите в эти каталоги, найдите самые большие файлы и удалите их, если они вам не нужны.

Использование ncdu для поиска самой большой папки в системе

Использование ncdu для поиска самой большой папки в системе

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

Использование FileLight

Использование FileLight

Если вы используете Gnome, вы можете установить baobab . Есть и другие инструменты, перечисленные в Arch Wiki. Выбирайте все, что вам нравится.

Другие инструменты отображения использования диска

Другие инструменты отображения использования диска

7. Программы очистки диска

Есть также некоторые программы очистки диска, которые могут автоматически выполнять многие из перечисленных выше задач. Тем не менее, поскольку вы используете Arch Linux, я не рекомендую использовать эти программы. Не всегда очевидно, что именно будет сделано, и у вас нет полного контроля над вашей системой. Кроме того, вы можете очень легко удалить некоторые файлы конфигурации, которые вы не хотели удалять.

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

Инструменты очистки диска доступны в Arch Linux

Инструменты очистки диска, доступные в Arch Linux

Среди всех программ автоматической очистки в Arch Linux Bleachbit, пожалуй, самая популярная. У него приятный графический интерфейс, и он может делать большинство вещей, которые я показал выше. Например, вы можете очистить системный кеш. Просто выберите его и нажмите кнопку очистки.

В конце вы увидите что-то вроде этого.

Очистка кеша с помощью Bleachbit

Очистка кеша с помощью Bleachbit

Это означает, что ваш системный кеш был очищен.

Ознакомьтесь с другими возможностями Bleachbit. Я считаю, что большинство из них говорят сами за себя.

Обновить

Благодаря комментариям на YouTube и под этой публикацией я могу улучшить эту публикацию, расширив этот список. Ниже вы найдете еще несколько вещей, которые вы можете сделать, чтобы очистить вашу систему Arch Linux.

8. Очистить журнал Systemd

Systemd хранит свои журналы в /var/log/journal/, и эти журналы могут быть очень полезны, как я описал в своем посте «10 вещей, которые нужно сделать в первую очередь после установки Arch Linux». Однако по умолчанию эти файлы журналов могут занимать до 10% размера вашей системы. Есть два решения для ограничения этого размера.

  1. Вы можете очистить эти файлы журналов вручную, когда у вас закончится свободное место. Вы можете хранить только последние журналы в соответствии с ограничением по размеру (например, хранить только 50 МБ последних журналов):

Или по ограничению времени (например, последние 4 недели):

  1. Вы также можете установить такое ограничение как постоянное и не беспокоиться об очистке журналов. Просто отредактируйте файл /etc/systemd/journald.conf, раскомментировав SystemMaxUse= и установив ограничение на размер:

Это то, что я решил сделать, и именно поэтому я упустил этот момент, когда писал эту статью. Я просто никогда не сталкивался с большими файлами журнала.

Я хотел бы поблагодарить Себастьяна за указание на это в разделе комментариев.

ЗАКЛЮЧЕНИЕ

Теперь, когда вы знаете, как чистить Arch Linux, у вас нет оправданий не делать это в вашей системе :-) Помните, что нехватка свободного места может замедлить работу вашей системы, поэтому в некотором смысле эти вещи помогают поддерживать стабильная и гибкая система.

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

Пожалуйста, поддержите этот проект:

Average Linux UserFollow Я являюсь основателем проекта Average Linux User, это хобби, над которым я работаю по ночам. Днем я ученый, который использует компьютеры для анализа генетических данных.

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