RHEL6.1使用rpmbuild方式升级内核
来源:互联网 发布:java如何编译 编辑:程序博客网 时间:2024/06/06 18:36
RHEL6.1使用rpmbuild方式升级内核
RHEL是一个商业支持的Linux版本,他的软件可以免费获得,免费使用,但是补丁和技术支持则需收费。
但是根据GPLv2协议,对内核的任何改动都必须公布代码。所以RedHat将源码公布在官方的FTP上,但是没有给出二进制包。对于没有买RHEL服务的人来说,则需要自己手动将源码编译成RPM二进制包。下面说明一下RHEL6.3升级内核的过程。
OS:RHEL6U1,kernel:2.6.32-131.0.15.el6.x86_64
请保证/root可用空间在20G以上。
1)获取kernel.src.rpm
# lftp ftp.redhat.com:/pub/redhat/linux/enterprise/6Server/en/os/SRPMS# get kernel-2.6.32-131.6.1.el6.src.rpm
2)安装相关的依赖包
# yum -y install rpm* xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel hmaccalc perl*
注意,此时会提示,asciidoc,newt-devel不存在。此时暂且忽略了,在下面build的时候提示缺少依赖包时再解决这个问题。
3)编译kernel
首先建立一个名为mockbuild的用户和组。
# groupadd mockbuild# useradd -g mockbuild -s /sbin/nologin mockbuild
或者简单的一条命令:
# useradd -s /sbin/nologin mockbuild
效果是一样的,都是建立了一个名为mockbuild的用户和组。否则安装源码包的时候会出现“warning: user mockbuild does not exist”这样的警告信息。不过貌似忽略这些警告信息也毫无影响。
# rpm -ivh kernel-2.6.32-131.6.1.el6.src.rpm# cd /root/rpmbuild/SPEC/# rpmbuild -bb --with fireware --target=`uname -m` kernel.spec
此时会提示,缺少一些依赖包,只要yum安装上即可,最终提示asciidoc,newt-devel没有。的确在ISO里也没有。
4)解决依赖关系
所缺的两个包在RedHat的官方FTP上都有。进入RedHat的FTP:
# lftp ftp.redhat.com:/pub/redhat/linux/enterprise/6Server/en/os/SRPMSget asciidoc-8.4.5-4.1.el6.src.rpm,newt-0.52.11-2.el6.src.rpm# rpmbuild --bb --target=`uname -m` asciidoc.spec
这样即可解决依赖asciidoc问题。而newt-devel会稍微麻烦些。在rpmbuild newt的时候,会提示依赖slang这个包。一样的光盘里没有提供,再从ftp上取得slang-2.2.1-1.el6.src.rpm。而在rpmbuild slang
时候提示依赖oniguruma,也是光盘里没有的,再从ftp上取得oniguruma-5.9.1-3.1.el6.src.rpm。
所以是先build出oniguruma,然后是slang,最后是newt-devel。至此,依赖性解决。
5)重新开始编译
# rpmbuild --bb --with firmware --target=`uname -m` kernel.spec.
然后是漫长的等待,显示 gpg: WARNING: unsafe permissions on homedir `.’的时候,耐心等待。
6)编译时间很长。。多喝几杯咖啡。:D
- RHEL6.1使用rpmbuild方式升级内核
- RHEL6.1使用rpmbuild方式升级内核
- RHEL6.3使用rpmbuild方式升级内核
- RHEL6编译升级官方内核
- RHEL6.2下使用rpmbuild编译taobao-kernel手札
- RHEL6.1编译内核-kernel-3.0.4
- RHEL6.1编译内核-kernel-3.0.4
- rpmbuild命令使用
- rpmbuild 使用笔记
- SRPM 的使用:rpmbuild
- 实验环境rhel6.3,升级前内核版本2.6.32,升级后内核版本3.3.6.步骤如下: [复制链接]
- rpmbuild
- rpmbuild
- rpmbuild
- rpmbuild
- 升级Linux内核之最简单方式
- CentOS yum方式升级内核kernel
- 烂泥:centos6 yum方式升级内核
- Spring与Mybatis的整合之Mapper代理的整合方式
- C语言实现通讯录系统——容量自增,文件版本
- kafka.storage为kafka时如修改设置用户组的offset
- 8.12 k-生成树(k-SPANNING TREE)证明 等题
- 开发工具-Github学习笔记
- RHEL6.1使用rpmbuild方式升级内核
- JZOJ 4923. 巧克力狂欢
- 数据库中的索引
- vim简化ctags+taglist安装
- 主从复制配置
- 微信播放视频花屏解决办法
- storm的单节点安装以及简单操作
- Mybatisd的逆向工程
- 4602: [Sdoi2016]齿轮