Linux 官网突发变更:不再提供 Release Tar 包,开发者该怎么办?
最近,Linux 内核圈子里发生了一件不大不小的“地震”:大家熟悉的 kernel.org 官网,悄咪咪地删除了所有版本的 release tar 包(.tar.xz, .tar.gz 等)。
如果你习惯像下载软件一样,直接去内核官网点个链接就下源码,那现在打开页面可能会愣住——链接没了。这对于很多老司机和刚入门的运维朋友来说,无疑增加了点使用门槛。今天我们就来聊聊这到底是怎么回事,以及对我们后续的“玩机”和开发工作有什么影响。
kernel.org 官网下载页面现状,旧版 Tar 包链接已不再直接提供
为什么突然删包?
官方这次“动刀”,核心原因其实是为了统一代码管理流程,降低维护成本。
- 维护压力大:每一次内核发布,官方都需要同时维护 Git 仓库和 Tar 包。Tar 包本质上只是 Git 仓库某一刻代码的“快照”,两者容易出现不一致的情况(比如有人改了 Tar 包但没推到 Git,虽然罕见,但存在风险)。
- 安全性考量:直接从 Git 仓库获取代码,可以通过签名(Tag)验证完整的提交历史,安全性比单独分发一个 Tar 包要高得多。
- 顺应开源趋势:现在的开源项目,主推的都是 Git 工作流。删掉 Tar 包,其实是倒逼大家去适应更现代化的代码获取方式。
对我们有什么实际影响?
对于绝大多数“搬砖”党来说,影响其实不大,甚至可以忽略不计;但对于特定场景的朋友,可能需要改改习惯了。
- 普通用户/小白:基本无感。我们平时用的都是发行版(如 Ubuntu、CentOS、Debian)自带或仓库里的内核,没人会去官网上手搓源码。
- 服务器运维:如果你有脚本直接
wgetkernel.org 的某个链接来升级内核,那恭喜你,脚本要报错了。你需要修改脚本,改用发行版源或者 Git 方式。 - 内核开发者/极客:这是受影响最大的一群人。以后获取“纯净版”源码,必须通过 Git 命令或者特定的镜像站了。
以后怎么下载内核源码?
既然官方不提供 Tar 包了,我们该怎么获取代码?别慌,这里有几个实用的替代方案。
使用 Git 命令克隆 Linux 内核仓库的操作示意图
方案一:使用 Git 克隆(推荐,最正宗)
这是官方最推荐的方式,也是以后的主流。
1. 安装 Git 确保你的系统里有 Git 工具:
# Debian/Ubuntu
sudo apt install git
# CentOS/RHEL
sudo yum install git
2. 克隆仓库 Linus Torvalds 的主仓库在 kernel.org 上,网速可能感人。我们可以先克隆,然后切到对应的版本 Tag。
# 克隆主仓库(可能比较慢,耐心等)
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
# 查看所有版本标签(Tag)
git tag | grep "v6.6" # 比如找 6.6 系列的版本
# 切换到你想要的版本,比如 v6.6.1
git checkout v6.6.1
3. 验证签名(安全党必备) 如果你担心代码被人动过手脚,可以验证官方签名:
git verify-tag v6.6.1
方案二:使用 GitHub 镜像(速度快,国内推荐)
kernel.org 的 Git 协议在国内访问经常抽风,这时候 GitHub 镜像就是救星了。GitHub 上有官方的同步仓库,内容是一模一样的。
# 克隆 GitHub 上的镜像
git clone https://github.com/torvalds/linux.git
cd linux
# 同样使用 git tag 和 git checkout 切换版本
git checkout v6.6.1
这个方式对于国内用户来说,体验通常比直连 kernel.org 要好很多。
方案三:通过 Snapshots 获取(类似 Tar 包)
如果你真的很讨厌 Git 操作,就想找个压缩包,其实还是有曲线救国的方法。某些镜像站或者第三方工具提供了基于 Git Tag 自动生成的 Snapshot(快照),本质上和以前的 Tar 包一样。
你可以尝试访问一些第三方内核镜像站,或者使用 Git 命令直接导出压缩包:
# 不克隆整个历史,只导出特定版本的压缩包(省空间)
git archive --remote=git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git \
--output=v6.6.1.tar.xz \
--prefix=linux- v6.6.1
(注:如果远程 Git 协议不通,请替换为 GitHub 地址)
方案四:依赖发行版源(最稳妥)
如果你只是为了获取某个特定版本的内核来编译模块,而不是为了研究内核源码本身,其实没必要非去官网。
大多数 Linux 发行版都提供了内核源码包,你可以直接用包管理器下载,这样通常还带上了该发行版的一些补丁,兼容性更好。
# Ubuntu/Debian 下载源码
apt source linux-image-$(uname -r)
# CentOS/RHEL 通常在 src.rpm 里
总结
kernel.org 移除 Tar 包,虽然短期内让人觉得不适应,但这确实是开源项目规范化管理的一步。对于咱们这种喜欢折腾技术的群体来说,掌握 Git Clone 基本上成了必修课。
建议大家以后尽量养成使用 GitHub 镜像或者官方 Git 仓库的习惯,不仅资源更快,而且还能顺带练习一下 Git 命令,何乐而不为呢?

评论已关闭