给Kylin iso中添加自定义rpm包

news2024/11/14 17:50:41

前言

        在日常产品交付中会有如下需求:

  1.   客户自己安装centos / ubuntu / kylin iso,然后我们把rpm包给到客户
  2.   我们直接将rpm包封装到iso,给客户交付整体iso,这样不管是对于客户还是对于公司都是最省心的,会避免很多因为系统包版本不一致导致的安装失败问题 

当前项目中的需求

  • 在代码中会用到nmap命令来判断远端服务器ip和port是否可用,如果部署集群很多,手动安装显然不是最佳选择

  • 所以我们需要将nmap-7.93-1.x86_64.rpm添加到kylin iso中,最终交付客户

给Kylin iso添加nmap rpm包 

  •  先看未添加nmap rpm包前直接安装kylin iso后,会报如下错误:

        

  •  先去官网找到nmap rpm包并copy到build 服务器
  •  mount iso 并copy iso里全部内容到新的目录 

         ​​​​​​​

mount /root/SCloud-1.0-v8.0-153-kylin-v10-202212021405-cbf3cc9.iso /mnt/iso/
mkdir /mnt/iso_bak

# 这里一定加-r选项,因为iso会有很多隐藏目录
cp -rfp /mnt/iso/ /mnt/iso_bak/
  •  iso本地路径常见的目录及文件理解
Packages

系统所有的rpm package都在这个目录,下面可有子目录

比如这里就会有Packages/Bigtera/xxx.rpm

repodata

系统rpm包metadate源数据

bigtera-x86_64-comps.xml

isolinux

存放光盘启动时的安装界面信息,里面有两个核心文件

xxx.ks 是kickstart 自动安装应答脚本 

isolinux.cfg,系统引导配置文件,比如标注ks的路径

append initrd=initrd.img inst.stage2=hd:LABEL=Kylin inst.ks=cdrom:/isolinux/bigtera.ks quiet

.disk

会存放一下系统版本,tag,version之类的信息

big_product  big_tag  big_version

images系统启动映像文件

.productinfo

.discinfo

.productinfo会存放系统release版本信息

Kylin Linux Advanced Server
release V10(SP2)/(Sword)-x86_64-Build09/20210524

-----------------------------------------

.discinfo 系统的架构比如x86 or ARM

Kylin Linux Advanced Server
x86_64

EFIUEFI 启动模式下必须文件,Legacy模式下是非必须文件
  •  将我们自定义rpm包copy到iso Package目录

         cp /root/nmap-7.93-1.x86_64.rpm /mnt/iso_bak/iso/Packages/Bigtera/

  •   修改xxx.ks文件,将rpm包添加到对应group

        ks文件%package部分一些理解

%packages --ignoremissing (%packages --- %end之间添加包安装的group或者rpm name)

@^bigtera (指定环境包组, 一定要和repodata/xx.xml <environment> id一样)
@core
@virtualstor (这里是安装core 和 virtualstor 包组,这里的名字要和xml <group> id 一致)
@group_name (安装指定的包组)

%end

        可以看到repodate/xxx.xml里定义了两个group和一个environment    

     ​​​​​​​   

        

  •  修改repodate/xxx.xml 元数据,将自定义包加入

        这里我们是要加到自定义group virtualstor -- packagelist中

       

 开始重新build kylin iso

  1.  重新编译repodate xml元数据
  2. mkisofs重新build iso
  3. 生成iso MD5并插入镜像
createrepo --xz -g repodata/bigtera-x86_64-comps.xml .

mkisofs -r -V "SUPERCLOUD SuperCloud 1.0" -cache-inodes -joliet-long -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/boot.cat -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o "SCloud-1.0-v8.0-157-kylin-v10-202212021405-cbf3cc9.iso" /mnt/iso_bak/iso/

implantisomd5 SCloud-1.0-v8.0-157-kylin-v10-202212021405-cbf3cc9.iso 

 验证新iso

  •  安装过程省略
  •  查看安装好的kylin 并check nmap是否已成功安装

        ​​​​​​​

