制作自己的CentOS ISO

Centos6.3官方的DVD包过于庞大,里面集成了大量软件,但其中有许多软件在生产环境中根本用不上,冗余安装只会造成资源的浪费,本文档主要介绍了一个系统定制的基本方法,并特别指出在系统定制中会出现的一些严重问题,如果这些问题不注意,很有可能在很多情况下前功尽弃。

基于centos6.3的定制,可以集成了lnmp环境,和一些系统监控软件,以前安装系统加lnmp环境都是用安装脚本安装,源码安装需要太久时间,特别是php的编译时间太久,所以在定制系统的时候,需要把一些源码软件包打包制作成rpm包,所以在文档开始部分将介绍rpm包的制作流程。

1、RPM的概述及用途

1)RPM包管理工具(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型

xxx-version.rpm --redhat suse....
xxx-veriosn.deb --debian/ubuntu

2)RPM包管理具体的用途;

1、快速安装、删除、升级和管理软件,也支持在线安装和升级软件;

2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;

3、可以在查询系统中的软件包是否安装以及其版本;

4、作为开发者可以把自己的程序打包为RPM包发布,减少软件安装前的配置及编译所花耗的时间;

5、软件包签名GPG和MD5的导入、验证和签名发布,防止软件被篡改。

6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

3 ) RPM打包需要注意的地方

为了自己打的rpm包能在其他系统正常使用,系统环境一致是必须的,当然你在centos6.3 上打包的软件在某些情况也能正常在centos6.4上面安装使用,但不推荐这么做,包装宿主系统一致性,是rpm安装的基本条件,另外,rpm包最难解决的是依赖问题,没错。rpm包能通过yum安装,并自动检查依赖关系,但有个问题,比如你打包nginx的时候依赖于gd库,打包的时候通过网络yum源安装了一个gd包,但在宿主系统安装的时候,也许没有网络,但光盘里面有gd包,也许你可以通过关盘安装gd库。但你不能保证gd库的版本和之前打包nginx的时候是一样的。一般来说光盘里面的gd库大部分都比网络yum源的版本要低,所以并不能保证nginx的正常使用,因为我们都不知道gd库的升级到底升级了些什么东西。我们的解决办法是在打包的时候,记下来打包的时候他的打包需要依赖一些什么包,在并把这些包download下来。在宿主系统安装这些包,当然这些包本身也有依赖关系。所以你得一层层找出所有依赖关系,并依此安装。

 2 、rpm包制作过程

1. 安装工具

yum –y install rpm-build

2. 创建目录

3. 打包目录介绍

    BUILD--源码解压目录
    RPMS--RPM包(成品)
    SOURCES--源码的目录(tar.gz)
    SPECS--xx.spec(makefile)
    SRPMS--src.rpm=xx.spec+tar.gz(我们并不使用)
    BUILDROOT             -- rpm打包安装临时目录,rpm打包过程相当于安装,只是安装路径会在本目录,而不会去系统目录。

4. spec文件实例

mkdir -p $HOME/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}

虽然很多文档不推荐使用root用户打包rpm包,但为了方便我们还是使用了root账号,只要打包的时候注意哈,还是不会出问题的。

5 . 开始打包

在SPECS目录执行 rpmbuild –bb nginx.spec ,同时记下来安装过程所提示需要安装的包。这个命令会按照我们的spec 指定的方式编译软件并且会在/root/rpmbuild/RPMS/x86_64/ 目录生成对应的rpm包,这个rpm包默认会记录在这个软件编译过程中会依赖于哪些其他软件,再次强调,如果你打包的时候和你安装的时候环境不一样,一定要注意在安装rpm之前手动安装好依赖,解决可能会出现的版本过低的问题。

6. 开始定制iso

1、 上centos 网站下载一个完整的centos光盘,并在虚拟机上挂载到/mnt 目录

Mount  –o loop  /dev/cdrom /mnt

2、  copy 光盘文件到定制iso目录,这个拷贝主要是光盘挂载目录不可写问题,所以必须拷贝出来

mkdir /iso

