Bug 36936

Summary: update-kernel не может обновить ядро, если установлено несколько версий kernel-headers{,-modules}*
Product: Sisyphus Reporter: Andrew Savchenko <bircoph>
Component: update-kernelAssignee: Vitaly Chikunov <vt>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: boyarsh, evg, iv, lav, mike, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Andrew Savchenko 2019-06-22 12:21:32 MSK
Добрый день!

В системе может быть установлено несколько пакетов kernel-headers* точно так же, как и остальных пакетов ядра. Но в таком случае update-kernel не может обновить ядро:

# update-kernel -f
Running kernel version: kernel-image-elbrus-def-4.9.146-alt3.4.2
Checking for available kernel packages...
Try to install new kernel kernel-image-elbrus-def-4.9.170-alt3.8.2 and update its modules [y]/n? yes
Reading Package Lists... Done
Building Dependency Tree... Done
kernel-image-elbrus-def#4.9.170-alt3.8.2 is already the newest version.
Starting
Starting 2
Done
0 upgraded, 0 newly installed, 0 removed and 0 not upgraded.
update-kernel: kernel-headers is installed, trying to update...
Reading Package Lists... Done
Building Dependency Tree... Done
Package kernel-headers-elbrus-def is a virtual package provided by:
  kernel-headers-elbrus-def#4.9.146-alt2.7.7 4.9.146-alt2.7.7 [Installed]
  kernel-headers-elbrus-def#4.9.170-alt3.8.2 4.9.170-alt3.8.2
You should explicitly select one to install.
E: Package kernel-headers-elbrus-def is a virtual package with multiple good providers.

update-kernel: kernel-headers-modules is installed, trying to update...
Reading Package Lists... Done
Building Dependency Tree... Done
Package kernel-headers-modules-elbrus-def is a virtual package provided by:
  kernel-headers-modules-elbrus-def#4.9.146-alt2.7.7 4.9.146-alt2.7.7 [Installed]
  kernel-headers-modules-elbrus-def#4.9.170-alt3.8.2 4.9.170-alt3.8.2
You should explicitly select one to install.
E: Package kernel-headers-modules-elbrus-def is a virtual package with multiple good providers.

Явное указание версии ядра посредством -r 4.9.170-alt3.8.2 не помогает.

Проблема вылезла на e2k и на версии update-kernel-0.9.13, но:
1) в имзменениях 0.9.14 я ничего по данной проблеме не вижу;
2) 0.9.13 на e2k такой же, как в Сизифе;
3) по идее, ничего архитектурно-специфичного в данной проблеме нет.
Comment 1 Vitaly Lipatov 2019-06-22 12:57:41 MSK
(В ответ на комментарий №0)
> Добрый день!
> 
> В системе может быть установлено несколько пакетов kernel-headers* точно так
> же, как и остальных пакетов ядра. Но в таком случае update-kernel не может
Не согласен. Всегда была проблема, что kernel-headers обновлялись при обновлении системы и не могли оставаться той же версии, что и ядро. В какой-то момент это изменили?

Может быть это только на Эльбрусе может быть несколько kernel-headers* ? Или политика с kernel-headers изменилась?
Comment 2 Andrew Savchenko 2019-06-22 14:57:28 MSK
(In reply to comment #1)
> Не согласен. Всегда была проблема, что kernel-headers обновлялись при
> обновлении системы и не могли оставаться той же версии, что и ядро. В какой-то
> момент это изменили?
> 
> Может быть это только на Эльбрусе может быть несколько kernel-headers* ? Или
> политика с kernel-headers изменилась?

А у нас разве есть политика на эту тему? Я на wiki не нашёл.

На самом деле всё зависит от настроек apt, а именно, от секции Allow-Duplicated.
Если там прописать "^kernel-.*", то можно будет и хедеры разные ставить. На моих системах так и сделано, т.к. для решения некоторых проблем нужно сравнивать хедеры ядра. И e2k тут или amd64 — не важно.