rpm放linux源码文件夹,linux编译*src.rpm源码的文件

一、编译内核

如果对于内核安装用src.rpm不理解的话,可以参考文章 :点击打开链接

在Linux AS 4的发行注记中找到解释:当内核源码已经存在在内核的 .src.rpm 文件中时,为内核源码提供一个独立的软件包就变得没有必要。因此,红帽企业 Linux 4 不再包括 kernel-source 软件包。需要这些内核源码的用户可以在 kernel .src.rpm 文件中找到。通过这个文件建立一个快速扩展的资源树…这就是说当红帽企业认为为内核源码提供一个独立的软件包不再重要时,作为用户的我们如果想定制、升级、重编内核就得折腾一下了。/usr/src/kernels 目录不是源代码目录,rpm源代码包也不在AS 4的七张安装光盘中(至少我没能找到)。

对于此类文件,一般可以在下载到,此类文件包括源代码。

这里用kernel-2.6.18-164.el5.src.rpm为例,下面说明一下编译步骤,

当然,前提是安装一下需要的工具在安装内核之前必须把Development Tools,Development Libraries这两个包组安装上去(必须先配置yum 源)

# yum groupinstall   "Development Tools"     "Development Libraries"

1. 将kernel-2.6.18-164.el5.src.rpm文件放到自己的目录下,为/myfile/,之后运行

rpm -ivh kernel-2.6.18-164.el5.src.rpm

会在/usr/src/下生成redhat这个文件夹。但是如题提示"cannot creat %/usr/src/redhat/SOURCE"那么,

可以自己用mkdir分别创建/usr/src/redhat和/usr/src/redhat/SOURCE。

2. 进入/usr/src/redhat/SPECS中,会看到kernel.spec这个文件 ,我们进行rpmbuid.

rpmbuild -bb --target=i686 kernel.spec     //用 uname -m 可以看到自己系统架构,如果你的系统是i386或者是x86_64的,就把i686

//换成对应的。

如果系统中没有rpmbuild这个命令,则用yum进行安装 yum install rpm-build进行安装

# rpmbuild -bp --target=i686 kernel-2.6.spec 遇到下面的错误

error: Bad exit status from /var/tmp/rpm-tmp.50919 (%prep)

可以清除以前安装在/usr/src/redhat/SOURCES下删除所有文件,重来

重新运行rpmbuild

3. 等rpmbuild成功后,最终目录结构成功安装后,数据分布如下:

·所有的kernel配置文件生成在 /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18/configs 目录下

kernel-2.6.9-x86_64.config

kernel-2.6.9-x86_64-smp.config

·  内核树生成在 /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 目录下

·  内核RPM安装包生成在 /usr/src/redhat/RPMS/{机器体系} 目录下

kernel-2.6.9-22.EL.x86_64.rpm

kernel-debuginfo-2.6.9-22.EL.x86_64.rpm

kernel-devel-2.6.9-22.EL.x86_64.rpm

kernel-smp-2.6.9-22.EL.x86_64.rpm

kernel-smp-devel-2.6.9-22.EL.x86_64.rpm

kernel-sourcecode-2.6.9-22.EL.x86_64.rpm

内核 kernel.src.rpm 包在 /usr/src/redhat/SRPMS 目录下

kernel-2.6.9-22.EL.src.rpm

4. 安装内核源码包,生成源代码目录

# cd /usr/src/redhat/RPMS/{机器体系}

# rpm -ivh kernel-sourcecode-2.6.9-22.EL.x86_64.rpm

查看/usr/src/kernel目录下是否已生成 linux-2.6.9-22.EL 目录了。若是有,那可以参考 点击打开链接

接下来可以按照传统方法定制编译内核了!具体方法请参考本站其它相关文章:内核编译

附:简单编译过程如下:

# cd /usr/src/linux-2.6.9-22.EL/configs

# cp kernel-2.6.9-x86_64-smp.config    ../.config

# make oldconfig

# vi Makefile

# make menuconfig

# make all

# make modules_install

# make install

# vi /boot/grub/menu.lst

# reboot

二、对于src.rpm和tar.gz的说明

1、用 rpm -ivh *.src.rpm 命令来安装它不会象二进制的 rpm软件包那样安装程序及其数据,则是向/usr/src/redhat(不同的发行版可能稍有不同)/下的SOURCE、SPECS等子目录释放同名的*.tar.gz源码包。你还得自己用它释放出来的 *.tar.gz源码包来编译安装才行。

2、如果用 rpmbuild ——rebuild *.src.rpm 来进行编译,编译完成后会在 /usr/src/linux(不同的发行版可能稍有不同) 下的RPMS目录下生成同名的*.rpm软件包,这回你就可以安装这它了:rpm -ivh *.rpm .

*.tar.gz形式的源码(请注意*.tar.gz不全是源码!可用tar ztvf *.tar.gz列清单确定)是直接打包并压缩了的目录及文件,*.src.rpm除了包含这个同名的 tar.gz包外,还有方便将之编译为同名rpm二进制包的描述文件(*.spec)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值