Kickstart
安装好的系统默认在root/目录下生成anaconda-ks.cfg文件
安装包部分
%packages
@^minimal
@core
chrony
%end@后跟安装包组名(id字段),安装包组可自定义
也可以在该段直接声明您需要安装的包名
(可直接加*号代替全部)会将Packages目录下的所有rpm包安装到新的系统中
XML文件
文件名称:$hexstring-comps.xml在镜像的repodata文件夹下
createrepo命令利用该文件在当前目录下生成repodata/文件夹
createrepo -g $hexstring-comps.xml .组列表
<group>
<id>group</id>
<name>Group</name>
<default>true</default>
<uservisible>false</uservisible>
<description>Create a group</description>
<packagelist>
<packagereq type="mandatory">bash</packagereq>
<packagereq type="default">cpio</packagereq>
</packagelist>
</group>id:组的id仅仅是在comps.xml文件中作为该组的一个标识,这是必须的;
name:表示用户可以看到的组的名字,它也是必须的;
default:它表示在系统安装过程中,当选择定制(custom)安装时,该组是否在缺省情况下被选中。如果没有说明,则缺省情况下为不选中。
uservisible:它表示该组在缺省情况下是否在安装时可以看到,如果没有说明,缺省设置为YES,为可以看到。
description:它表示对该组进行简短的描述,这是必须的;
packagelist:它说明在该组内的一系列安装包,这也是必须的。
packagereq:包名
type:对于安装包的一些属性
mandatory 强制安装
- default 缺省安装
- optional 可选安装
RPM包
<package>
<name>bash</name>
<dependencylist>
<dependency>mktemp</dependency>
<dependency>bash</dependency>
<dependency>glibc</dependency>
<dependency>libtermcap</dependency>
</dependencylist>
</package>- name:它指的是RPM包名,是必须的。
- dependencylist:它说明此包对应的依赖的RPM包。
- dependency:此包需要的包的名字
将xml文件修改内容需要添加在标签的上方,之后使用createrepo命令生成repodata文件夹
即完成了我们自定义组的全部步骤可以在kickstart文件中使用@引用自定义的组名(id字段)
生成xml
为了方便定制 使用下面的脚本来自动生成我们需要的xml文件
sh ***.sh rpmdir idname脚本内容如下
#!/usr/bin/bash
# $1 -> rpmdir $2 -> id
set -e
array=()
i=1
#change dir to destdir
cd `pwd`/$1
fakexml=`ls`
#seperate string
for element in $fakexml
do
temp=`echo $element`
array[$i]=`echo ${temp%-[0-9].*[0-9].*.rpm}`
i=`expr $i + 1`
done
STRING+=" <group>\n"
STRING+=" <id>$2</id>\n"
STRING+=" <name>$2</name>\n"
STRING+=" <default>true</default>\n"
STRING+=" <packagelist>\n"
i=0
size=${#array[@]} #the number of packages
while [ $i -lt $size ]
do
STRING+=" <packagereq type=\"default\">"${array[$i]}"</packagereq>\n"
i=`expr $i + 1`
done
STRING+=" </packagelist>\n"
STRING+=" </group>\n"
echo -ne $STRING > create.xml
exit 0
参考文档
版权声明:本文为code__L原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。