Bug 36150 - nvidia-install-driver не может найти ядердный модуль
Summary: nvidia-install-driver не может найти ядердный модуль
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
: 36159 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-02-21 19:19 MSK by Владимир Диденко
Modified: 2022-01-10 10:57 MSK (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Владимир Диденко 2019-02-21 19:19:49 MSK
Попытки воспользоваться скриптом nvidia-install-driver оканчиваются ошибкой вида

NVIDIA driver not found for your kernel 4.14.98-std-def-alt1
Comment 1 Sergey V Turchin 2019-02-22 12:52:14 MSK
Значит, либо репозиторий не подключен, либо драйвера для этого ядра в нём нет.
Comment 2 Владимир Диденко 2019-02-22 13:28:48 MSK
(In reply to comment #1)
> Значит, либо репозиторий не подключен, либо драйвера для этого ядра в нём нет.

Репозиторий подключен, ядерный модуль точно есть в репозитории.
Comment 3 Владимир Диденко 2019-02-22 13:29:24 MSK
У меня воспроизводится на любой машине с сизифом.
Comment 4 Sergey V Turchin 2019-02-22 14:59:05 MSK
(В ответ на комментарий №2)
> ядерный модуль точно есть в репозитории.
https://packages.altlinux.org/ru/sisyphus/srpms/kernel-image-std-def
Нет такого ядра и модулей к нему, соответственно.
Comment 5 Sergey V Turchin 2019-02-22 15:10:13 MSK
Похоже, apt поломали.
Comment 6 Anton Farygin 2019-02-22 15:15:02 MSK
почему apt ?
Comment 7 Sergey V Turchin 2019-02-22 15:19:00 MSK
Новый rpm изгадил Provides своими новыми фишками.
Comment 8 Anton Farygin 2019-02-22 15:19:48 MSK
Но более новый rpm может это зачистил, имей это ввиду.
Comment 9 Sergey V Turchin 2019-02-22 15:24:50 MSK
Не зачистил. Я не вижу разницы.
Comment 10 Anton Farygin 2019-02-22 15:31:10 MSK
Я должен был, по идее.
Comment 11 Anton Farygin 2019-02-22 15:32:23 MSK
Не Я должен был, а он должен был, извините.

если rpm везде зачищает disttag, то наверное и в apt-scripts эти версии должны попадать в очищенном виде.
Comment 12 Ivan Zakharyaschev 2019-02-22 15:37:02 MSK
(In reply to comment #3)
> У меня воспроизводится на любой машине с сизифом.

Какой версии rpm и apt?

скрипт nvidia-install-driver из какого пакета?
Comment 13 Владимир Диденко 2019-02-22 15:46:59 MSK
(In reply to comment #12)
> Какой версии rpm и apt?

$ rpm -qi rpm
Name        : rpm
Version     : 4.13.0.1
Release     : alt6
DistTag     : sisyphus+221238.100.2.1
Architecture: x86_64

$ rpm -qi apt
Name        : apt
Version     : 0.5.15lorg2
Release     : alt61
DistTag     : sisyphus.218765.400
Architecture: x86_64

> 
> скрипт nvidia-install-driver из какого пакета?

$ rpm -qf /usr/bin/nvidia-install-driver 
nvidia_glx_common-410.93-alt211.x86_64
Comment 14 Sergey V Turchin 2019-02-25 10:54:57 MSK
(В ответ на комментарий №12)
> скрипт nvidia-install-driver из какого пакета?
Из пакета apt-scripts-nvidia.
verprovlist() возвращает список Provides, не почищенный от disttags.
Comment 15 Sergey V Turchin 2019-02-25 12:58:18 MSK
*** Bug 36159 has been marked as a duplicate of this bug. ***
Comment 16 Dmitry V. Levin 2019-02-27 12:25:37 MSK
Кому, на ваш взгляд, следует чистить disttag, и почему?
Comment 17 Sergey V Turchin 2019-02-27 12:56:06 MSK
(В ответ на комментарий №16)
> Кому, на ваш взгляд, следует чистить disttag,
libapt перед передачей в интерпретатор.

> и почему?
Скрипты не должны зависеть от изменений внутренностей rpm.
Например, если я ставлю в pkg1.spec
Requires: pkg2 = 1.0-alt1
, то у меня никакие distag не фигурируют.
Так же должно быть и при написании скрипта.
А disttag -- внутренняя кухня rpm.
Comment 18 Dmitry V. Levin 2019-02-27 13:10:04 MSK
(In reply to comment #17)
> А disttag -- внутренняя кухня rpm.

Нет, это не так, disttag - это такая же внутренняя кухня, как и epoch.
epoch может не быть, и disttag может не быть.
epoch надо учитывать, если она есть, и disttag надо учитывать, если он есть.
Comment 19 Sergey V Turchin 2019-02-27 13:14:35 MSK
disttag есть только у нас, следовательно, извращаться, опять же, не как у всех придётся.
Comment 20 Sergey V Turchin 2019-02-27 13:20:36 MSK
Получается, что зависимости на подпакет вида
Requires: %name-common = %EVR
все неправильные и должны быть исправлены на 
Requires: %name-common = %EVRD
?

P.S.
Про
Requires: %name-common
знаю.
Comment 21 Ivan Zakharyaschev 2019-02-27 13:30:23 MSK
(In reply to comment #20)
> Получается, что зависимости на подпакет вида
> Requires: %name-common = %EVR
> все неправильные и должны быть исправлены на 
> Requires: %name-common = %EVRD
> ?

Нет, от этих двух форм эффект одинаковый.

Почему возникла такая мысль, что зависимость одной из этих форм не годится? Для каких целей?
Comment 22 Sergey V Turchin 2019-02-27 14:41:38 MSK
(В ответ на комментарий №21)
> Нет, от этих двух форм эффект одинаковый.
А в скриптах разный. Там "==" не умеет учитывать disttag.
Или там есть функция сравнения версий, учитывающая disttag?
Comment 23 Ivan Zakharyaschev 2019-02-27 14:49:44 MSK
В скриптах apt? apt про это ещё может вообще не знать, если он не пользуется функциями из rpm. Просто его ещё не доделали.

К тому же я не знаю, подразумевается ли, что == сравнивает аргументы просто как строки или по особому обрабатывает версии. Тут, конечно, согласен, напрашивается специальная функция для сравнения версий типа rpmRangesOverlap() из rpm.
Comment 24 Sergey V Turchin 2019-02-27 15:23:00 MSK
(В ответ на комментарий №23)
> В скриптах apt? apt про это ещё может вообще не знать, если он не пользуется
> функциями из rpm. Просто его ещё не доделали.
Ааа, тогда ждем.

> подразумевается ли, что ==
Не. Это я поторопился. Там есть verstrcmp(arg1, arg2).
При этом arg1 может быть получен из Requires, а arg2 из Provides.
rpm такое разрулит, а verstrcmp нет. Не будут они равны(теперь с disttag).
Comment 25 Pavel 2022-01-05 03:58:06 MSK
Было такое. Решил обновлением ядра из того же репозитория, откуда обновлял драйвер.

(у меня возникла другая, не связанная ошибка - оказалось, в 64-битном драйвере битые файлы - решение указал в ответе https://bugzilla.altlinux.org/show_bug.cgi?id=15326#c7 )
Comment 26 Sergey V Turchin 2022-01-10 10:57:02 MSK
Уже давно захакано в nvidia-install-driver.