以 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)
从这些地方找寻内核的源代码:
http://mirror.centos.org/centos/5/updates/SRPMS/(最新的更新/源代码组件)
http://mirror.centos.org/centos/5/os/SRPMS/(最新的操作系统/源代码组件)
(针对 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.3.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.0.25.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/ 这个目录内找得到。