iso完美添加自定义rpm包 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

疯狂2023:科技迎来爆发之年,关注云计算这些方向

临近年末&#xff0c;熬过艰难苦恨繁霜鬓的2022&#xff0c;打工人已默默扛起来年的OKR 。根据市场研究机构Garner预测&#xff0c;2023将迎来科技爆发之年&#xff0c;最值得关注的云计算趋势是AI和ML、多云和混合云解决方案、物联网、云安全等。 及时了解不断变化的技术格局…

汇聚数据库创新力量 GBASE携手openGauss助企业数字化转型

12月29日&#xff0c;openGauss Summit 2022于线上举行。本次大会是由openGauss开源数据库社区联合行业组织、伙伴及客户共同举办的一场年度数据库产业界交流与分享峰会。天津南大通用数据技术股份有限公司&#xff08;简称&#xff1a;GBASE&#xff09;首次以openGauss社区理…

PDF转换成JPG图片怎么转换?这两招轻松搞定

PDF转换成JPG图片怎么转换&#xff1f;PDF文件是我们常用的一类文件&#xff0c;在现在的办公环境中&#xff0c;PDF真的用途很广&#xff0c;不仅是日常发送文件&#xff0c;还有学习工作中都会用到&#xff0c;不过有时候我们也需要将PDF文件转换成其他的格式&#xff0c;比如…

JUC并发编程学习笔记(五)读写锁和阻塞队列

8 读写锁 8.1 悲观锁和乐观锁介绍 回顾悲观锁和乐观锁的概念 悲观锁&#xff1a;单独每个人完成事情的时候&#xff0c;执行上锁解锁。解决并发中的问题&#xff0c;不支持并发操作&#xff0c;只能一个一个操作&#xff0c;效率低 顾名思义&#xff0c;就是比较悲观的锁&am…

配置文件中命名空间的作用

命名空间 实际上就是一个由程序设计者命名的内存区域&#xff0c;程序设计者可以根据需要指定一些有名字的空间域&#xff0c;把一些全局实体分别放在各个命名空间中&#xff0c;从而与其他全局实体分隔开来。 命名空间的作用 是建立一些互相分隔的作用域&#xff0c;把一些…

11_3、Java集合之迭代器Iterator接口

一、引入Iterator对象称为迭代器(设计模式的一种)&#xff0c;主要用于遍历 Collection 集合中的元素。 GOF给迭代器模式的定义为&#xff1a;提供一种方法访问一个容器(container)对象中各个元 素&#xff0c;而又不需暴露该对象的内部细节。迭代器模式&#xff0c;就是为容器…

华脉智联铁路巡检及指挥调度系统

技术方案 整套系统基于云通讯平台和智能终端的结合&#xff0c;实现指挥中心和现场人员的实时互动&#xff0c;同时保证现场取证材料的实时上报以及指挥中心实时将决策及命令下发到现场人员。提高巡检效率及巡检准确性。 方案拓扑如下&#xff1a; 在指挥中心通信机房部署指挥…

k8s集群监控cadvisor+prometheus+grafana部署

目录 1.新建命名空间monitor 2.部署 2.1部署cadvisor 2.2部署node_exporter 2.3部署prometheus资源 2.4部署rbac权限 2.5.部署 metrics 2.6部署grafana 3.测试效果 参考文章&#xff1a; k8s集群部署cadvisornode-exporterprometheusgrafana监控系统 - cyh00001 - 博客园 …

JDBC --- 数据库连接池 C3P0

目录 1、基本定义 2、使用C3P0&#xff08;数据库连接池&#xff09;的必要性 2.1.JDBC传统模式开发存在的主要问题 2.1.1时间和内存资源消耗巨大 2.1.2 有内存泄漏的风险 3、数据库连接池的详细说明 4、使用连接池的明显优势 4.1.资源的高效利用 4.2.更快的系统反应速…

