[CentOS-devel] problem about customizing CentOS

Tue Nov 20 03:51:19 UTC 2007
Hao Xu <hxunix at gmail.com>

Hi!

I was trying to build a customized CentOS 5 with all the update rpms
integrated, on a CentOS 5 box. I have installed anaconda,
anaconda-runtime, bogl, booty, netpbm, netpbm-progs and mkisofs in the
building box. The CentOS 5 installation of the building box is fully
updated.


The following is what I did:

1) Create repo data
# createrepo -g comps.xml -c /tmp /centos/5-respin/os/i386/CentOS

Repo data was generated all right.

2) buildinstall

# /usr/lib/anaconda-runtime/buildinstall --pkgorder os/i386/pkgorder.txt \
--version 5 --product CentOS --release CentOS-5-respin \
--prodpath CentOS /centos/5-respin/os/i386 >/tmp/buildinstall.err 2>&1

Here's the output of buildinstall:

Running buildinstall...
/centos/5-respin/os/i386/buildinstall.tree.4822 /centos/5-respin
/centos/5-respin
Building images...
Assembling package list...
Expanding text packages...
Expanding graphical packages...
retrieving timezones
Creating nsswitch.conf
Creating libuser.conf
Fixing up /etc/man.config to point into /mnt/sysimage
Running mkfontdir...
Creating SELinux policy...
Getting pango modules
Getting gtk2 input method modules
Getting gtk2 gdk-pixbuf loaders
Scrubbing trees... /tmp/treedir.4822/image-template
ARCH=x86_64
BASH=/bin/bash
BASH_ARGC=([0]="1")
BASH_ARGV=([0]="/tmp/treedir.4822/image-template")
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/tmp/treedir.4822/image-template/usr/lib/anaconda-runtime/scrubtree")
BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release"
[5]="x86_64-redhat-linux-gnu")
BASH_VERSION='3.1.17(1)-release'
COLORTERM=gnome-terminal
CVS_RSH=ssh
DEBUG=
DIRSTACK=()
DISPLAY=localhost:11.0
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HOME=/root
HOSTNAME=centos5-64.in.linx
HOSTTYPE=x86_64
IFS=$' \t\n'
KDEDIR=/usr
KDE_IS_PRELINKED=1
KDE_NO_IPV6=1
LANG=zh_CN.UTF-8
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LIBDIR=lib64
LOGNAME=root
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/mail/root
OLDPWD=/centos/5-respin
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PIPESTATUS=([0]="0")
PPID=4834
PS4='+ '
PWD=/tmp/treedir.4822/image-template/usr/bin
PYTHONPATH=/usr/lib/anaconda
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=5
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SSH_AUTH_SOCK=/tmp/ssh-vfqlfC2592/agent.2592
SSH_CLIENT='172.16.0.102 47665 22'
SSH_CONNECTION='172.16.0.102 47665 172.16.0.14 22'
STRIP=strip
TERM=xterm
UID=0
USER=root
WINDOWID=52428884
_=/tmp/treedir.4822/image-template/usr/bin
p=/tmp/treedir.4822/image-template
Scrubbing trees... /tmp/treedir.4822/instimage
ARCH=x86_64
BASH=/bin/bash
BASH_ARGC=([0]="1")
BASH_ARGV=([0]="/tmp/treedir.4822/instimage")
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/scrubtree")
BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release"
[5]="x86_64-redhat-linux-gnu")
BASH_VERSION='3.1.17(1)-release'
COLORTERM=gnome-terminal
CVS_RSH=ssh
DEBUG=
DIRSTACK=()
DISPLAY=localhost:11.0
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HOME=/root
HOSTNAME=centos5-64.in.linx
HOSTTYPE=x86_64
IFS=$' \t\n'
KDEDIR=/usr
KDE_IS_PRELINKED=1
KDE_NO_IPV6=1
LANG=zh_CN.UTF-8
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LIBDIR=lib64
LOGNAME=root
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/mail/root
OLDPWD=/centos/5-respin
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PIPESTATUS=([0]="0")
PPID=4834
PS4='+ '
PWD=/tmp/treedir.4822/instimage/usr/bin
PYTHONPATH=/usr/lib/anaconda
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=5
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SSH_AUTH_SOCK=/tmp/ssh-vfqlfC2592/agent.2592
SSH_CLIENT='172.16.0.102 47665 22'
SSH_CONNECTION='172.16.0.102 47665 172.16.0.14 22'
STRIP=strip
TERM=xterm
UID=0
USER=root
WINDOWID=52428884
_=/tmp/treedir.4822/instimage/usr/bin
p=/tmp/treedir.4822/instimage
Compressing .mo files in stage2 images...
Creating fontconfig cache
Creating debug dir
Patching python library...
/centos/5-respin
Cleaning ramdisk install images...
Creating repository metadata...
Error: groupfile /centos/5-respin/os/i386/CentOS/base/comps.xml cannot
be found.

createrepo [options] directory-of-packages

Options:
-u, --baseurl <url> = optional base url location for all files
-o, --outputdir <dir> = optional directory to output to
-x, --exclude = files globs to exclude, can be specified multiple times
-q, --quiet = run quietly
-g, --groupfile <filename> to point to for group information (precreated)
(<filename> relative to directory-of-packages)
-v, --verbose = run verbosely
-c, --cachedir <dir> = specify which dir to use for the checksum cache
-U, --update-info-location <url> = acquire package update metadata
-h, --help = show this help
-V, --version = output version
-p, --pretty = output xml files in pretty format.

