Ubuntu 22.04 源码下载的几种方法

news/2024/9/18 21:33:27 标签: ubuntu

1、查询当前系统内核版本

root@ubuntu22:~# uname -r
5.15.0-118-generic

2、查询本地软件包数据库中的内核源码信息

root@ubuntu22:~# apt search linux-source
Sorting... Done
Full Text Search... Done
linux-source/jammy-updates,jammy-security,now 5.15.0.119.119 all [installed]
  Linux kernel source with Ubuntu patches

linux-source-5.15.0/jammy-updates,jammy-security,now 5.15.0-119.129 all [installed,automatic]
  Linux kernel source for version 5.15.0 with Ubuntu patches

linux-source-5.19.0/jammy-updates,jammy-security 5.19.0-50.50 all
  Linux kernel source for version 5.19.0 with Ubuntu patches

linux-source-6.2.0/jammy-updates,jammy-security 6.2.0-39.40~22.04.1 all
  Linux kernel source for version 6.2.0 with Ubuntu patches

linux-source-6.5.0/jammy-updates 6.5.0-45.45~22.04.1 all
  Linux kernel source for version 6.5.0 with Ubuntu patches

3、apt source 与 apt install

3.1 apt source

将内核源码下载到当前目录并自动解压,提供了更完整的源代码包,包括 Ubuntu 特定的修改。
(1)apt source linux
安装仓库中最新可用的内核源代码版本
linux总是可用的,指向最新通用版本
(2)apt source linux-image-$(uname -r)
获取与当前运行的内核版本完全匹配的源代码
并非所有版本在仓库中都有对应的 linux-image-$(uname -r)包

3.2 apt install

将内核源码下载到/usr/src目录,安装的是一个"原始"的源代码包,可能需要额外的步骤来应用 Ubuntu 特定的补丁。
(1)apt install linux-source
安装仓库中最新可用的内核源代码版本
linux-source 包总是可用的,指向最新版本
(2)apt install linux-source-<version>
安装指定版本的内核源代码
并非所有版本都有对应的 linux-source-<version> 包
5.15.0-118-generic,version=5.15.0,将下载 5.15 系列的通用源码。
如要精确匹配 5.15.0-118-generic 版本,需要额外下载 Ubuntu 特定的补丁。

4、apt下载源码

(1)apt source linux

root@ubuntu22:~# apt source linux
Reading package lists... Done
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
eed to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]                    
Fetched 206 MB in 49s (4,168 kB/s)                                                                                           
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gz

root@ubuntu22:~# ll
total 200708
drwxr-xr-x  3 root root      4096 Sep 13 06:32 ./
drwx------  6 root root      4096 Sep 13 06:23 ../
drwxr-xr-x 28 root root      4096 Sep 13 06:32 linux-5.15.0/
-rw-r--r--  1 root root  10533549 Aug 12 13:17 linux_5.15.0-121.131.diff.gz
-rw-r--r--  1 root root      7799 Aug 12 13:17 linux_5.15.0-121.131.dsc
-rw-r--r--  1 root root 194969557 Nov 18  2021 linux_5.15.0.orig.tar.gz

root@ubuntu22:~# cat linux-5.15.0/Makefile
...
VERSION = 5
PATCHLEVEL = 15
SUBLEVEL = 163
EXTRAVERSION =
NAME = Trick or Treat
...

(2)apt source linux-image-$(uname -r)

