Как я могу настроить apt-get для автоматической очистки после каждой установки
Есть ли способ сделать apt-get clean
после apt-get install
автоматически, как в других дистрибутивах?
5 ответов
Вам просто нужно добавить его в конфигурационные файлы apt. Просто беги:
sudo sh -c "echo 'DSELECT::Clean "always";' >> /etc/apt/apt.conf.d/99AutomaticClean"
Это будет запускать автоматическую очистку каждый раз, когда вы делаете upgrade
,
Давайте объясним эту запись со страницы руководства:
Clean
Режим очистки кэша; это значение может быть одно из: всегда, приглашение, авто, предавто и никогда. Always and prompt удалит все пакеты из кэша после обновления, приглашение (по умолчанию) делает это условно. auto удаляет только те пакеты, которые больше не загружаются (например, заменяется новой версией). pre-auto выполняет это действие перед загрузкой новых пакетов.
Больше информации:
https://groups.google.com/d/msg/linux.debian.user/aK2jvfL_tuw/rUd6i6bd4YQJ
Напишите сценарий оболочки!
sudo nano /usr/bin/aptinstaller
Внутри этого типа файла:
#!/bin/bash
sudo apt-get install $1
sudo apt-get -y autoclean
sudo apt-get -y autoremove
Сохранить и выйти из nano
и введите:
sudo chmod +x /usr/bin/aptinstaller
Теперь каждый раз, когда вы печатаете
sudo aptinstaller <package-name>
Было бы установить, а затем очистить.
Самый прямой способ (который я знаю) для достижения желаемого эффекта здесь - с опцией "keep-downloaded-packages":
- Создайте новый файл конфигурации apt, например
/etc/apt/apt.conf.d/99custom-conf
- Добавьте в файл следующее.
# Remove downloaded .deb files after installation by apt-get
APT::Keep-Downloaded-Packages "false";
Если имя файла начинается с «99», это означает, что этот файл конфигурации читается последним (и перезапишет любую другую конфигурацию). Затем, установив для параметра «keep-downloaded-packages» BOOL значение false, apt-get автоматически удалит файл пакетов .deb из каталога /var/cache/apt/archives/ сразу после установки (так же, как «apt clean ').
Обратите внимание, что сам apt использует отдельную двоичную директиву для той же опции, и, согласно этой записи apt NEWS, с ноября 2016 года (по крайней мере, в Debian 9 (Stretch)) для нее по умолчанию установлено значение «false». Если (по какой-либо причине) это не относится к вашей системе, вы можете добавить приведенное ниже в свой файл конфигурации.
# Remove downloaded .deb files after installation by apt
Binary::apt::APT::keep-downloaded-packages "false";
ПРИМЕЧАНИЕ. Я не могу говорить о других средах рабочего стола, но центр программного обеспечения KDE Plasma Discover не затрагивается ни одним из этих параметров, поэтому любые установки пакетов или обновления, выполняемые через Discover, сохранят кэшированные файлы .deb, и вам нужно будет запустить
apt clean
удалить их.
Для удобного индекса всех директив/параметров конфигурации apt откройте «/usr/share/doc/apt/examples/configure-index.gz ИЛИ ПРОСТО configure-index (в более поздних версиях)».
Мой обходной путь, хотя и не является реальным решением, состоит в том, чтобы установить для каталога архивов значение /tmp
, Он не будет очищен автоматически после установки, но будет очищен при перезагрузке.
я создал /etc/apt/apt.conf.d/99clean
и добавил:
Dir::Cache::archives /tmp;
В качестве альтернативы вы можете смонтировать /var/cache/apt/archives
с помощью tmpfs
хотя это, очевидно, израсходует ОЗУ, и я бы не рекомендовал этот вариант.
В /etc/fstab
, например:
tmpfs /var/cache/apt/archives tmpfs size=128m,mode=755 0 0
Взломать, кажется, добавляет следующее, например, /etc/apt/apt.conf.d/clean
( через):
DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};
Это автоматически очистит кеш после того, как apt вызовет dpkg.
Это не очищает кеш после apt-get update
хотя, крюк APT::Update::Post-Invoke
может быть использовано для этого.
Лучший метод все еще кажется вызывающим apt-get clean
/ aptitude clean
вручную.