Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->发行版专区 ->Redhat ->RedHat Linux 2.6内核怎么样创建Rpm包
  相关分类: 
CentOS
ubuntu
turbolinux
Suse
slackware
Redhat
Mepis
mandriva
Mandrake
knoppix
Gentoo
Fedora
Debian
红旗
  站内搜索: 
热门文章排行
热门文章排行 《Redhat Enterprise Linux Advanced(04-20)
Redhat Enterprise Linux启动服务详(04-11)
《红帽子64位操作系统正式版》(redha(04-20)
《Redhat Enterprise AS 4 Update 2(04-20)
RedHat SELinux系统简介及案例分析 (04-23)
精采文章排行
精采文章排行 用RedHatLinux手动创建RAID和LVM分区(05-23)
在Redhat Linux AS 4下实现软件RAID (05-09)
redhat linux8.0系统和软件配置手记(05-05)
如何在RedHat Linux下安装惠普磁带(05-05)
redhat7.1gnome汉化及chinput的安装(05-05)
  ·在Redhat Linux AS 4下实现软件RAID · redhat linux8.0系统和软件配置手记· redhat7.1gnome汉化及chinput的安装· RedHatLinux7.2上Oracle8i R2(8.1.6)企· 轻松在Redhat linux 7.3安装新字体· redhat7.3声卡安装说明· 如何在RedHat Linux8下面安装Oracle 9i· RedHat 7.0 安装 NAT 作法简介· 在RedHat7.3下安装Oracle Database 9iR2

RedHat Linux 2.6内核怎么样创建Rpm包

作者:   来源:   点击:   日期:2007-04-11 [收藏] [投稿]

  IE是否经常中毒?推荐您

RedHat企业版自从AS4开始,桌面版本自从FC3开始,不再单独提供kernel-sourcecode的rpm安装包,原因是RedHat认为没有必要维护单独的kernel-sourcecode包,因为所有的源代码包都应该包.在.src.rpm中而不是rpm中。所以在这些高版本的RedHat Linux上,我们如果需要定制内核的话,没有直接的源代码rpm可以安装,只能通过kernel.org下载的tar.gz的包手工安装,或者通过kernel-*.src.rpm编译出kernel-source包再来安装。后面一种方法可以享受到RedHat针对内核的某些参数和代码的优化,因此对使用RedHat发行版特别是企业版本的,是有一定好处的。

但是目前很多人至今分不清内核,内核开发,内核源代码一些包之间的关系,因此在编译内核的时候经常走弯路,同时RedHat官方对于如果得到kernel-source也没有明确的指示,导致很多人不得要领。

首先认清楚各rpm包的内容和用途。

kernel-*.rpm ------------- 内核二进制包,没有的话系统都起不来。kernel-sourcecode-*.rpm------------------- 内核源代码包,安装到/usr/src/linux-*下面的,包含内核源代码,编译内核必须(当然是不考虑用kernel.tar.gz编译的情况),但高版本RedHat Linux不再提供此rpm,原因参见官方Release Note,这篇文章的最终目的就是要我们自己把这个包搞出来。

kernel-devel-*.rpm----------------内核开发包,安装到/usr/src/kernels,用于内核模块开发,组织形式跟内核源代码包类似,包含了部分内核源代码。注意很多人误认为这个就是内核源代码包,直接拿它来编译内核,当然不可能成功。这个包只是用于内核模块一级开发,例如驱动程序等,虽然也可以make menuconfig make dep等,但make bzImage是不可能成功的,因为缺失了核心源代码。

kernel-*.src.rpm---------------RedHat提供的用于建立rpm的源代码包,安装到/usr/src/redhat中,使用rpmbuild可以从这个包中build出上面所说的所有包。

现在就来从src.rpm编译出上面的所有的包,除了sourcecode这个包其他的包都可以在不用修改任何地方的情况下直接rpmbuild出来,唯有sourcecode这个比较麻烦,一定要按照下面的步骤来做,我以RedHat AS4 所带的版本为例,其他版本相同。

#首先安装src.rpm

rpm -ivh kernel-2.6.9-5.EL.src.rpm

#进入相应目录,要修改spec文件

cd /usr/src/redhat/SPECS
vi kernel-2.6.spec

#主要修改如下地方:

1,define buildsource 0------------我的这个在第8行,改为1,这就是为什么没有源代码包的原因,因为默认不生成源代码包。

2, Requires: qt-devel, gtk2-devel readline-devel ncurses-devel-------我的在572行,如果没用用X的话,把这句注释掉,这样编译出来的包就不依赖于X-window的某些包,因为内核配置是可以make xconfig的,所以默认依赖X-window,我没装X-window,因此这个就去掉了。

#保存退出

touch /etc/beehive-root

#这句命令非必须,如果不做的话,最后编译出来的包都会变成kernel-*.*-root.rpm,多了个root,据说是为了标示包的编译人的,如果touch了这个文件,就没有这个问题了,命名和官方rpm一样。

rpmbuild  -ba --target=i686 ./kernel-2.6.spec

#编译i686平台的所有包,这样上面介绍的所有包都会生成,或者换成rpmbuild -bb --target=i686 ./kernel-2.6.spec只编译非src.rpm。

#所有包就会生成到/usr/src/redhat/RPMS/i686下面

#如果只需要sourcecode而并非所有rpm包,那在修改spec文件时还要修改如下行:

48 %ifarch noarch
49 %define builddoc 1
50 %define buildsource 0----------------这里0修改为1

在编译的时候使用rpmbuild -ba --target=noarch ./kernel-2.6.spec,这样仅仅编译soucecode和doc包,会节省很多时间。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 下一页

上一篇:RedHat9上安装D-linkDWL-610网卡驱动   下一篇:Xtminput作为RedHat7.1的输入工具
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·用RedHatLinux手动创建RAID和LVM分区

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。