当前位置:网站首页>Red Hat安装内核头文件

Red Hat安装内核头文件

2022-07-07 00:25:00 小立爱学习


前言

Red Hat版本:
在这里插入图片描述

一、The Linux kernel RPM

1.1 rpm

rpm - RPM Package Manager

rpm 是一个功能强大的软件包管理器,可用于build, install, query, verify, update, and erase单个软件包。 一个包由文件存档和用于安装和删除存档文件的metadata组成。 metadata包括helper scripts、 file attributes和关于包的描述信息。

RPM package 是包含其他文件及其元数据(有关系统所需文件的信息)的文件。
具体来说,RPM 包由 cpio 归档文件组成:
cpio 归档文件包含:
(1)Files
(2)RPM header (package metadata)
rpm 包管理器使用此metadata来确定依赖关系、安装文件的位置以及其他信息。

Types of RPM packages:有两种类型的 RPM 包。
两种类型共享文件,格式和工具,但有不同的内容和服务于不同的目的:
Binary RPM(binary packages): 包含从源代码和补丁构建的二进制文件。
Source RPM(SRPM,source packages):SRPM 包含源代码和 SPEC 文件,该文件描述了如何将源代码构建为二进制 RPM。 可选地,源代码的补丁也包括在内。

 QUERY OPTIONS
       The general form of an rpm query command is
       rpm {
    -q|--query} [select-options] [query-options]

-a, --all
		Query all installed packages.

1.2 安装内核头文件

(1)
在这里插入图片描述
编译一个最简单的Hello world模块,编译失败:
在这里插入图片描述
在这里插入图片描述
Red Hat 头文件在/usr/src/kernels目录下,/usr/src/kernels目录下没有内核头:
在这里插入图片描述

内核头内核头文件由kernel-devel软件包提供,安装kernel-devel软件包:
在这里插入图片描述
显示:

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

不能用yum…

(2)
在该网站下载内核头:
https://vault.centos.org/7.3.1611/os/x86_64/Packages/
在这里插入图片描述

 rpm -ivh *.rpm --nodeps --force
  -i, --info
      Display package information, including name, version, and description.  This uses the --queryformat if one was specified.
//显示包信息,包括名称、版本和描述。
      
 -v   Print verbose information - normally routine progress messages will be displayed.
//打印详细信息 - 通常会显示常规进度消息。

 -h, --hash
     Print 50 hash marks as the package archive is unpacked.  Use with -v|--verbose for a nicer display.
//解压缩包存档时打印 50 hash marks。 与 -v|--verbose 一起使用以获得更好的显示效果。


 --nodeps
     Don't do a dependency check before installing or upgrading a package.
//在安装或升级软件包之前不要进行依赖检查。

 --force
   	 Same as using --replacepkgs, --replacefiles, and --oldpackage.
	   --replacefiles
              Install the packages even if they replace files from other, already installed, packages.
              //安装这些包,即使它们替换了其他已安装包中的文件。

       --replacepkgs
              Install the packages even if some of them are already installed on this system.
              //即使其中一些已安装在此系统上,也要安装这些软件包。
              
       --oldpackage
              Allow an upgrade to replace a newer package with an older one.
              //允许升级以用较旧的软件包替换较新的软件包。


在这里插入图片描述
这样内核头安装完成:
在这里插入图片描述
由于我安装了三个包,在/boot/目录下也会生成该内核版本的内核镜像等等。。。
在这里插入图片描述

(3)
kernel: Linux内核软件包,包含单、多核和多处理器系统的内核,是任何Linux操作系统的核心,单处理器的系统仅需安装内核包。内核处理操作系统的基本功能: 内存分配、进程分配、设备输入和输出等。

kernel-devel:这个包提供了足以根据内核包构建模块的 kernel headers 和makefile文件(包括了kernel-headers)。

kernel-headers:包括指定 Linux 内核与用户空间库和程序之间的接口的 C 头文件。 头文件定义了构建大多数标准程序所需的结构和常量。

kernel-debug :包含许多对于内核debug诊断和调试的启用选项,只有当我们需要尝试收集额外的内核错误信息时才应该安装它。它是以牺牲性能为代价。

kernel-tools:包含用于操纵Linux内核和支持文档的工具。

(4)
只是编写内核模块安装kernel-headers-3.10.0-514.el7.x86_64就可以:

rpm -ivh kernel-headers-3.10.0-514.el7.x86_64.rpm --nodeps --force

安装kernel-devel软件包后,就可以在/usr/src/kernels/找到所有的内核头文件,就可以编写内核模块了。

(5)
可以将yum源换位centos源,这样直接就可以通过yum来安装内核头文件了。

yum install kernel-devel
yum install kernel-headers

总结

第一次用Red Hat(当然经常使用centos) ,以上就是Red Hat7.3安装内核头文件的步骤。

参考资料

https://access.redhat.com/documentation/enus/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/

原网站

版权声明
本文为[小立爱学习]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45030965/article/details/125643091