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,请确保此命令返回的版本与第 1 步中的 gcc version 相同。对于 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
无论是哪一种情况,都需要确保程序包版本与第 1 步中的 Linux version 相同。
- 在 Red Hat Enterprise Linux、CentOS 及 Fedora 中,运行以下命令:
- 运行以下命令以检查是否安装了 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 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 - 获取适用于 Fedora 14 的 make 程序包:
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您可以在单个 rpmrpm 命令中指定所有这些程序包。安装这些程序包中的任一程序包时都可能需要安装其它程序包来解析从属关系。