linux中awk命令和argxs命令的详解使用

一 awk命令1.1 命令的作用awk为行命令处理器&#xff0c;对每一行的文本数据&#xff0c;进行格式化文本信息。目的&#xff1a;在处理庞大文件时不会出现内存溢出或是处理缓慢的问题。1.2 案例应用获取某一行文本数据&#xff0c;提取不同字段的值。1.显示整行数据[rootlocalh…

怎么把照片合成一张?看完这篇文章你就知道了

大家平时有没有遇到过这样的情况&#xff1f;好朋友们组团一起出去玩&#xff0c;但是你因为个人原因无法跟大家一起去。这就可能导致姐妹中的合照少了你一个人&#xff0c;那么要怎样在图片上添加你去了的效果呢&#xff1f;其实很简单&#xff0c;只要编辑图片进行合成就可以…

指针进阶(1)

( )> [ ] > -> > -- > . > * &#xff08;优先级比较&#xff09; tips 1. &#xff08;全是笔者个人自己总结&#xff0c;仅供参考&#xff0c;随意取用&#xff09; 2. 3. 地址唯一标识一块内存空间 4. printf%s打印字符串的话只要给一个起始地址…

【 Vue3 + Vite + setup语法糖 + Pinia + VueRouter + Element Plus 第二篇】(持续更新中)

在第一篇中我们讲述了Vue3框架的搭建以及Vue3的常用语法&#xff0c;这篇文章将使用 Axios 和 Element Plus 并使用封装组件的方式完成表格搭建。 本期需要掌握的知识如下: 引入并封装 Axios 请求配置 .env 文件通过 api 接口获取数据 下期需要掌握的知识如下: 组件的封装和…

MySQL主从延迟的解决方案

1、MySQL主从延迟的解决方案 之前项目中基于 MySQL 主从复制以及 AOP 的方式实现了读写分离&#xff0c;也写了博客记录了这个实现过程。既然配置了 MySQL 主从复制&#xff0c;那么自然会存在主从延迟&#xff0c;如何尽可能减小主从延迟对应用系统的影响是很有必要的思考点&a…

特征工程原理(一)

一、定义 在机器学习原理中讲过机器学习的基本流程&#xff0c;其中很重要的一个环节就是特征工程。 1.1 基本概念 特征工程&#xff08;Feature Engineering&#xff09;&#xff1a;从原始数据中提取特征的过程&#xff0c;这些特征可以很好地描述数据&#xff0c;并且利用…

Showdoc升级版本记录

目录 Showdoc介绍 升级步骤 1.备份当前版本 2.下载安装最新版本 总结步骤&#xff1a; Showdoc介绍 ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc&#xff0c;你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线…

GitHub创建仓库,使用SSH建立连接(github创建仓库,github使用SSH建立连接)

GitHub简介&#xff1a;GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;也是一个开源代码库以及版本控制系统&#xff0c;Github拥有超过900万开发者用户&#xff0c;已经成为了管理软件开发以及发现已有代码的首选方法。 怎样创建仓库并使用&#xff1f;详细操作步…

FTP错误代码

本文迁移自本人网易博客&#xff0c;写于2015年4月15日&#xff0c;FTP错误代码 - lysygyy的日志 - 网易博客 (163.com)1、12003错误指定用户未添加到有权限的组中&#xff1b;即指定用户没有权限。2、CFtpFileFind.FindFile GetLastError 12110 &#xff08;1&#xff09;当递…

对比学习综述

一 . 发展历程大概可以分为四个阶段 1、百花齐放&#xff1a;在这个阶段中&#xff0c;方法、模型、目标函数、代理任务都还没有统一&#xff0c;所以说是一个百花齐放的时代。 InstDisc&#xff08;instance discrimination&#xff09;CPCCMC 2、CV双雄&#xff1a;这个阶…

十六、xml、单元测试、注解、单例模式

xml 1.概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为止&…