root@ubuntu22:~# apt source linux-image-$(uname -r)
Reading package lists... Done
Picking 'linux-signed' as source package instead of 'linux-image-5.15.0-118-generic'
Need to get 26.4 kB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (dsc) [2,370 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (tar) [24.1 kB]
Fetched 26.4 kB in 1s (51.3 kB/s)       
dpkg-source: info: extracting linux-signed in linux-signed-5.15.0
dpkg-source: info: unpacking linux-signed_5.15.0-121.131.tar.xz

root@ubuntu22:~# ll
total 40
drwxr-xr-x 3 root root  4096 Sep 13 06:49 ./
drwx------ 6 root root  4096 Sep 13 06:44 ../
drwxr-xr-x 3 root root  4096 May 27 13:50 linux-signed-5.15.0/
-rw-r--r-- 1 root root  2370 Aug 12 13:17 linux-signed_5.15.0-121.131.dsc
-rw-r--r-- 1 root root 24076 Aug 12 13:17 linux-signed_5.15.0-121.131.tar.xz

root@ubuntu22:~# ll linux-signed-5.15.0/
total 24
drwxr-xr-x 3 root root 4096 May 27 13:50 ./
drwxr-xr-x 3 root root 4096 Sep 13 06:49 ../
drwxr-xr-x 6 root root 4096 Aug  9 08:16 debian/
-rwxr-xr-x 1 root root 6988 May 23 15:13 download-signed*
-rwxr-xr-x 1 root root  450 May 23 15:13 download-unsigned*

root@ubuntu22:~# ll linux-signed-5.15.0/debian/
total 180
drwxr-xr-x 6 root root   4096 Aug  9 08:16 ./
drwxr-xr-x 3 root root   4096 May 27 13:50 ../
drwxr-xr-x 3 root root   4096 Aug  1 13:01 ancillary/
-rw-r--r-- 1 root root 121300 Aug  9 08:16 changelog
-rw-r--r-- 1 root root      2 Apr 25 14:35 compat
-rw-r--r-- 1 root root   1949 Aug  9 08:16 control
-rw-r--r-- 1 root root    277 Aug  6 13:11 control.stub
-rw-r--r-- 1 root root   1456 Nov 14  2023 copyright
-rw-r--r-- 1 root root    163 Aug  6 13:11 package.config
-rwxr-xr-x 1 root root   5693 Aug  6 13:11 rules*
drwxr-xr-x 3 root root   4096 Aug  6 13:11 scripts/
-rw-r--r-- 1 root root     12 Aug  6 13:11 signed-version
drwxr-xr-x 2 root root   4096 Nov 14  2023 source/
drwxr-xr-x 2 root root   4096 Aug  6 13:11 templates/
-rw-r--r-- 1 root root     21 Aug  9 07:41 tracking-bug

(3)apt source linux-image-unsigned-$(uname -r)

root@ubuntu22:~# apt source linux-image-unsigned-$(uname -r)
Reading package lists... Done
Picking 'linux' as source package instead of 'linux-image-unsigned-5.15.0-118-generic'
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]
Fetched 206 MB in 2min 21s (1,455 kB/s)                                                                                      
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gz

(4)apt install linux-source

# cd /usr/src

# ll
total 16
drwxr-xr-x  4 root root 4096 Aug 20 08:12 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/

# apt install linux-source
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  linux-source-5.15.0
Suggested packages:
  libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:
  linux-source linux-source-5.15.0
0 upgraded, 2 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source all 5.15.0.121.121 [2,310 B]          
Fetched 153 MB in 1min 23s (1,834 kB/s)

# ll
total 20
drwxr-xr-x  5 root root 4096 Sep 13 03:45 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x  4 root root 4096 Sep 13 03:45 linux-source-5.15.0/
lrwxrwxrwx  1 root root   47 Aug  9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2

# ll linux-source-5.15.0
total 149944
drwxr-xr-x  4 root root      4096 Sep 13 03:45 ./
drwxr-xr-x  5 root root      4096 Sep 13 03:45 ../
drwxr-xr-x 15 root root      4096 Sep 13 03:45 debian/
drwxr-xr-x  7 root root      4096 Sep 13 03:45 debian.master/
-rw-r--r--  1 root root 153523863 Aug  9 08:15 linux-source-5.15.0.tar.bz2

(5)apt install linux-source-5.15.0

# apt install linux-source-5.15.0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:
  linux-source-5.15.0
0 upgraded, 1 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Fetched 153 MB in 1min 4s (2,401 kB/s) 

# ll
total 20
drwxr-xr-x  5 root root 4096 Sep 13 07:29 ./
drwxr-xr-x 14 root root 4096 Aug  9  2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x  7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x  4 root root 4096 Sep 13 07:29 linux-source-5.15.0/
lrwxrwxrwx  1 root root   47 Aug  9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2