cp /mnt/* /iso

上面的拷贝默认是不拷贝隐藏文件的,所以关盘的根目录有两个隐藏文件,所以必须手动拷贝过来,具体这里就不说了。

3  创建自己软件的目录

 mkdir /iso/lnmp
cp  /root/rpmbuild/RPMS/x86_64/* /iso/lnmp

4 修改/iso/isolinux/ 目录下的文件

注意我们引用了一个*.cfg 的文件,这个文件则是我们定制系统的关键所在,

这个文件将以附件的形式存在!

5第一次打包

cd /iso
mkisofs  -o  gzyouai_centos_6.4.iso   -b  isolinux/isolinux.bin  -c  isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ./

6 安装第一次打包系统

7 记录安装好的系统的install.log 文件

里面有这次安装装了哪些软件,里面的内容需要手动添加.rpm 后缀,而且还有一些特殊的行需要删除,拷贝这个文件到打包系统,想办法踢出/iso/Packages/ 中无用的软件包!把无用的软件包删除。

cd /iso/Packages/

createrepo ./

按照第五步 重新打包并安装。这样系统才会不那么臃肿。

时间: 2024-12-07 09:07:51

制作自己的CentOS ISO的相关文章

CentOS ISO版本区别

CentOS6 CentOS7 介绍 区别 bin-DVD.iso bin-DVD.iso 系统标准安装包 bin DVD本身包含了软件,不需要依赖于网络经行安装. bin-DVD2.iso Everything-1511.iso 对完整版安装盘的软件进行补充,集成所有软件.   LiveDVD.iso   这是CentOS实时映像,旨在刻录到CD上.然后使用该CD启动计算机.     LiveGNOME-1511.iso   GNOME桌面版   LiveKDE-1511.iso   KDE桌

Docker 从零开始制作基础镜像[centos]

http://www.oschina.net/news/62897/docker-hub-contains-high-risk-vulnerabilities 这里有个统计,docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,那我们如何自己从头开始做个定制的镜像呢? 对,找官方文档 http://docs.docker.com/articles/baseimages/,这里说明的很清楚了 试验如下:在centos7机器上做centos镜像 直接参考这个脚本 https://raw.gi

初涉定制linux系统之——自动化安装Centos系统镜像制作

最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建O__O "….. 本来想法是打算把需要的依赖包全找出来打包发给实施人员自己安装去,后来考虑到系统安装人员的安装方式不一致,分区及安装包的不统一会对之后的维护造成负担,干脆就决定做个自动化安装的镜像,并把需要的业务依赖包全打包进去 ok,首先我们来看看环境准备: 1.一台刚安装好的.符合业务要求的系统(博主选择的是minimal

linux 制作iso文件

1 概述 为了日常工作方便,我们可以自己制作iso文件,方便后期的使用 2 操作 2.1.cp直接制作 格式如下 cp  光盘路径  新生成的iso文件路径 例子 cp /dev/sr0  ./tt1/CentOS6.iso 这样的方式相当于是刻录磁盘,生成的文件CentOS6.iso 可以做启动盘 2.2 借助脚本mkdvdiso.sh来制作 以下是mkdvdiso.sh这个脚本下载路径.这个脚本只能是centOS4,5,6,三个版本可以制作 https://wiki.centos.org/T

centos启动流程以及kickstart及引导镜像制作

1.centos安装启动过程中其实 通过安装程序anaconda来进行(仅针对centos系统,用到的是anaconda程序来安装),anaconda运行在OS上,此时OS还没安装,那是anaconda是怎么运行的呢?其实init启动后,anaconda程序就运行了,前期其实就是:光盘上的bootloader --> 光盘上指定的配置好的vmlinuz, initrd.img --> 完成后直接运行anaconda. 2.anaconda的安装        1.anaconda把安装过程分成

U盘在电脑上安装CentOS 7 系统过程详解

U盘制作CentOS系统启动盘 在电脑上下载并安装UltraISO软件,如百度云:http://pan.baidu.com/s/1hrGtvEG 打开UltraISO软件,找到CentOS.iso的映像文件,点击<启用>,选择<写入硬盘映像...> 硬盘驱动器,选择U盘,勾选<刻录校验>,确保数据完整写到了U盘上去: 接下来选择"是",耐心等候,知道出现这样<刻录成功!>的提示,CentOS系统启用盘就制作顺利完成了! 2.   安装Ce

引导镜像实现CentOS半自动化安装

本实验在生产环境中现在已经用不到了,因为已经有更高级的自动化安装软件来取代了本次实验,所以只是为了能从低层更了解Linux的安装,从而做了本次实验,加深与理解当前所学的知识. 先看一下拓扑图吧! 简单的解释一下拓扑图,先在服务器端开启http服务,在http默认目录下创建两个目录分别是ks.x86_64,并把光盘镜像挂载至/var/www/html/x86_64目录下,把已经制作好的ks.cfg文件复制至/var/www/html/ks目录中:在服务器端制作isolinux用于引导启动客户端(其

如何装双系统详细步骤:以win10+centos为例

我整合了网上许多装双系统的方法,同时对各种网上版本会出现的问题进行了总结,图片来自网上,允许我偷一下懒,哈哈... 假设电脑上已经装好win10系统:步骤如下: 第一部分:制作u盘启动盘 第一步:下载centos的iso文件,可以去官网下载: 第二步:下载UltraISO(软碟通)软件到电脑上,并安装好,可以先试用或者网上找个注册码注册一下: 第三步:点击菜单栏的“打开”按钮(如下图): 第四步:找到下载好的 centOS ISO镜像文件,选定该文件打开,如下图: 第五步:看下图: 第六步:确认

为Linux手动制作U盘启动及基本原理

制作成功后的基本最简目录文件图 一.系统的基本引导流程: 首先系统要引导isolinux.bin可执行程序,此程序是移动介质上引导用的,isolinux.bin运行成功后会加载其配置文件syslinux.cfg,该文件中定义了vmlinuz和initrd.img的调用方式.vmlinuz是vmlinux的压缩版,二者都是linux内核.isolinux.bin根据其配置方式中定义的initrd.img的参数传给vmlinuz即Linux内核并加载内核,然后Linux内核会根据获得的initrd.