iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Centos中怎样快速定制二进制的内核RPM包
  • 601
分享到

Centos中怎样快速定制二进制的内核RPM包

2023-06-16 16:06:56 601人浏览 独家记忆
摘要

Centos中怎样快速定制二进制的内核RPM包,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随着linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安

Centos中怎样快速定制二进制的内核RPM包,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

随着linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安装包来便捷的升级和管理。RedHat系那当然就是使用rpmbuild来做定制化管理了。

今天我们分两个部分(root和普通用户)来讲解如何制作内核的二进制rpm包。

Building主机系统环境约定:

  • OS : CentOS release 6.6

  • Arch : i686

一、rpm包简单定制

注意: 这里我们首先要预留至少20GB的临时文件空间。

1.rpm 制作前的环境准备
yum -y groupinstall "Development Tools"yum -y install ncurses-devel Qt-develyum -y install rpm-build redhat-rpm-config asciidoc hMaccalc perl-ExtUtils-Embed xmltoyum -y install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-develyum -y install newt-devel python-devel zlib-devel bc
2.准备内核的源代码组件
cd /usr/srcwget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.1.tar.xztar -Jxvf linux-3.19.1.tar.xzln -s linux-3.19.1 linuxcd linuxmake oldconfig     # 验证和更新配置.config配置文件(如果只想在原来内核配置的基础上修改一些小地方)make menuconfig     # 简单图形化的内核配置管理
3.此时,我们就可以开始编译新内核rpm包了
make rpm     # 自动生成rpmtree,kernel.spec文件,自动编译, 会生成debug包在内的所有rpm包组件。

这个时候我们就等着吧,或者喝杯下午茶什么的。

好了,我们找一下已经编译好的内核 rpm 包。

cd /root/rpmbuild/RPMS/`uname -m`/ tree RPMS/RPMS/└── i386    ├── kernel-3.19.1-2.i386.rpm    ├── kernel-devel-3.19.1-2.i386.rpm    └── kernel-headers-3.19.1-2.i386.rpm 1 directory, 3 files
4.安装新内核
rpm -Uvh kernel-*-.rpm
5.重启,验证内核版本
uname -a

二、rpm包深度定制化

1.我们先创建好rpm的“制作车间”(我觉得这样说可能更形象一些)。
yum install rpmdevtools     # rpm 制作车间快速创建工具useradd -m builder     # 新建一个临时用户以便创建 RPM 包,如果有错误发生,构建程序不会破坏现有的系统环境。su - builderrpmdev-setuptree    # 创建”制作车间“

将会在builder用户的家目录下生成如下目录结构:

tree -L 1 ~/rpmbuild/rpmbuild/├── BUILD├── RPMS├── SOURCES├── SPECS└── SRPMS
2.编译前准备

此时我们需要包收集来的新版内核源码包放到 /home/builder/rpmbuild/SOURCES 目录下。

su - buildercd ~/rpmbuild/SOURCES wget -c Https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.1.tar.xz       # 注意: rpmbuild 是通过gzip来做building前源码包解压工作的,所以需要把这个压缩包转换成.tar.gz格式。# 这里就不做记录了cp /boot/config-`uname -r` .    # 将现有的内核配置文件 config-`uname -r` 拷贝到 SOURCES 目录下

切换到SPECS目录下, 生成 kernel.spec:

tar Jxvf ../SOURCES/linux-3.19.1.tar.xz -C .bash ../linux-3.19.1/scripts/package/mkspec >./kernel.specrm -rf linux-3.19.1 # 这里需要我们手动利用源码包中提供的脚本生成 kernel.spec 文件# 记得生成kernel.spec完之后,清理掉 linux-3.19.1 文件夹vim kernel.spec    # 可以根据个人情况做深度定制化

到此,我们的准备工作基本完成,目录结构及内容如下:

tree rpmbuild/ -arpmbuild/├── BUILD├── RPMS├── SOURCES│   ├── config-`uname -r`│   └── linux-3.19.1.tar.gz├── SPECS│   └── kernel.spec└── SRPMS 5 directories, 3 files
3.好了,现在我们正式开始编译内核的二进制rpm包
rpmbuild -bb --with baseonly --without debug --without debuginfo --target=`uname -m` kernel.spec

rpmbuild 参数说明:

(1) --with <option> 指明编译某一种 kernel,可选的 option 有 baseonly、smponly 和 xenonly 等。

(2) --without <option> 指明去除一些功能模块,可选的 option 有  xen、smp、up、pae、kdump、debug 和 debuginfo 等。其中,debug  选项会剔除内核中的调试代码,debuginfo 选项会禁止建立 kernel-debuginfo 包。

完成以后,请到 ~/rpmbuild/RPMS/`uname -m`/ 目录中获取 rpm 安装包。

看完上述内容,你们掌握Centos中怎样快速定制二进制的内核RPM包的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Centos中怎样快速定制二进制的内核RPM包

本文链接: https://www.lsjlt.com/news/284456.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Centos中怎样快速定制二进制的内核RPM包
    Centos中怎样快速定制二进制的内核RPM包,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随着Linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安...
    99+
    2023-06-16
  • CentOS中怎么制作php的rpm包
    本文小编为大家详细介绍“CentOS中怎么制作php的rpm包”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS中怎么制作php的rpm包”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。安装rpm-bui...
    99+
    2023-06-27
  • MYSQL中的二进制日志是怎样的
    这期内容当中小编将会给大家带来有关MYSQL中的二进制日志是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。数据库开启二进制日志:1.修改/etc/my.cnf[ro...
    99+
    2024-04-02
  • MySQL5.5基于CentOS6二进制包安装是怎么样的
    MySQL5.5基于CentOS6二进制包安装是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 背景   ...
    99+
    2024-04-02
  • Kafka内核中的分布式机制实现是怎样的
    Kafka内核中的分布式机制实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一个Topic中的所有数据分布式的存储在kafka集群的所有机器(broker)上,以分区...
    99+
    2023-06-04
  • 第78讲:截取MySQL Binlog二进制日志中特定部分内容的技巧
    文章目录 1.为什么要截取Binlog日志中的部分内容 2.针对标识位截取Binlog日志中的部分数据 2.1.以标识位号截取Binlog日志的方法 2.2.截取Binl...
    99+
    2023-12-23
    mysql 数据库 阿里云 云计算 oracle 数据结构 运维
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作