c# ll linux-source-5.15.0
total 149944
drwxr-xr-x  4 root root      4096 Sep 13 07:29 ./
drwxr-xr-x  5 root root      4096 Sep 13 07:29 ../
drwxr-xr-x 15 root root      4096 Sep 13 07:29 debian/
drwxr-xr-x  7 root root      4096 Sep 13 07:29 debian.master/
-rw-r--r--  1 root root 153523863 Aug  9 08:15 linux-source-5.15.0.tar.bz2

5、launchpad

Ubuntu 官方使用的代码托管和协作平台,可以浏览下载 Ubuntu 内核源码
https://code.launchpad.net/ubuntu/+source/linux

ubuntu22.04
git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy

git tag
最接近5.15.0-118-generic的版本为 Ubuntu-5.15.0-118.128

git checkout Ubuntu-5.15.0-118.128

只clone指定标签的最新代码(无其它标签)(有没有single-branch参数结果都一样)
git clone --branch Ubuntu-5.15.0-118.128 --depth 1 --single-branch https://git.launchpa
d.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy

6、https://kernel.ubuntu.com/git/

版本列表链接到code.launchpad.net


http://www.niftyadmin.cn/n/5659583.html

相关文章

nacos和eureka的区别详解

Nacos 和 Eureka 都是服务发现和注册中心的解决方案&#xff0c;但它们在功能、设计和使用场景上有所不同。以下是它们的详细区别&#xff1a; 1. 基本概念 Eureka&#xff1a;是由 Netflix 开发的服务发现工具。它主要用于 Java 微服务架构中的服务注册与发现。Eureka 通过 R…

PyQt---不同版本介绍说明及更新过程

PyQt 是一个用于 Python 的跨平台 GUI 工具包&#xff0c;它是 Qt 库的 Python 绑定。PyQt 提供了一整套丰富的 GUI 控件和功能&#xff0c;可以用来开发桌面应用程序。PyQt 由 Riverbank Computing 开发&#xff0c;并且有多个版本&#xff0c;分别对应于不同版本的 Qt 库和 P…

湖仓一体-Paimon篇-简介

什么是Paimon&#xff1f; 2021年末&#xff0c;Flink官方提出打造一个全新的存储 Flink Table Store&#xff0c;一个 Flink 完全内置的存储。 为了让 Flink Table Store 能够有更大的发展&#xff0c;Flink PMC经过讨论决定将其捐赠Apache进行独立孵化。 2023 年 3 月 12 日…

HTML添加文字

一、创建HTML5文档基本标签 <!DOCTYPE html> //定义文档类型 <html> //定义HTML文档<head> //定义关于文档的信息<title>文档标题</title> //定义文档的标题<meta charset"utf-8" /> //定义文档的字符编码</head&…

Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)

Uniapp Vue3 Vite Uview Pinia 实现购物车功能&#xff08;最新附源码保姆级&#xff09; 1、效果展示2、安装 Pinia 和 Uview3、配置 Pinia4、页面展示 1、效果展示 2、安装 Pinia 和 Uview 官网 https://pinia.vuejs.org/zh/getting-started.html安装命令 cnpm install pi…

接入 API 接口之前,你必须清楚的那些事儿

在当今技术驱动的商业环境中&#xff0c;API&#xff08;Application Programming Interface&#xff09;接口的接入为企业和开发者提供了整合外部资源、扩展功能以及提升用户体验的强大手段。然而&#xff0c;在决定接入一个 API 接口之前&#xff0c;有一系列关键的事情需要清…

GEE:连续变化检测与分类(Continuous Change Detection and Classification, CCDC)教程

连续变化检测与分类&#xff08;Continuous Change Detection and Classification, CCDC&#xff09;是一种土地变化监测算法&#xff0c;旨在对卫星数据的时间序列进行操作&#xff0c;特别是Landsat数据。CCDC包括两个部分&#xff0c;其一是变化检测算法&#xff08;Change …

springboot mybatis 字典枚举转换实现

本章教程,记录在springboot项目中mybatis的枚举转换应用。 比如:性别字段,在数据库中存的是0(女),1(男) 查询的时候,需要显示男或女,二不是0或1。 一、相关文件 User 实体类中,存在一个SexEnums枚举类型。 package com.ds.model;import com.