Почему apt-get autoremove не удаляет мои старые ядра?

Мой загрузочный раздел находится на SSD, поэтому у него нет места для более чем 8 установленных версий ядра, и в конечном итоге некоторое обновление ядра не будет установлено, потому что мой загрузочный раздел полон старых версий. Есть много вопросов о том, как удалить старые версии (даже как автоматизировать процесс), но мой вопрос заключается в следующем: почему apt-get autoremove не обнаруживает и не удаляет их автоматически, и есть ли способ сделать это Сделай так? Я имею в виду, что apt-get - это то, что их все равно установило, поэтому он знает о них, поэтому почему он решил оставить все старые версии?

1
задан 20 December 2014 в 04:12

3 ответа

Для меня это помогло установить последнюю (X) ubuntu (15.10). В более ранних версиях пакеты ядра могут быть помечены как установленные вручную, по крайней мере, если они установлены с помощью Software Updater, так что sudo apt-get autoremove --purge не может их удалить. В этом выпуске есть сообщения об ошибках: Ошибка # 1175637, ошибка # 1439769

В предыдущем выпуске вы можете попытаться пометить пакеты ядра, автоматически установленные в sudo apt-mark auto $(apt-mark showmanual | grep -E "^linux-([[:alpha:]]+-)+[[:digit:].]+-[^-]+(|-.+)$"), и затем запустить sudo apt-get autoremove --purge, чтобы увидеть, если это делает разницу. Команда все равно не должна удалять пакеты ядер, указанные в файле /etc/apt/apt.conf.d/01autoremove-kernels, но наиболее безопасно запускать apt-get autoremove с опцией --dry-run.

7
ответ дан 24 May 2018 в 00:50
  • 1
    Команда autoremove имеет тенденцию удалять слишком много ядер, см. Ошибка # 1440608 – jarno 24 December 2015 в 22:54
  • 2
    apt-mark сделал трюк для меня, я бы мог увеличить 10 раз: P – Mike Gleason jr Couturier 27 February 2018 в 21:31

Обновление: упомянутая ссылка больше не работает.

Вот ссылка на сценарий очистки ядра с отказоустойчивостью, которую Дастин Киркланд написал несколько лет назад. Он должен по-прежнему работать с 12.04.

Обновление: упомянутая ссылка больше не работает.

Я собирался протестировать ее на своей машине 14.04 , но кажется, что я больше не испытываю проблемы там (наконец, исправлено через обычный канал обновления?). Поэтому, если кто-то из многих старых ядер на своей машине хочет протестировать его, пожалуйста, сделайте и поделитесь своими выводами.

-1
ответ дан 24 May 2018 в 00:50
KERNELS1=$(uname -r|cut -d - -f1-2); KERNELS2=$(for i in $(ls -l /vmlinuz*|awk '{print $(NF-0)}'); do echo $i |xargs basename|cut -d - -f2-3; done); dpkg -l|egrep 'linux-headers-[0-9]\.[0-9]\.[0-9]-[0-9]|linux-image-[0-9]\.[0-9]\.[0-9]-[0-9]'|egrep -v ''"${KERNELS1}"'|'"${KERNELS2}"''|awk '{print $2}'|xargs apt-get purge -y

Я использую это на Ubuntu 12.04!

Это будет поддерживать текущее запущенное ядро, а также новейшее установленное ядро ​​(vmlinuz) и ранее (vmlinuz.old). Все остальные ядра и заголовки будут удалены.

-4
ответ дан 24 May 2018 в 00:50
  • 1
    Вы действительно должны объяснить, что это делает! – guntbert 10 September 2015 в 11:55

Другие вопросы по тегам:

Похожие вопросы: