Почему «purge-old-kernels» удаляет только общие пакеты заголовков?

Мне показалось, что я наконец-то нашел решение своих проблем, поскольку apt недостаточно умен, чтобы удалять ядра / заголовки, которые не нужны в 'purge-old-kernels' благодаря byobu. Он отлично работает с ядрами (к счастью, так как в его названии), но не очень хорошо работает с пакетами заголовков. Кажется, что он удаляет только общие пакеты и вообще не касается базовых пакетов.

Пример:

# dpkg -l | grep linux-header
ii  linux-headers-4.4.0-101           4.4.0-101.124                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-103           4.4.0-103.126                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-103-generic   4.4.0-103.126                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-104           4.4.0-104.127                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-104-generic   4.4.0-104.127                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-108           4.4.0-108.131                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-108-generic   4.4.0-108.131                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-109           4.4.0-109.132                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-109-generic   4.4.0-109.132                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-75            4.4.0-75.96                                all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-78            4.4.0-78.99                                all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-79            4.4.0-79.100                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-81            4.4.0-81.104                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-83            4.4.0-83.106                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-87            4.4.0-87.110                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-89            4.4.0-89.112                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-91            4.4.0-91.114                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-93            4.4.0-93.116                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-96            4.4.0-96.119                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-97            4.4.0-97.120                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-98            4.4.0-98.121                               all          Header files related to Linux kernel version 4.4.0

Как вы можете видеть, я использовал его в этой системе, и он удаляет только пакеты -generic. Кажется, что он запускает apt для удаления пакетов, который выглядит следующим образом:

The following packages will be REMOVED:
  linux-headers-4.4.0-103-generic* linux-headers-4.4.0-104-generic* 
linux-image-4.4.0-103-generic* linux-image-4.4.0-104-generic*
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.

Как вы можете видеть, он только удаляет общие пакеты заголовка и вообще не касается базовых пакетов.

Есть ли способ заставить его обратить на это внимание ??? Попытка автоматизировать это на нескольких системах с использованием cron и сделать его максимально простым. Спасибо.

0
задан 16 January 2018 в 22:43

1 ответ

Byobu является программой, содержащей старые ядра чистки сценария (он был взят из более ранней программы bikeshed),

По словам специалиста по обслуживанию Byobu Dustin Kirkland:

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

(27.04.2017 https://bugs.launchpad.net/byobu / + ошибка/1646276)

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

Поэтому сценарий не будет обновлен через Byobu, если он не будет принят другим специалистом по обслуживанию.

Однако сценарий является только 58 строками и расположенный в/usr/bin/purge-old-kernels во многих системах. Так, Вы могли, вероятно, переписать простой фильтр awk, который это использует для выполнения dpkg, и склонный удаляют - чистка, но затем Вас оставляют, поддерживая Ваш собственный сценарий.

Существует больше обсуждения обесценивающихся старых ядер чистки в пользу Кв., автоудаляют в https://bugs.launchpad.net/ubuntu / + source/byobu / + ошибка/1686138, которая включает некоторое описание обоих неправильных функционирований в некоторых случаях.

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

Вместо этого Jarno Suni, неудовлетворенный этим результатом, предложил более свежее (обновленный 2018) сценарий, названный чисткой Linux https://launchpad.net/linux-purge. Этот сценарий не упаковывается, но может использоваться с помощью этих инструкций: https://launchpad.net/linux-purge / + объявление/14752, которое действительно требует ручного обновления, если сценарий изменяется в будущем.

Чистка Linux работает, командная строка графический интерфейс выбора (подобный debian устанавливают графическую командную строку), который является довольно подробным и включает описание заголовка Linux* и модуля Linux* файлы, которые могут быть удалены. Этот скрипт может быть запущен безопасно некорневой с-s, - моделируют опцию пробного прогона перед фактическим внесением изменений.

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

2
ответ дан 31 October 2019 в 04:44

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

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