本文主要是介绍Linux如何安装kernel-debuginfo包以支持获取未压缩内核映像vmlinux?(yum | wget、rpm -ivh),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基础信息
- 本文以AnolisOS为例子,Centos和Ubuntu类似,核心都是安装kernel-debuginfo和kernel-debuginfo-common的rpm包 并且需要和内核版本子版本完全一致(本质是使用同一份代码编译的)
- 假设系统安装的是8.6版本:比如https://mirrors.openanolis.cn/anolis/8.6/isos/GA/x86_64/ 下面的AnolisOS-8.6-x86_64-dvd.iso
- 一般kernel-debuginfo可以通过 yum install -y kernel-debuginfo进行安装
- 如果不行就需要自行下载rpm包,然后安装。
- 那么对应的kernel-debuginfo可以在安装包路径进行寻找,比如8.6对应的就在镜像网站的地址:https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/ 其实就是8.6下面相对路径的BaseOS找到对应架构的debug包里面
找到对应的kernel-debuginfo文件
https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/
- 根据uname查看系统的内核详细版本包括子版本,比如这里4.18.0-372.9.1
- 根据详细版本,在网页所有2个包
一个是以kernel-debuginfo开头的
一个是以kernel-debuginfo-common的
复制链接地址,然后下一步使用wget下载到本地
下载rpm包与安装
# 下载rpm包
wget https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/kernel-debuginfo-4.18.0-372.9.1.an8.x86_64.rpm
wget https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/kernel-debuginfo-common-x86_64-4.18.0-372.9.1.an8.x86_64.rpm# 安装rpm包
rpm -ivh *.rpm
实操
下载:
安装:
确认是否正确安装:
在/usr/lib/debug/lib/modules/4.18.0-372.9.1.an8.x86_64/ 目录下查看是否有vmlinux文件,因为kernel-debuginfo有一个非常重要的功能就是提供vmlinux的内核二进制文件,这也是经常需要安装kernel-debuginfo的核心需求
综述
- 熟悉rpm yum原理,以及kernel-debuginfo的依赖包情况
- 虽然yum无法使用,使用底层分析逻辑,下载rpm包,并且找到对应文件进行安装
- 这里最难的是找到对应rpm包,这一点可以站在设计者角度,找安装系统的路径,并且多看看,想想他们会怎么维护,应该就能找到对应的debug包
- 吐槽:目前遇到很多系统包括Centos、Ubuntu、AnolisOS对于安装kernel-debuginfo都不友好
- 确认kernel-debuginfo是否成功安装的一个方法:/usr/lib/debug/lib下面会根据安装的kernel-debuginfo的版本创建目录,站在这个kernel-debuinfo设计者角度看,他也需要考虑多个版本的问题,那么就是创建多个版本目录,并且放到/usr/lib/debug下面,并且是作为一个库的形式提供。
- 尝试去理解kernel-debuginfo对于成功安装他非常重要
参考
https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/
这篇关于Linux如何安装kernel-debuginfo包以支持获取未压缩内核映像vmlinux?(yum | wget、rpm -ivh)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!