Как я могу настроить apt-get для автоматической очистки после каждой установки

12

Есть ли способ сделать apt-get cleanпосле apt-get installавтоматически, как в других дистрибутивах?

Тиаго Каррондо
источник
Благодаря @Braiam я нашел ошибку в Ubuntu и сообщу об этом. В Debian Braiam решение отлично работает.
Tiago Carrondo
1
@TiagoCarrondo Не могли бы вы поделиться ссылкой на ошибку, пожалуйста?
Кен Шарп
В Xenial все мои машины чистятся. Я не знаю, где это настроено, но это работает.
Кен Шарп

Ответы:

13

Вам просто нужно добавить его в конфигурационные файлы 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

Braiam
источник
Я думаю, что в конце должна быть точка с запятой ;! и поэтому это должно бытьsudo sh -c "echo 'APT::Get::Clean=always;' >> /etc/apt/apt.conf.d/99AutomaticClean"
индийский
@Braiam Я попробовал это, и это не работает. Я даже попробовал APT :: Get :: Clean «всегда», как в других файлах, но не повезло. какая-нибудь подсказка?
Тиаго Каррондо
@Braiam не повезло
Тиаго Каррондо
@TiagoCarrondo как насчет сейчас? Это сообщение usenet говорит, что это победитель.
Брайам
Я пробовал это уже после вашего первого поста. Собираюсь изменить местоположение файла ... подождите
Tiago Carrondo
2

Напишите сценарий оболочки!

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> 

Было бы установить, а затем очистить.

индийский
источник
Я предпочитаю вариант, но звучит как прети хороший план Б,
спасибо
2
/usr/local/bin/кажется более правильным.
Кен Шарп
0

Мой обходной путь, хотя и не является реальным решением, состоит в том, чтобы установить каталог архивов в /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
Кен Шарп
источник
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вручную.

blueyed
источник