Пакеты 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 gcc make elfutils-libelf-devel |
Программа установки загрузит и установит пакеты автоматически по вашей подписке на Red Hat. |
perl |
Выполните следующую команду: yum install perl
|
|
CentOS Fedora |
kernel-devel gcc make elfutils-libelf-devel |
Программа установки загрузит и установит пакеты автоматически. |
perl |
Выполните следующую команду: yum install perl
|
|
Ubuntu Debian |
linux-headers linux-image gcc make perl |
Выполните следующие команды: sudo apt-get update
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install linux-image-$(uname -r)
sudo apt-get install gcc-<package version>
sudo apt-get install make
sudo apt-get install perl
|
SUSE Linux OpenSUSE |
kernel-source gcc make perl |
Выполните следующие команды: sudo zypper install kernel-source
sudo zypper install gcc
sudo zypper install make
sudo zypper install perl
|
Пакеты будут загружены из репозитория дистрибутива и установлены.
Для других дистрибутивов Linux обратитесь к документации по дистрибутиву, чтобы выяснить точные имена необходимых пакетов и способы их установки.
Установка пакетов вручную
Возможно, необходимо будет установить пакеты вручную, если:
У машины нет активной подписки на Red Hat или подключения к Интернету.
Программе установки не удается найти версию kernel-devel или gcc, соответствующую версии ядра. Если доступная версия kernel-devel новее версии ядра, необходимо обновить ядро или установить соответствующую версию kernel-devel вручную.
Необходимые пакеты имеются в локальной сети, и вы не хотите тратить время на автоматический поиск и загрузку.
Загрузите пакеты из своей локальной сети или с веб-сайта надежного третьего поставщика и установите, как описано ниже.
В Red Hat Enterprise Linux, CentOS и Fedora выполните следующую команду как привилегированный пользователь:
rpm -ivh ФАЙЛ_ПАКЕТА1 ФАЙЛ_ПАКЕТА2 ФАЙЛ_ПАКЕТА3
В Ubuntu выполните следующую команду:
sudo dpkg -i ФАЙЛ_ПАКЕТА1 ФАЙЛ_ПАКЕТА2 ФАЙЛ_ПАКЕТА3