centos5的kernel source

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")

(请选择 <版本>/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/ 这个目录内找得到。

posted @ 2010-12-01 15:16  BloodAndBone  Views(675)  Comments(0Edit  收藏  举报