Linux如何查看内核版本并安装内核头文件linux-headers-generic

于今腐草无萤火,终古垂杨有暮鸦。这篇文章主要讲述Linux如何查看内核版本并安装内核头文件linux-headers-generic相关的知识,希望能为你提供帮助。


linux内核的头文件一般是这样的格式:linux-headers-5.13.0-01-generic,当然根据你的查询方式不同,写法各异。
一般的检查指令下面我列举一些快速查询linux的内核版本信息的指令
~$ uname -srm
Linux 5.13.0-35-generic x86_64
~$ uname -r
5.13.0-35-generic
~$ echo linux-headers-$(uname -r)
linux-headers-5.13.0-35-generic


~$ hostnamectl
Static hostname: FX506HCB
Icon name: computer-laptop
Chassis: laptop
Machine ID: a1e5f77b6e384b5c934bfb1d5bfedfaa
Boot ID: acd777ad7ef940a5bc02a0a09d1df9e9
Operating System: Ubuntu 20.04.3 LTS
Kernel: Linux 5.13.0-35-generic
Architecture: x86-64
~$ hostnamectl | grep -i kernel
Kernel: Linux 5.13.0-35-generic
~$ cat /proc/version
Linux version 5.13.0-35-generic (buildd@ubuntu) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #40~20.04.1-Ubuntu SMP Mon Mar 7 09:18:32 UTC 2022
检查是否安装~$ dpkg-query -s linux-headers-$(uname -r)
Package: linux-headers-5.13.0-35-generic
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 23974
Maintainer: Ubuntu Kernel Team < kernel-team@lists.ubuntu.com>
Architecture: amd64
Source: linux-hwe-5.13
Version: 5.13.0-35.40~20.04.1
Provides: linux-headers, linux-headers-3.0
Depends: linux-hwe-5.13-headers-5.13.0-35, libc6 (> = 2.22), libelf1 (> = 0.142), libssl1.1 (> = 1.1.0), zlib1g (> = 1:1.2.3.3)
Description: Linux kernel headers for version 5.13.0 on 64 bit x86 SMP
This package provides kernel header files for version 5.13.0 on
64 bit x86 SMP. .
This is for sites that want the latest kernel headers.Please read
/usr/share/doc/linux-headers-5.13.0-35/debian.README.gz for details.


注意到dpkg-query不能查通配符,如下,
~$ dpkg-query -s linux-headers-*
dpkg-query: 错误: --status 需要一个有效的软件包名。而 linux-headers-* 不是: 在说明符 linux-headers-* 中包含非法软件包名: 不允许出现字符 ‘*’ (只能使用字母、数字和 ‘-+._’)
~$ dpkg-query -s linux-headers-generic
dpkg-query: 系统没有安装软件包 linux-headers-generic,因而没有相关的信息
使用 dpkg --info (= dpkg-deb --info) 来检测打包好的文件,
安装内核头文件
~$ sudo apt-get install build-essential//install build-essential(optional)
~$ sudo apt-get update//install linux-headers
~$ sudo apt-get install linux-headers-$(uname -r)
或者,
~$ sudo apt-get update & & sudo apt-get install build-essential linux-headers-$(uname -r)
是否要升级安装
值得说明的是,我发现
sudo apt install linux-headers-generic

sudo apt-get install linux-headers-$(uname -r)
会安装不同版本的头文件,如下,
~$ sudo apt install linux-headers-generic
...
将会同时安装下列软件:
linux-headers-5.4.0-104 linux-headers-5.4.0-104-generic
下列【新】软件包将被安装:
linux-headers-5.4.0-104 linux-headers-5.4.0-104-generic linux-headers-generic
...
您希望继续执行吗? [Y/n] n
~$ sudo apt install linux-headers-$(uname -r)
...
linux-headers-5.13.0-35-generic 已经是最新版 (5.13.0-35.40~20.04.1)。
linux-headers-5.13.0-35-generic 已设置为手动安装。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
这两个指令的不同之处在于,下面的指令



sudo apt install linux-headers-generic
sudo apt install --reinstall linux-headers-generic


会自动安装并升级你的内核头文件,而


apt install linux-headers-$(uname -r)


这个指令不会升级你的头文件。
本文结束
【Linux如何查看内核版本并安装内核头文件linux-headers-generic】


    推荐阅读