Пакеты 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 пакеты обычно устанавливаются программой установки. В других дистрибутивах вы должны сами установить пакеты, если они не установлены или это не те версии, которые требуются.

Установлены ли необходимые пакеты?

Чтобы проверить, установлены ли пакеты, сделайте следующее:

  1. Выполните следующую команду, чтобы узнать версию ядра и необходимую версию GCC:

    cat /proc/version

    Эта команда возвращает примерно такие строки: Linux version 2.6.35.6 и gcc version 4.5.1

  2. Выполните следующую команду, чтобы узнать, установлен ли инструмент Make и компилятор GCC:

    make -v
    gcc -v

    Для gcc убедитесь, что команда возвращает ту же версию, что и в параметре версия gcc в шаге 1. Для инструмента make просто проверьте, что команда выполняется.

  3. Проверьте, установлена ли соответствующая версия пакетов для создания модулей ядра.

    • В 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.

  4. Чтобы выяснить, установлен ли интерпретатор Perl, выполните следующую команду:

    perl --version

    Если на экране отображаются сведения о версии Perl, это означает, что интерпретатор установлен.

  5. В 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

Пример: Установка пакетов вручную в Fedora 14

Для установки необходимых пакетов в Fedora 14 на 32-разрядной машине выполните следующие шаги.

  1. Выполните следующую команду, чтобы узнать версию ядра и необходимую версию GCC:

    cat /proc/version

    Выходные данные этой команды включают следующее:

    Linux version 2.6.35.6-45.fc14.i686
    gcc version 4.5.1
  2. Получите пакеты kernel-devel и gcc, которые соответствуют этой версии ядра:

    kernel-devel-2.6.35.6-45.fc14.i686.rpm
    gcc-4.5.1-4.fc14.i686.rpm
  3. Получите пакет make для Fedora 14:

    make-3.82-3.fc14.i686
  4. Установите пакеты, выполнив следующую команду как привилегированный пользователь:

    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. Установка этих пакетов может потребовать установки дополнительных пакетов для разрешения зависимостей.