Вопрос или проблема
Я пытаюсь создать пользовательский RPM ядра для CentOS 6.10. Обычно я могу собрать ядро с помощью rpmbuild -ba file.spec
, что действительно приводит к созданию ядра в данном случае, но оно собирается с отсутствующей зависимостью для kernel-firmware
, которую, как я думаю, также должно собирать этот SPEC файл.
В SPEC файле есть опция сборки --with firmware
, но это не предоставляет необходимую зависимость RPM.
rpmbuild -ba --with firmware kernel.spec
Как мне собрать эту зависимость RPM?
Вот точное сообщение об ошибке, когда я пытаюсь собрать:
rpm -ivh kernel-2.6.32-754.35.1.el6.local.i686.rpm
error: Failed dependencies:
kernel-firmware >= 2.6.32-754.35.1.el6.local is needed by kernel-2.6.32-754.35.1.el6.local.i686
Ответ или решение
Для сборки RPM пакета ядра для CentOS 6.10 с зависимостью от пакета kernel-firmware
, необходимо следовать нескольким последовательным шагам. В данном случае предполагается, что вы уже имеете доступ к исходным кодам ядра и к .spec
файлу соответствующей версии.
Шаги по сборке ядра с пакетом kernel-firmware
-
Проверка наличия необходимых пакетов:
Убедитесь, что у вас установлены все зависимости для сборки пакета, включаяrpm-build
,gcc
,make
и другие необходимые инструменты.sudo yum groupinstall "Development Tools" sudo yum install rpm-build rpmdevtools
-
Получение исходного кода ядра:
Скачайте исходный код ядра и его зависимости, включаяkernel-firmware
. -
Изменение SPEC файла:
В файле.spec
, который вы используете для сборки ядра, убедитесь, что секцияRequires
содержитkernel-firmware
. Обычно это делается путем добавления следующей строки в секциюRequires
:Requires: kernel-firmware >= 2.6.32-754.35.1.el6.local
-
Включение сборки прошивки:
Убедитесь, что ваши опции сборки включают поддержку прошивки:В самом начале
.spec
файла добавьте флаг:%define firmware 1
-
Запуск сборки:
Выполните команду сборки с указанной опцией:rpmbuild -ba --with firmware kernel.spec
Обратите внимание на правильность написания опции, в вашем вопросе опечатка
--with firmare
должна быть--with firmware
. -
Проверка и установка созданного RPM пакета:
После успешной сборки, проверьте наличие созданного RPM пакета. Обычно он будет находиться в директории~/rpmbuild/RPMS/x86_64/
(или аналогичной).Установите созданный пакет и проверьте наличие зависимости:
rpm -ivh ~/rpmbuild/RPMS/x86_64/kernel-2.6.32-754.35.1.el6.local.i686.rpm
Убедитесь, что пакет
kernel-firmware
доступен. Если он еще не установлен, вам нужно будет его установить:sudo yum install kernel-firmware
Заключение
Если вы все сделали правильно, ваш собранный RPM пакет должен корректно содержать зависимость для kernel-firmware
, и установка не должна выдавать ошибок о недостающих зависимостях. Если проблема все еще сохраняется, проверьте логи сборки и убедитесь в наличии всех необходимых файлов и конфигураций.