定制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,一经查实,立即删除!

相关文章

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

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

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

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

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

目录 一、实验目的 二、实验环境 三、实验内容 四、核心代码 五、记录与处理 六、思考与总结 七、完整报告和成果文件提取链接 一、实验目的 掌握分支界限求解问题的思想&#xff1b;针对不同的问题&#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;…

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…

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

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

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

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

深入理解linux中的文件(上)

1.前置知识&#xff1a; &#xff08;1&#xff09;文章 内容 属性 &#xff08;2&#xff09;访问文件之前&#xff0c;都必须打开它&#xff08;打开文件&#xff0c;等价于把文件加载到内存中&#xff09; 如果不打开文件&#xff0c;文件就在磁盘中 &#xff08;3&…

一个用于测试的 HL7 Server

说明 一个用于测试的 HL7 Server。在过NIST的认证时&#xff0c;需要演示检验数据通过HL7进行传输&#xff0c;所以写了这工具。 HL7的消息解析和编码使用了NHapi。包含两个服务&#xff1a; ReceiveServiceSendService 这2个服务都继承自 BaseService public class BaseSe…

洛谷题目 P5994 [PA 2014] Kuglarz 题解 (本题较难)

题目传送门&#xff1a; P5994 [PA 2014] Kuglarz - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前言&#xff1a; 本题涉及到最小生成树中的 kruskal 算法和并查集算法&#xff0c;图论基础概念两大知识点&#xff0c;瞎按对莱索没有学过图论的或最小生成树的可能会对这道…

消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)

一、OSI参考模型&#xff08;Open Systems Interconnection Model&#xff09; OSI参考模型是一个用于描述和标准化网络通信功能的七层框架。它由国际标准化组织&#xff08;ISO&#xff09;提出&#xff0c;旨在为不同的网络设备和协议提供一个通用的语言和结构&#xff0c;以…

C# Winform制作一个登录系统

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 登录 {p…

记一次STM32编译生成BIN文件过大的问题(基于STM32CubeIDE)

文章目录 问题描述解决方法更多拓展 问题描述 最近在一个项目中使用了 STM32H743 单片机&#xff08;基于 STM32CubeIDE GCC 开发&#xff09;&#xff0c;它的内存分为了 DTCMRAM RAM_D1 RAM_D2 …等很多部分。其中 DTCM 的速度是比通常的内存要快的&#xff0c;缺点是不支持…

996引擎 -地图-添加安全区

996引擎 -地图-添加安全区 文件位置配置 cfg_startpoint.xls特效效果1345参考资料文件位置 文件位置服务端D:\996M2-lua\MirServer-lua\Mir200客户端D:\996M2-lua\996M2_debug\dev配置 cfg_startpoint.xls 服务端\Mir200\Envir\DATA\cfg_startpoint.xls 填歪了也有可能只画一…

【leetcode强化练习·二叉树】同时运用两种思维解题

本文参考labuladong算法笔记[【强化练习】同时运用两种思维解题 | labuladong 的算法笔记] 有的题目可以同时用「遍历」和「分解问题」两种思路来解&#xff0c;你可以利用这些题目训练自己的思维。 559. N 叉树的最大深度 | 力扣 | LeetCode | 给定一个 N 叉树&#xff0c;…

栈和队列特别篇:栈和队列的经典算法问题

图均为手绘,代码基于vs2022实现 系列文章目录 数据结构初探: 顺序表 数据结构初探:链表之单链表篇 数据结构初探:链表之双向链表篇 链表特别篇:链表经典算法问题 数据结构:栈篇 数据结构:队列篇 文章目录 系列文章目录前言一.有效的括号(leetcode 20)二.用队列实现栈(leetcode…

ios swift画中画技术尝试

继上篇&#xff1a;iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画&#xff0c;起初是看到后台模式里有一个picture in picture&#xff0c;去了解了后发现这个就是小窗口视频播放&#xff0c;方便用户执行多任务。看小窗口视频的同时&#xff0c;可以作其他的事情…

人生不止于职业发展

0 你的问题&#xff0c;我知道&#xff01; 工作意义是啥&#xff1f;职业发展在人生啥角色&#xff1f; 1 工作意义 农村人努力学习考上大学&#xff0c;得好工作&#xff0c;为逃离同村同龄人十几岁就工厂打工命运&#xff0c;过不凡人生&#xff0c;实现改命的唯一途径。…