buildinstall脚本从配置文件中指定的yum源下载最新的anaconda包,然后执行里面的4个脚本(即并不执行本地的脚本):
- upd-instroot :下载安装过程必须的用到的包和文件到一个根目录
- maketreeinfo.py:生成.treeinfo文件
- mk-images:生成images
- makestamp.py:生成.discinfo
/tmp/buildinstall.tree.e4pMk9/upd-instroot --arch i686 --imgdir /tmp/treedir.CJgWma/install /tmp/yum.conf.pimgER
/tmp/buildinstall.tree.e4pMk9/maketreeinfo.py --family=Fedora --version=20120319 --arch=i386 --outfile=/root/working/buildinstall/os/.treeinfo
/tmp/buildinstall.tree.e4pMk9/mk-images --imgdir /tmp/treedir.CJgWma/install --arch i386 --product Fedora --version 20120319 --output /root/working/buildinstall/os /tmp/yum.conf.pimgER
/tmp/buildinstall.tree.e4pMk9/makestamp.py --releasestr=Fedora 20120319 --arch=i386 --discNum=ALL --outfile=/root/working/buildinstall/os/.discinfo
注:buildinstall脚本中有--localscripts参数,可强制执行本地脚本,方便调试;
yum.conf.pimgER 是buildinstall脚本生成的一个yum repo文件:
[main]
cachedir=/tmp/yumcache.EqYk83
keepcache=0
gpgcheck=0
plugins=0
reposdir=
tsflags=nodocs
[anacondarepo]
name=anaconda repo
baseurl=http://10.3.4.211/resrc/repo/fedora/releases/13/Everything/i386/os/
enabled=1
以下脚本可实现和buildinstall相同的功能:
#!/bin/bash
# clean all
rm -rf os instroot
DIR=/usr/lib/anaconda-runtime
INSTROOT=`pwd`/instroot
DEST=`pwd`/os
YUMCONF=`pwd`/yum.conf
PRODUCT=Fedora
DATE=`date "+%Y%m%d"`
mkdir -pv $DEST
export brandpkgname=fedora # *-logos,*-release
$DIR/upd-instroot --arch i686 --imgdir $INSTROOT $YUMCONF
touch $DEST/.treeinfo
$DIR/maketreeinfo.py --family=$PRODUCT --version=20120319 --arch=i386 --outfile=$DEST/.treeinfo
$DIR/mk-images --imgdir $INSTROOT --arch i386 --product $PRODUCT --version $DATE --output $DEST $YUMCONF
$DIR/makestamp.py --releasestr="$PRODUCT $DATE" --arch=i386 --discNum=ALL --outfile=$DEST/.discinfo
rm -f grub*.rpm awk # ???