Пакеты Linux
Чтобы добавить необходимые модули к ядру Linux, программе установки требуются перечисленные ниже пакеты Linux.
- Пакет с заголовками или исходными кодами ядра. Версия пакета должна соответствовать версии ядра.
- Набор компиляторов GNU Compiler Collection (GCC). Версия GCC должна быть той же, с которой было скомпилировано ядро.
- Инструмент Make.
- Интерпретатор Perl.
- Библиотеки
libelf-dev
,libelf-devel
илиelfutils-libelf-devel
для сборки ядер не ниже 4.15 и настроены с параметром CONFIG_UNWINDER_ORC=y. Для некоторых дистрибутивов, например Fedora 28, их необходимо установить отдельно от заголовков ядра.
Имена этих пакетов зависят от используемого дистрибутива Linux.
В ОС Red Hat Enterprise Linux, CentOS и Fedora пакеты обычно устанавливаются программой установки. В других дистрибутивах вы должны сами установить пакеты, если они не установлены или это не те версии, которые требуются.
Установлены ли необходимые пакеты?
Чтобы проверить, установлены ли пакеты, сделайте следующее:
-
Выполните следующую команду, чтобы узнать версию ядра и необходимую версию GCC:
$ cat /proc/version
Эта команда возвращает примерно такие строки:
Linux version 2.6.35.6
иgcc version 4.5.1
-
Выполните следующие команды, чтобы узнать, установлен ли инструмент Make и компилятор GCC:
$ make -v
$ gcc -vДля
gcc
убедитесь, что команда возвращает ту же версию, что и в параметреверсия gcc
в шаге 1. Для инструментаmake
просто проверьте, что команда выполняется. -
Проверьте, установлена ли соответствующая версия пакетов для создания модулей ядра.
-
В Red Hat Enterprise Linux, CentOS и Fedora выполните следующую команду:
$ yum list installed | grep kernel-devel
-
В Ubuntu выполните следующие команды:
$ dpkg --get-selections | grep linux-headers
$ dpkg --get-selections | grep linux-image
В каждом из этих случаев убедитесь в том, что версии такие же, как в параметре
Linux version
в шаге 1. -
-
Чтобы выяснить, установлен ли интерпретатор Perl, выполните следующую команду:
$ perl --version
Если на экране отображаются сведения о версии Perl, это означает, что интерпретатор установлен.
-
В Red Hat Enterprise Linux, CentOS и Fedora выполните следующую команду, чтобы проверить, установлена ли библиотека
elfutils-libelf-devel
:$ yum list installed | grep elfutils-libelf-devel
Если на экране отображаются сведения о версии библиотеки, это означает, что библиотека установлена.
Установка пакетов из репозитория
В следующей таблице указано, как установить необходимые пакеты в различных дистрибутивах Linux.
Дистрибутив Linux | Имена пакетов | Как установить |
Red Hat Enterprise Linux |
kernel-devel
|
Программа установки загрузит и установит пакеты автоматически по вашей подписке на Red Hat. |
perl
|
Выполните следующую команду: $ yum install perl |
|
CentOS |
kernel-devel
|
Программа установки загрузит и установит пакеты автоматически. |
perl
|
Выполните следующую команду: $ yum install perl |
|
Ubuntu |
linux-headers
|
Выполните следующие команды: $ sudo apt-get update |
SUSE Linux |
kernel-source
|
Выполните следующие команды: $ sudo zypper install kernel-source |
Astra Linux |
Дополнительно для ядер версии 5.10 и новее: |
Выполните следующие команды: $ sudo apt install rpm Если используется Astra SE, пакеты необходимо установить с диска разработчика для текущей версии Astra. |
ALT Linux |
kernel-source
|
Выполните следующие команды: $ su - Если версия пакетов в репозитории новее версии текущего ядра, необходимо также обновить ядро: $ su - И перезагрузите систему. |
РЕД ОС 7 |
kernel-lt-devel
|
Выполните следующие команды: $ sudo yum install kernel-lt-devel Желательно также полностью обновить систему: $ sudo yum update И затем перезагрузить ее. |
Пакеты будут загружены из репозитория дистрибутива и установлены.
Для других дистрибутивов Linux обратитесь к документации по дистрибутиву, чтобы выяснить точные имена необходимых пакетов и способы их установки.
Установка пакетов вручную
Возможно, необходимо будет установить пакеты вручную, если:
- У машины нет активной подписки на Red Hat или подключения к Интернету.
- Программе установки не удается найти версию
kernel-devel
илиgcc
, соответствующую версии ядра. Если доступная версияkernel-devel
новее версии ядра, необходимо обновить ядро или установить соответствующую версиюkernel-devel
вручную. - Необходимые пакеты имеются в локальной сети, и вы не хотите тратить время на автоматический поиск и загрузку.
Загрузите пакеты из своей локальной сети или с веб-сайта надежного третьего поставщика и установите, как описано ниже.
-
В Red Hat Enterprise Linux, CentOS и Fedora выполните следующую команду как привилегированный пользователь:
$ rpm -ivh PACKAGE_FILE1 PACKAGE_FILE2 PACKAGE_FILE3
-
В Ubuntu выполните следующую команду:
$ sudo dpkg -i PACKAGE_FILE1 PACKAGE_FILE2 PACKAGE_FILE3
Пример: Установка пакетов вручную в Fedora 14
Для установки необходимых пакетов в Fedora 14 на 32-разрядной машине выполните следующие шаги.
-
Выполните следующую команду, чтобы узнать версию ядра и необходимую версию GCC:
$ cat /proc/version
Выходные данные этой команды включают следующее:
Linux version 2.6.35.6-45.fc14.i686
gcc version 4.5.1 -
Получите пакеты
kernel-devel
иgcc
, которые соответствуют этой версии ядра:kernel-devel-2.6.35.6-45.fc14.i686.rpm
gcc-4.5.1-4.fc14.i686.rpm -
Получите пакет
make
для Fedora 14:make-3.82-3.fc14.i686
-
Установите пакеты, выполнив следующую команду как привилегированный пользователь:
$ rpm -ivh kernel-devel-2.6.35.6-45.fc14.i686.rpm
$ rpm -ivh gcc-4.5.1.fc14.i686.rpm
$ rpm -ivh make-3.82-3.fc14.i686Все эти пакеты можно указать в одной команде
rpm
. Установка этих пакетов может потребовать установки дополнительных пакетов для разрешения зависимостей.