2. 如果你真的需要整个内核的源代码
如果你真的因为某个原因需要整个内核的源代码,它是有被提供的。
2.1. CentOS 4 与 5
以 root 的身份安装 rpm-build、redhat-rpm-config 及 unifdef 组件:
[root@host]# yum install rpm-build redhat-rpm-config unifdef
以一个不是 root 用户的户口,创建一个以 ~/rpmbuild 为基础的目录树:
[user@host]$ cd[user@host]$ mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}[user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > .rpmmacros
我们强烈推荐你不要以 root 的身份创建组件。(见:Building Source RPM as non-root under CentOS)
从这些地方找寻内核的源代码:
(针对 CentOS-4 内核请以 "4" 取代 "5")
-
http://vault.centos.org/ (CentOS 地下室)
(请选择 <版本>/updates/SRPMS 或 <版本>/os/SRPMS)
一旦你找到源代码组件,你可以执行这个指令来安装它:
[user@host]$ rpm -i http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-194.26.1.el5.src.rpm 2>&1 | grep -v mockb
(针对 CentOS 5)— 或 —
[user@host]$ rpm -i http://mirror.centos.org/centos/4/updates/SRPMS/kernel-2.6.9-89.31.1.EL.src.rpm 2>&1 | grep -v mockb
(针对 CentOS 4)现在源代码组件已经安装了,请解压及预备源代码文件:
[user@host]$ cd ~/rpmbuild/SPECS[user@host SPECS]$ rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log
`uname -m` 这个数值(注意:是钝音符号,不是单引号)将 --target 设置为你的现有内核的结构。一般来说请是可行的,因为多数人会拥有 i686 或 x86_64。
现在内核的源代码目录树可以在 ~/rpmbuild/BUILD/ 这个目录内找得到。