Пакеты 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 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 |
SUSE Linux OpenSUSE |
kernel-source |
sudo zypper install kernel-source |
Пакеты будут загружены из репозитория дистрибутива и установлены.
Для других дистрибутивов 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
Пример: Установка пакетов вручную в 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
. Установка этих пакетов может потребовать установки дополнительных пакетов для разрешения зависимостей.