如何下载旧的不受支持的软件包,比如内核头文件?

我正在使用现在不再支持的Jaunty版本。然而,我也在运行一个较旧的不再支持的内核,我希望对其进行编程。
我正在尝试在2.6.21内核中创建新的系统调用,其中一个新的系统调用使用了'sys_write'函数,但是为了使用这个函数,我意识到我必须根据2.6.21版本安装内核头文件。
我尝试过"apt-get install linux-headers-'uname -r'"和"apt-cache search linux-headers-$(uname -r)",但是我找不到任何东西。
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/syscalls.h>
#include <linux/fcntl.h>
#include <asm/uaccess.h>

此外,上述的头文件就是我想要的。
对于目前不再支持且不在当前存储库中的内容,我该如何获取内核头文件呢?

你用的是Ubuntu Feisty吗?这个版本已经很久没有得到支持了,从这里看起来,它似乎已经不在Ubuntu的存档中了。为什么你还在使用这么旧的Ubuntu版本呢?http://archive.ubuntu.com/ubuntu/dists/ - fossfreedom
不,我正在使用Ubuntu Jaunty :) - KayKay
2个回答

我认为在Ubuntu Feisty(7.04)上使用了内核2.6.21。

根据您的评论,您说您正在使用Ubuntu Jaunty,这很奇怪,因为Jaunty的内核版本是2.6.28。

Feisty和Jaunty都已不再受支持,您将无法通过“sudo apt-get”方法安装任何软件包,如头文件。

强烈建议您将您的安装替换为至少版本10.04。

Jaunty和Feisty都不再在官方Ubuntu存档中。

但是,所有Ubuntu发布的原始软件包信息可以在此处找到。

要找到安装的原始.deb软件包需要一些侦探工作。

我将以搜索2.6.28 Jaunty Linux头文件为例开始。

Linux头文件存在于主要软件仓库中。因此首先下载主要软件仓库的源代码。

你需要提取Sources文件。
在你喜欢的编辑器中查看该文件。
你要找的是linux-headers二进制文件 - 参见此屏幕截图 enter image description here 你会看到我已经划线标出了linux-headers - 你会看到软件包名称和需要找到该软件包的位置
然后将浏览器指向要找到该软件包的文件夹的开头。

http://archive.ubuntu.com/ubuntu/

导航到该软件包名称 - 在这种情况下 pool/main/l/linux
在该文件夹中,您会注意到每个版本的所有原始deb文件。因此,对于Jaunty,您应该寻找以linux-headers-2.6.28开头的文件。
现在,您将看到所有相关文件 - 根据您的架构加载deb文件(64位以amd64.deb结尾,32位以i386.deb结尾),以及以"all.deb"结尾的头文件。
对于Feisty软件包,执行与上述类似的操作 - 但这次从Feisty分发的Sources文件开始。

谢谢回复,我使用2.6.21内核版本的原因是因为我在Jaunty上安装了旧版本。 - KayKay
你的意思是说我可以通过下载源代码在2.6.21版本上安装头文件吗? - KayKay
在http://archive.ubuntu.com/ubuntu/dists/jaunty/main/source/上有很多软件包,我需要安装哪些? - KayKay

修改您的sources.list文件,将其指向。
http://old-releases.ubuntu.com/

而不是目前的
http://<country-code>.ubuntu.com/

这就是我要找的! - KayKay
1那么为什么你接受了其他的答案呢? - enzotib