Я недавно установил Arch Linux и обнаружил, что довольно быстро поглощаю много памяти. По какой-то причине я уже использовал 17 ГБ всего за 2 недели. У меня не установлено много программного обеспечения, поэтому я считаю, что все старые пакеты где-то поддерживаются.
Чтобы поддержать это, я заметил, что если я установил пакет, удалите этот пакет, а затем переустановите его, чтобы pacman просто распаковывал и переустанавливал программное обеспечение без необходимости его повторной загрузки.
После того, как я установил свою базовую систему, перед дополнительным программным обеспечением я использовал около 2 ГБ или около того С тех пор я только установил Matlab, Skype, Wine и несколько других небольших программ. Конечно, я также установил недостающие библиотеки и тому подобное, но не почти на 15 ГБ.
Я здесь совершенно не прав или Arch никогда не удаляет старые пакеты при загрузке / обновлении до новых версий?
Если так, как я могу удалить эти неиспользованные пакеты?
Также при удалении установленных пакетов я использую pacman -R ...
источник
cron
илиsystemd
работу.Ответы:
Нет, pacman не удаляет старые пакеты из вашего кеша (
/var/cache/pacman/pkg
), поэтому со временем он может заполниться.Вы можете использовать два подхода к очистке кэша: один грубый, с помощью
pacman -Sc
:Или, для более детального подхода, вы можете использовать одну из утилит, поставляемых с pacman-contrib
paccache
:По умолчанию
paccache
удаляются все кроме трех последних версий установленного пакета, но вы можете изменить этот номер с помощью-k, --keep
переключателя. Существует также-d, --dryrun
переключатель для предварительного просмотра ваших изменений. Смотритеpaccache --help
для всех переключателей.В пакете pacman-contrib есть несколько утилит, помогающих управлять пакетами. Стоит взглянуть на них все и получить представление о том, как они работают и могут значительно упростить запуск Arch. Вы можете увидеть полный список с:
источник
--clean
переключателем: он запрещает легко возвращаться к рабочему пакету в случае возникновения проблем с последней версией (например, новый пакет опирается на более старую версию lib или Python; то же самое с аппаратным и последним ядро). Я считаю, что установка кэша pacman в другом месте, чем/
гораздо лучшее решение (просто укажите путь в /etc/pacman.conf ).paccache
вы можете получить его, установивpacman-contrib
пакет.$ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'
избежать пустой строки в результатах? ;-)rm -rf /var/cache/pacman/pkg
было не то, что нужно было сделатьКэш вашего пакета находится в
/var/cache/pacman/pkg/
.ПРИМЕЧАНИЕ:
pacman
пакеты были обновлены в 2018 году и дополнительно требуют установкиpacman-contrib
для использования скриптов / инструментов, какpaccache
описано ниже.Делать:
Чтобы сделать
-dryrun
и посмотреть, что запуск этой утилиты может удалить при следующем:Удалить кэшированные пакеты. 17gbs звучит круто. Убедитесь, что у вас нет убегающих журналов. Делать:
Или даже просто:
Для более общего представления о том, что происходит.
источник
pacman -Scc
делает то, что вы просите, но это не рекомендуется. Из викиКроме того, когда я удаляю пакеты, я предпочитаю использовать
pacman -Rnsc
, поскольку он также удаляет зависимости пакетов, а также пакеты, которые зависят от этого. Как всегда, внимательно прочитайте, какие пакеты удаляются, поскольку вы очень легко можете оставить нашу систему в непригодном для использования состоянии.источник
rm /var/cache/pacman/pkg/*
тогда? Или - это как минимум по умолчанию, наверное. Я давно переместил свой pkg-кеш/tmp
на большинство машин и позволилsquid
обрабатывать один центральный кеш на маршрутизаторе. Не так просто, какpacman -Scc
если бы.Я настоятельно рекомендую использовать
paccache
вместоpacman -Sc
. Существует даже очень эффективный флаг для выборочного удаления версий неустановленных пакетов-u
. Флаги, которыеpaccache
я рекомендую (как часть paccache v5.0.2):-d
,--dryrun
: выполнить пробный прогон, только найти подходящие пакеты-r
,--remove
: удалить пакеты-кандидаты-u
,--uninstalled
: только целевые неустановленные пакеты-k
,--keep <num>
: держать «num» каждого пакета в кэше (по умолчанию: 3)Пример: проверка оставшихся версий кэша удаленных пакетов
источник
-u
изpaccache
. Примерами больших пакетов являются, например, Gnome, KDE или Texlive, чтобы дать вам идею.-k
флаг был новым для меня , и не очень хорошо объяснено в диалоговом окне справки, поэтому его использование здесь было полезно.