Linux如何安装kernel-debuginfo包以支持获取未压缩内核映像vmlinux?(yum | wget、rpm -ivh)

本文主要是介绍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包里面
mirrors anolis
8.6
isos 下载镜像
GA表示 普遍可用稳定版
isos/GA/x86_64
AnolisOS-8.6-x86_64-dvd.iso
全量安装包括支持GNU模式
AnolisOS-8.6-x86_64-minimal.iso
进包括基础安装主要服务器命令行模式
AnolisOS-8.6-x86_64-boot.iso
从网络安装
BaseOS 包括源码独立包等
x86_64/debug/Packages/安装包
8.7
...

找到对应的kernel-debuginfo文件

https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/

  1. 根据uname查看系统的内核详细版本包括子版本,比如这里4.18.0-372.9.1
    在这里插入图片描述
  2. 根据详细版本,在网页所有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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901979

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登