安装 selinux 标头

安装 selinux 标头

我正在尝试在 CentOS 5.6 上构建最新版本的 glibc(2.19),但遇到了一些问题

glibc 的文档说我至少需要 linux 内核头文件 2.6.19(即使这不是我正在使用的内核)。我尝试使用以下命令安装头文件

make headers_install INSTALL_HDR_PATH=/root/kernel/headers/ 

这个命令完成时没有任何错误,但是当我在配置后构建 glibc 时

/root/glibc/glibc-2.19-source/configure --prefix=/root/glibc/glibc-2.19/ --enable-kernel=2.6.18 --with-headers=/root/kernel/headers/include
make -j 12

make 遇到错误

#include <selinux/selinux.h> selinux/selinux.h: no such file or directory

我认为 selinux 标头应该位于 /root/kernel/headers/include 中,因为我在 wikipedia 上读到:

它于 2003 年 8 月 8 日从 2.6 版开始被集成到 Linux 内核主线中

我查看了 /root/kernel/header/include,没有名为 selinux 的文件夹

我的问题是:selinux 标头是否应与其余内核标头一起安装,如果是,我应该如何安装它们?

我使用的是 gcc 4.9.0 和 binutils 2.24。我当前的 glibc 版本是 2.5。我的内核版本是 2.6.18

请注意,我不愿意接受太多的停机时间,也不想更改活动内核版本或完全替换我当前的 glibc。

答案1

您可以轻松找出哪个包提供了该特定文件:

$ yum provides */selinux.h

我身边没有 CentOS 5.9 可以尝试,但最有可能的结果是kernel-devellibselinux-devel包。

您应该始终使用与您正在使用的内核相匹配的内核头。

答案2

编译时systemd我遇到了错误

In file included from ../src/shared/env-file-label.c:7:
../src/shared/selinux-util.h:13:10: fatal error: selinux/selinux.h: No such file or directory
   13 | #include <selinux/selinux.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

libselinux-dev适用于 Ubuntu 22 的软件包

$ apt install libselinux-dev

相关内容