Getting package order...
PYTHONPATH=/tmp/treedir.4822/instimage/usr/lib/anaconda
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/pkgorder
/centos/5-respin/os/i386 i386 CentOS
Traceback (most recent call last):
File "/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/pkgorder",
line 33, in ?
from yuminstall import YumSorter
File "/tmp/treedir.4822/instimage/usr/lib/anaconda/yuminstall.py", line
29, in ?
from packages import recreateInitrd
File "/tmp/treedir.4822/instimage/usr/lib/anaconda/packages.py", line
19, in ?
import iutil
File "/tmp/treedir.4822/instimage/usr/lib/anaconda/iutil.py", line 16, in ?
import os, isys, string, stat
File "/tmp/treedir.4822/instimage/usr/lib/anaconda/isys.py", line 18, in ?
import _isys
ImportError: /tmp/treedir.4822/instimage/usr/lib/anaconda/_isys.so:
wrong ELF class: ELFCLASS32
Making images...
Found keymap override, using it
cannot find package kernel in path /centos/5-respin/os/i386/CentOS
No i586 kernel, trying i686...
unpacking
/centos/5-respin/os/i386/CentOS/kernel-2.6.18-8.1.15.el5.i686.rpm.i686
Building initrd.img
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 261:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 261:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 247:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/moddeps: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 247:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/moddeps: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 314:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
Wrote /tmp/makebootdisk.initrdimage.16060 (2468k compressed)
Building isolinux directory
mkdir: cannot create directory `/centos/5-respin/os/i386/isolinux': File
exists
192000 pixels, 68078 bytes, (29.09% compression)
mkdosfs 2.11 (12 Mar 2005)
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images.x86: line 104:
/tmp/treedir.4822/instimage/usr/lib/syslinux/syslinux-nomtools: No such
file or directory
unpacking
/centos/5-respin/os/i386/CentOS/kernel-xen-2.6.18-8.1.15.el5.i686.rpm.i686
Building i686 guest initrd.img
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 261:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 261:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 247:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/moddeps: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 247:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/moddeps: No such
file or directory
/centos/5-respin/os/i386/buildinstall.tree.4822/mk-images: line 314:
/tmp/treedir.4822/instimage/usr/lib/anaconda-runtime/modlist: No such
file or directory
Wrote /tmp/makebootdisk.initrdimage.16060 (2464k compressed)
Building minstg.img
Running mksquashfs /tmp/instimage.dir.16060 /tmp/minstg2.img -all-root
-no-fragments
Creating little endian 3.0 filesystem on /tmp/minstg2.img.16060, block
size 65536.

Little endian filesystem, data block size 65536, compressed data,
compressed metadata, no fragments
Filesystem size 31412.76 Kbytes (30.68 Mbytes)
23.25% of uncompressed filesystem size (135115.62 Kbytes)
Inode table size 63765 bytes (62.27 Kbytes)
32.46% of uncompressed inode table size (196455 bytes)
Directory table size 55988 bytes (54.68 Kbytes)
35.24% of uncompressed directory table size (158895 bytes)
Number of duplicate files found 38
Number of inodes 5583
Number of files 3742
Number of symbolic links 831
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1010
Number of uids 1
root (0)
Number of gids 0
Wrote /centos/5-respin/os/i386/images/minstg2.img (31416k)...
Building stage2.img
Running mksquashfs /tmp/treedir.4822/instimage /tmp/instimage.img.16060
-all-root -no-fragments
Creating little endian 3.0 filesystem on /tmp/instimage.img.16060, block
size 65536.

Little endian filesystem, data block size 65536, compressed data,
compressed metadata, no fragments
Filesystem size 85468.17 Kbytes (83.47 Mbytes)
36.42% of uncompressed filesystem size (234681.76 Kbytes)
Inode table size 92126 bytes (89.97 Kbytes)
32.88% of uncompressed inode table size (280210 bytes)
Directory table size 72823 bytes (71.12 Kbytes)
46.30% of uncompressed directory table size (157287 bytes)
Number of duplicate files found 87
Number of inodes 7743
Number of files 4819
Number of symbolic links 2336
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 588
Number of uids 1
root (0)
Number of gids 0
Wrote /centos/5-respin/os/i386/images/stage2.img (85472k)
Writing .discinfo file
timestamp not specified; using the current time


I have four questions:
1) why createrepo is called by buildinstall? Do I need to run createrepo
seperately?
2) why buildinstall is still looking for comps.xml in the CentOS/base
directory?
3) why is the pkgorder error?
4) why buildinstall is complaining that cannot find modlist and moddeps?



Here's the images generated:

-rw-r--r-- 1 root root 4.7M 11-20 11:39 boot.iso
-rw-r--r-- 1 root root 12M 11-20 11:39 diskboot.img
-rw-r--r-- 1 root root 31M 11-20 11:40 minstg2.img
drwxr-xr-x 2 root root 4.0K 11-20 11:39 pxeboot
-rw-r--r-- 1 root root 650 11-20 11:39 README
-rw-r--r-- 1 root root 84M 11-20 11:41 stage2.img
drwxr-xr-x 2 root root 4.0K 11-20 11:39 xen

The sizes of the images are OK execpt the boot.iso, as the size of the
official one is 7M.


Thank you!