定制Centos镜像(二)

本章是对上篇文章的扩展:
https://blog.csdn.net/qq_50247813/article/details/145286244

上篇文章学习了如何自定义镜像安装。这篇介绍如何在定制镜像的时候安装其他软件; (源文件参考上篇文章)

根据上篇文章的步骤,只需要把第6步做完

  1. 自定义安装的时候安装: vim-enhanced,net-tools,telnet,wget,rsync,lsof,docker-ce 软件

    vim 软件包名全称是 vim-enhanced

    1.1. 将需要安装的软件包以及依赖下载到 Centos-install/Packages里面

    由于Centos默认的yum源的docker版本很低,所有docker安装不使用默认的源,使用阿里云的yum源。
    # yum install -y yum-utils
    # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    # yum install --downloadonly --downloaddir=/root/Centos-install/Packages/ vim-enhanced net-tools telnet wget rsync lsof
    # yum install --downloadonly --enablerepo=docker-ce-stable --downloaddir=/root/Centos-install/Packages/  docker-ce
    

    1.2. 重新修改 *-comps.xml 文件,将vim-enhanced,net-tools,telnet,wget,rsync,lsof,docker添加进去。

    必须在最小型安裝后面的packagelist里面添加包名。
    <packagereq type=“default”>vim-enhanced 中 type=“default” 表示该软件包是软件包组的 默认成员,当用户安装这个软件包组时,vim-enhanced 软件包将被自动安装,但用户可以选择不安装它。
    还有其他选项:
    type=“mandatory”:这个属性表示该软件包是软件包组的 强制性成员。当用户安装这个软件包组时,软件包将被自动安装,而无需用户手动选择。
    type=“optional”:这个属性表示该软件包是软件包组的 可选成员。当用户安装这个软件包组时, 软件包不会自动安装,用户可以选择是否安装它。

    # cd /root/Centos-install/repodata/
    # shopt -s  extglob
    # rm -f !(*-comps.xml)
    # mv *-comps.xml comps.xml
    # cat  comps.xml
    <name xml:lang="zh_CN">核心</name>
    <name xml:lang="zh_TW">核心</name>
    <name xml:lang="zu">Okuyikhona</name>
    <description>Smallest possible installation.</description>
    <description xml:lang="as">ন্যূনতম ইনস্টল।</description>
    <description xml:lang="bn">ন্যূনতম ইনস্টলেশন।</description>
    <description xml:lang="cs">Nejmenší možná instalace.</description>
    <description xml:lang="de">Kleinstmögliche Installation.</description>
    <description xml:lang="de_CH">Kleinstmögliche Installation.</description>
    <description xml:lang="es">La instalación más pequeña posible.</description>
    <description xml:lang="fr">Plus petite installation possible.</description>
    <description xml:lang="gu">નાનામાં નાના શક્ય સ્થાપન.</description>
    <description xml:lang="hi">लघुतम संभावित संस्थापन.</description>
    <description xml:lang="ia">Le minime possibile installation.</description>
    <description xml:lang="it">Minima installazione possibile.</description>
    <description xml:lang="ja">最小限のインストール</description>
    <description xml:lang="kn">ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ.</description>
    <description xml:lang="ko">가능한 최소 설치</description>
    <description xml:lang="ml">സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്<200d>സ്റ്റലേഷന്<200d>.</description>
    <description xml:lang="mr">शक्यतया सर्वात लहान प्रतिष्ठापन.</description>
    <description xml:lang="or">କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନା।</description>
    <description xml:lang="pa">ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ।</description>
    <description xml:lang="pl">Najmniejsza możliwa instalacja.</description>
    <description xml:lang="pt_BR">Menor instalação possível</description>
    <description xml:lang="ru">Минимально возможная установка</description>
    <description xml:lang="sv">Minsta möjliga installation</description>
    <description xml:lang="ta">மிகச் சிறிய செயல்படுத்தக்கூடிய நிறுவல்.</description>
    <description xml:lang="te">సాధ్యమగు అతిచిన్న సంస్థాపన.</description>
    <description xml:lang="uk">Мінімально можливе встановлення.</description>
    <description xml:lang="zh">最小型安裝。</description>
    <description xml:lang="zh_CN">最小可能安装。</description>
    <description xml:lang="zh_TW">最小型安裝。</description>
    <default>false</default>
    <uservisible>false</uservisible>
    <packagelist>
    ... ...<packagereq type="default">vim-enhanced</packagereq><packagereq type="default">net-tools</packagereq><packagereq type="default">telnet</packagereq><packagereq type="default">wget</packagereq><packagereq type="default">rsync</packagereq><packagereq type="default">lsof</packagereq><packagereq type="default">docker-ce</packagereq>
    ... ...
    </packagelist>
    

    1.3. 重新生成yum元数据

    # createrepo -g /root/Centos-install/repodata/comps.xml /root/Centos-install
    Spawning worker 0 with 365 pkgs
    Workers Finished
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete
    
  2. 在ks中配置启动docker,并把默认的yum源修改为阿里云

    由于涉及到uefi和bios引导所有两个ks文件都需要修改,修改内容一致,这里只展示一个。
    在系统安装完后执行。

    # cat Centos-install/isolinux/bios.cfg
    ... ...
    %postrm -rf /etc/yum.repos.d/*
    echo "[base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos/\$releasever/os/\$basearch/
    http://mirrors.aliyuncs.com/centos/\$releasever/os/\$basearch/
    http://mirrors.cloud.aliyuncs.com/centos/\$releasever/os/\$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 " > /etc/yum.repos.d/CentOS-Base.reposystemctl enable docker --now%end
    ... ...
    
  3. 创建自定义iso镜像。

    # cd Centos-install/
    # mkisofs -untranslated-filenames -volid "CentOS 7 x86_64" -J -joliet-long -rational-rock -translation-table -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o /root/Centos-build-20250201.iso -graft-points /root/Centos-install
    
  4. 使用自定义的iso镜像创建系统后,测试效果。

    [root@192 ~]# rpm -qa | egrep 'vim-enhanced|net-tools|telnet|wget|rsync|lsof'
    vim-enhanced-7.4.629-8.el7_9.x86_64
    net-tools-2.0-0.25.20131004git.el7.x86_64
    lsof-4.87-6.el7.x86_64
    rsync-3.1.2-12.el7_9.x86_64
    wget-1.14-18.el7_6.1.x86_64
    telnet-0.17-66.el7.x86_64
    [root@192 ~]# rpm -qa | grep docker
    docker-ce-26.1.4-1.el7.x86_64
    docker-compose-plugin-2.27.1-1.el7.x86_64
    docker-ce-cli-26.1.4-1.el7.x86_64
    docker-ce-rootless-extras-26.1.4-1.el7.x86_64
    docker-buildx-plugin-0.14.1-1.el7.x86_64
    
    [root@192 ~]# systemctl status docker
    ● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2025-01-31 20:24:03 EST; 7h leftDocs: https://docs.docker.comMain PID: 866 (dockerd)Tasks: 8Memory: 105.8MCGroup: /system.slice/docker.service└─866 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockJan 31 20:24:02 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
    Jan 31 20:24:02 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:02.852110125-05:00" level=info msg="Starting up"
    Jan 31 20:24:02 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:02.960516801-05:00" level=info msg="Loading containers: start."
    Jan 31 20:24:03 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:03.168511723-05:00" level=info msg="Loading containers: done."
    Jan 31 20:24:03 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:03.182787827-05:00" level=info msg="Docker daemon" commit=de5c9cf containerd-snap...on=26.1.4
    Jan 31 20:24:03 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:03.183180333-05:00" level=info msg="Daemon has completed initialization"
    Jan 31 20:24:03 localhost.localdomain dockerd[866]: time="2025-01-31T20:24:03.252357348-05:00" level=info msg="API listen on /run/docker.sock"
    Jan 31 20:24:03 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
    Hint: Some lines were ellipsized, use -l to show in full.
    
    [root@192 ~]# cat /etc/yum.repos.d/CentOS-Base.repo
    [base]
    name=CentOS- - Base - mirrors.aliyun.com
    failovermethod=priority
    baseurl=http://mirrors.aliyun.com/centos//os//
    http://mirrors.aliyuncs.com/centos//os//
    http://mirrors.cloud.aliyuncs.com/centos//os//
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    

    测试结果与实际情况符合。

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

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

相关文章

【机器学习理论】朴素贝叶斯网络

基础知识&#xff1a; 先验概率&#xff1a;对某个事件发生的概率的估计。可以是基于历史数据的估计&#xff0c;可以由专家知识得出等等。一般是单独事件概率。 后验概率&#xff1a;指某件事已经发生&#xff0c;计算事情发生是由某个因素引起的概率。一般是一个条件概率。 …

Flutter 新春第一弹,Dart 宏功能推进暂停,后续专注定制数据处理支持

在去年春节&#xff0c;Flutter 官方发布了宏&#xff08;Macros&#xff09;编程的原型支持&#xff0c; 同年的 5 月份在 Google I/O 发布的 Dart 3.4 宣布了宏的实验性支持&#xff0c;但是对于 Dart 内部来说&#xff0c;从启动宏编程实验开始已经过去了几年&#xff0c;但…

计算机组成原理——存储系统(一)

在人生的道路上&#xff0c;成功与失败交织成一幅丰富多彩的画卷。不论我们是面对胜利的喜悦&#xff0c;还是遭遇失败的痛苦&#xff0c;都不能放弃对梦想的追求。正是在这种追求中&#xff0c;我们不断地超越自我&#xff0c;不断地突破自己的极限。只有勇往直前&#xff0c;…

前端知识速记:节流与防抖

前端知识速记&#xff1a;节流与防抖 什么是防抖&#xff1f; 防抖是一种控制事件触发频率的方法&#xff0c;通常用于处理用户频繁触发事件的场景。防抖的核心思想是将多个连续触发事件合并为一个事件&#xff0c;以减少执行次数。它在以下场景中特别有效&#xff1a; 输入…

无人机图传模块 wfb-ng openipc-fpv,4G

openipc 的定位是为各种模块提供底层的驱动和linux最小系统&#xff0c;openipc 是采用buildroot系统编译而成&#xff0c;因此二次开发能力有点麻烦。为啥openipc 会用于无人机图传呢&#xff1f;因为openipc可以将现有的网络摄像头ip-camera模块直接利用起来&#xff0c;从而…

蓝桥杯例题一

不管遇到多大的困难&#xff0c;我们都要坚持下去。每一次挫折都是我们成长的机会&#xff0c;每一次失败都是我们前进的动力。路漫漫其修远兮&#xff0c;吾将上下而求索。只有不断努力奋斗&#xff0c;才能追逐到自己的梦想。不要害怕失败&#xff0c;害怕的是不敢去尝试。只…

【JavaEE进阶】图书管理系统 - 壹

目录 &#x1f332;序言 &#x1f334;前端代码的引入 &#x1f38b;约定前后端交互接口 &#x1f6a9;接口定义 &#x1f343;后端服务器代码实现 &#x1f6a9;登录接口 &#x1f6a9;图书列表接口 &#x1f384;前端代码实现 &#x1f6a9;登录页面 &#x1f6a9;…

【算法设计与分析】实验8:分支限界—TSP问题

目录 一、实验目的 二、实验环境 三、实验内容 四、核心代码 五、记录与处理 六、思考与总结 七、完整报告和成果文件提取链接 一、实验目的 掌握分支界限求解问题的思想&#xff1b;针对不同的问题&#xff0c;能够利用分支界限法进行问题拆分和求解以及时间复杂度分析…

【3】阿里面试题整理

[1]. ES架构&#xff0c;如何进行路由以及选主 路由&#xff1a;在Elasticsearch&#xff08;ES&#xff09;中&#xff0c;默认的路由算法是基于文档的_id。具体来说&#xff0c;Elasticsearch会对文档的_id进行哈希计算&#xff0c;然后对分片数量取模&#xff0c;以确定该文…

【Linux】opencv在arm64上提示找不到libjasper-dev

解决opencv在arm64上提示找不到libjasper-dev的问题。 本文首发于❄慕雪的寒舍 问题说明 最近我在尝试编译opencv&#xff0c;安装依赖项libjasper1和libjasper-dev的时候就遇到了这个问题。在amd64平台上&#xff0c;我们可以通过下面的命令安装&#xff08;ubuntu18.04&…

【数据结构】_时间复杂度相关OJ(力扣版)

目录 1. 示例1&#xff1a;消失的数字 思路1&#xff1a;等差求和 思路2&#xff1a;异或运算 思路3&#xff1a;排序&#xff0b;二分查找 2. 示例2&#xff1a;轮转数组 思路1&#xff1a;逐次轮转 思路2&#xff1a;三段逆置&#xff08;经典解法&#xff09; 思路3…

基于微信小程序的电子商城购物系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

【linux】Linux 常见目录特性、权限和功能

目录特性默认权限主要功能/用途/根目录&#xff0c;所有目录的起点755文件系统的顶层目录&#xff0c;包含所有其他子目录和文件/bin基础二进制命令目录&#xff08;系统启动和修复必需的命令&#xff09;755存放所有用户可用的基本命令&#xff08;如 ls, cp, bash 等&#xf…

docker直接运行arm下的docker

运行环境是树莓派A 处理器是 arm32v6 安装了docker&#xff0c;运行lamp 编译安装php的时候发现要按天来算&#xff0c;于是用电脑vm下的Ubuntu系统运行arm的docker 然后打包到a直接导入运行就可以了 第一种方法 sudo apt install qemu-user-static 导入直接运行就可以了…

计算机网络一点事(22)

地址解析协议ARP ARP&#xff1a;查询Mac地址 ARP表&#xff08;ARP缓存&#xff09;&#xff1a;记录映射关系&#xff0c;一个数据结构&#xff0c;定期更新ARP表 过程&#xff1a;请求分组&#xff0c;响应分组 动态主机配置协议DHCP 分配IP地址&#xff0c;配置默认网关…

tomcat核心组件及原理概述

目录 1. tomcat概述 1.1 概念 1.2 官网地址 2. 基本使用 2.1下载 3. 整体架构 3.1 核心组件 3.2 从web.xml配置和模块对应角度 3.3 如何处理请求 4. 配置JVM参数 5. 附录 1. tomcat概述 1.1 概念 什么是tomcat Tomcat是一个开源、免费、轻量级的Web服务器。 Tomca…

科技快讯 | OpenAI首次向免费用户开放推理模型;特朗普与黄仁勋会面;雷军回应“10后小学生深情表白小米SU7”

不用开口&#xff1a;谷歌 AI 帮你致电商家&#xff0c;价格、预约一键搞定 谷歌在1月30日推出Search Labs中的“Ask for Me”实验性功能&#xff0c;用户可利用AI代替自己致电商家咨询价格和服务。该功能已与美汽车修理厂和美甲沙龙店合作&#xff0c;用户需加入Search Labs并…

帆软 FCA -业务分析师认证学习

帆软 FCA -业务分析师认证学习 认证概述 适合人群 企业中有需求管理、指标梳理、业务逻辑梳理、项目规划等需求的人员&#xff0c;想提升综合数据能力、推进数据应用落地的业务/IT骨干。 具体-FCA-业务分析理论 考试要求&#xff1a; FCA-业务分析理论考试- 费用&#xff1a…

Vue.js路由管理与自定义指令深度剖析

Vue.js 是一个强大的前端框架,提供了丰富的功能来帮助开发者构建复杂的单页应用(SPA)。本文将详细介绍 Vue.js 中的自定义指令和路由管理及导航守卫。通过这些功能,你可以更好地控制视图行为和应用导航,从而提升用户体验和开发效率。 1 自定义指令详解 1.1 什么是自定义…

Maya软件安装步骤与百度网盘链接

软件简介&#xff1a; MAYA软件是Autodesk旗下的著名三维建模和动画软件。maya软件功能更为强大&#xff0c;体系更为完善&#xff0c;因此国内很多的三维动画制作人员都开始转向maya&#xff0c;maya软件已成为三维动画软件的主流。 百度网盘链接: https://pan.baidu.com/s…