|
|
最近一直有一个想法,打算开始定制基于debian的发行版,只是水平有限,实在不知从何处着手。google之后,参照
http://wiki.debian.org/Simple-CDD/Howto
这个页面上的方法去做,总是不成功,出现错误,还希望高手能指点一下,谢谢。
simple-cdd: distclean
echo "Cleaning the binary build directory"
Cleaning the binary build directory
rm -rf /root/etch-simple-cdd/tmp//etch-i386
rm -rf /root/etch-simple-cdd/tmp//apt//etch-i386
echo "Cleaning the source build directory"
Cleaning the source build directory
rm -rf /root/etch-simple-cdd/tmp//etch-src
simple-cdd: status
mkdir -p /root/etch-simple-cdd/images/
mkdir -p /root/etch-simple-cdd/tmp//etch-i386
mkdir -p /root/etch-simple-cdd/tmp//etch-src
mkdir -p /root/etch-simple-cdd/tmp//apt//etch-i386
mkdir -p /root/etch-simple-cdd/tmp//apt//etch-i386/apt-ftparchive-db
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/data/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/data/sid ; \
fi
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ; \
fi
Generating a fake status file for apt-get and apt-cache...
if [ "2" = "1" -o "2" = "2" ];then \
:> /root/etch-simple-cdd/tmp//apt//etch-i386/status ; \
else \
zcat /root/etch-simple-cdd/mirror//dists/etch/main/binary-i386/Packages.gz | \
perl -000 -ne 's/^(Package: .*)$/$1\nStatus: install ok installed/m; \
print if (/^Priority: (required|important|standard)/m or \
/^Section: base/m);' \
> /root/etch-simple-cdd/tmp//apt//etch-i386/status ; \
fi
# Updating the apt database
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection update
忽略 file: etch Release.gpg
获取:1 file: etch Release [511B]
忽略 file: etch/main Packages
忽略 file: etch/main/debian-installer Packages
正在读取软件包列表...
#
# Checking the consistence of the standard system
# If this does fail, then launch make correctstatus
#
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection check || make correctstatus
正在读取软件包列表...
正在分析软件包的依赖关系树...
simple-cdd: bin-list
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/data/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/data/sid ; \
fi
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ; \
fi
Apt-get is updating his files ...
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection update
忽略 file: etch Release.gpg
获取:1 file: etch Release [511B]
忽略 file: etch/main Packages
忽略 file: etch/main/debian-installer Packages
正在读取软件包列表...
/bin/echo -e "mawk\nunifont\npptp-linux" >>/root/etch-simple-cdd/tmp//etch-i386/rawlist
if [ _2 != _1 ]; then \
mkdir -p /root/etch-simple-cdd/tmp/; \
debootstrap --arch i386 --print-debs etch /root/etch-simple-cdd/tmp//debootstrap.tmp file:/root/etch-simple-cdd/mirror/ \
| tr ' ' '\n' >>/root/etch-simple-cdd/tmp//etch-i386/rawlist; \
rm -rf /root/etch-simple-cdd/tmp//debootstrap.tmp; \
fi
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: update-inetd
I: Deleting target directory
perl -npe 's/\@ARCH\@/i386/g' /root/etch-simple-cdd/tmp//simple-cdd.task | \
cpp -nostdinc -nostdinc++ -P -undef -D ARCH=i386 -D ARCH_i386 \
-U i386 -U i386 -U linux -U unix \
-DFORCENONUSONCD1=0 \
-I /root/etch-simple-cdd/tmp//debian-cd/tasks -I /root/etch-simple-cdd/tmp//etch-i386 - - >> /root/etch-simple-cdd/tmp//etch-i386/rawlist
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
Generating the complete list of packages to be included ...
perl -ne 'chomp; next if /^\s*$/; \
print "$_\n" if not $seen{$_}; $seen{$_}++;' \
/root/etch-simple-cdd/tmp//etch-i386/rawlist \
> /root/etch-simple-cdd/tmp//etch-i386/list
if [ -n "" ]; then \
perl -npe 's/\@ARCH\@/i386/g' | \
cpp -nostdinc -nostdinc++ -P -undef -D ARCH=i386 -D ARCH_i386 \
-U i386 -U i386 -U linux -U unix \
-DFORCENONUSONCD1=0 \
-I /root/etch-simple-cdd/tmp//debian-cd/tasks -I /root/etch-simple-cdd/tmp//etch-i386 - - >> /root/etch-simple-cdd/tmp//etch-i386/rawlist-exclude; \
else \
echo > /root/etch-simple-cdd/tmp//etch-i386/rawlist-exclude; \
fi
Generating the complete list of packages to be removed ...
perl -ne 'chomp; next if /^\s*$/; \
print "$_\n" if not $seen{$_}; $seen{$_}++;' \
/root/etch-simple-cdd/tmp//etch-i386/rawlist-exclude \
> /root/etch-simple-cdd/tmp//etch-i386/list.exclude
Dispatching the packages on all the CDs ...
/root/etch-simple-cdd/tmp//debian-cd/tools/list2cds /root/etch-simple-cdd/tmp//etch-i386/list 838860800
======================================================================
Here are the settings you've chosen for making the list:
List of prefered packages: /root/etch-simple-cdd/tmp//etch-i386/list
Exclude file: /root/etch-simple-cdd/tmp//etch-i386/list.exclude
Complete selected packages with all the rest: no
Include non-free packages: no
Include non-US packages: no
======================================================================
Statistics:
Number of packages: 949
Number of excluded: 0 of 949
======================================================================
-- Generating dependencies tree with apt-cache depends...
-- Adding standard, required, important and base packages
on the first CD ...
Standard system already takes 0 bytes on the first CD.
-- Starting to add packages to the CDs ...
CD 1 will only be filled with 332822190 bytes ...
CD 1 will have 770 packages.
simple-cdd: bootable
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/data/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/data/sid ; \
fi
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ; \
fi
Apt-get is updating his files ...
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection update
忽略 file: etch Release.gpg
获取:1 file: etch Release [511B]
忽略 file: etch/main Packages
忽略 file: etch/main/debian-installer Packages
正在读取软件包列表...
Adding the required directories to the binary CDs ...
set -e; \
for i in /root/etch-simple-cdd/tmp//etch-i386/*.packages; do \
dir=${i%%.packages}; \
dir=${dir##/root/etch-simple-cdd/tmp//etch-i386/}; \
dir=/root/etch-simple-cdd/tmp//etch-i386/CD$dir; \
mkdir -p $dir; \
/root/etch-simple-cdd/tmp//debian-cd/tools/add_dirs $dir; \
done
Generating the binary CD labels and their volume ids ...
set -e; \
nb=`ls -l /root/etch-simple-cdd/tmp//etch-i386/?.packages /root/etch-simple-cdd/tmp//etch-i386/??.packages | wc -l | tr -d " "`; num=0;\
DATE=`date +%Y%m%d`; \
for i in /root/etch-simple-cdd/tmp//etch-i386/*.packages; do \
num=${i%%.packages}; num=${num##/root/etch-simple-cdd/tmp//etch-i386/}; \
dir=/root/etch-simple-cdd/tmp//etch-i386/CD$num; \
echo -n "Debian GNU/Linux 3.2 \"Etch\" - Unofficial i386 Binary-$num ($DATE)" | sed 's/_NONUS//g' > $dir/.disk/info; \
echo -n "Debian GNU/Linux 3.2 \"Etch\" - Unofficial i386 Binary-$num" | sed 's/_NONUS//g' > /root/etch-simple-cdd/tmp//etch-i386/$num.diskinfo; \
echo '#define DISKNAME ' "Debian GNU/Linux 3.2 \"Etch\" - Unofficial i386 Binary-$num" | sed 's/_NONUS//g' \
> $dir/README.diskdefines; \
echo '#define TYPE binary' \
>> $dir/README.diskdefines; \
echo '#define TYPEbinary 1' \
>> $dir/README.diskdefines; \
echo '#define ARCH ' i386 \
>> $dir/README.diskdefines; \
echo '#define ARCH'i386 ' 1' \
>> $dir/README.diskdefines; \
echo '#define DISKNUM ' $num | sed 's/_NONUS//g' \
>> $dir/README.diskdefines; \
echo '#define DISKNUM'$num ' 1' | sed 's/_NONUS//g' \
>> $dir/README.diskdefines; \
echo '#define TOTALNUM ' $nb \
>> $dir/README.diskdefines; \
echo '#define TOTALNUM'$nb ' 1' \
>> $dir/README.diskdefines; \
echo -n "Debian 3.2 i386 Bin-$num" > /root/etch-simple-cdd/tmp//etch-i386/${num}.volid; \
/root/etch-simple-cdd/tmp//debian-cd/tools/set_mkisofs_opts bin $num > /root/etch-simple-cdd/tmp//etch-i386/${num}.mkisofs_opts; \
done
ls: /root/etch-simple-cdd/tmp//etch-i386/??.packages: 没有那个文件或目录
Adding the documentation (bin) ...
set -e; \
for DISK in CD1 ; do \
/root/etch-simple-cdd/tmp//debian-cd/tools/add_files /root/etch-simple-cdd/tmp//etch-i386/$DISK /root/etch-simple-cdd/mirror/ doc; \
find /root/etch-simple-cdd/tmp//etch-i386/$DISK/doc -name "dedication-*" | \
grep -v EBVERSION | xargs rm -f; \
find /root/etch-simple-cdd/tmp//etch-i386/$DISK/doc -name "debian-keyring.tar.gz" | \
xargs rm -f; \
done
ch-basic_defs.en.html
ch-basic_defs.html
ch-compat.en.html
ch-compat.html
ch-contributing.en.html
ch-contributing.html
ch-customizing.en.html
ch-customizing.html
ch-faqinfo.en.html
ch-faqinfo.html
ch-ftparchives.en.html
ch-ftparchives.html
ch-getting.en.html
ch-getting.html
ch-kernel.en.html
ch-kernel.html
ch-nexttime.en.html
ch-nexttime.html
ch-pkg_basics.en.html
ch-pkg_basics.html
ch-pkgtools.en.html
ch-pkgtools.html
ch-redistrib.en.html
ch-redistrib.html
ch-software.en.html
ch-software.html
ch-support.en.html
ch-support.html
ch-uptodate.en.html
ch-uptodate.html
footnotes.en.html
footnotes.html
index.en.html
index.html
/root/etch-simple-cdd/tmp//debian-cd/tools/add-bin-doc # Common stuff for all disks
Adding install tools and documentation ...
set -e; \
for DISK in CD1 ; do \
/root/etch-simple-cdd/tmp//debian-cd/tools/add_files /root/etch-simple-cdd/tmp//etch-i386/$DISK /root/etch-simple-cdd/mirror/ tools ; \
mkdir /root/etch-simple-cdd/tmp//etch-i386/$DISK/install ; \
if [ -x "/root/etch-simple-cdd/tmp//debian-cd/tools/etch/installtools.sh" ]; then \
/root/etch-simple-cdd/tmp//debian-cd/tools/etch/installtools.sh /root/etch-simple-cdd/tmp//etch-i386/$DISK ; \
fi ; \
done
ERROR: package installlation-guide-i386 not found.
Making the binary CDs bootable ...
set -e; \
for file in /root/etch-simple-cdd/tmp//etch-i386/*.packages; do \
dir=${file%%.packages}; \
n=${dir##/root/etch-simple-cdd/tmp//etch-i386/}; \
dir=/root/etch-simple-cdd/tmp//etch-i386/CD$n; \
if [ -f /root/etch-simple-cdd/tmp//debian-cd/tools/boot/etch/boot-i386 ]; then \
cd /root/etch-simple-cdd/tmp//etch-i386; \
echo "Running tools/boot/etch/boot-i386 $n $dir" ; \
/root/etch-simple-cdd/tmp//debian-cd/tools/boot/etch/boot-i386 $n $dir; \
else \
if [ "${IGNORE_MISSING_BOOT_SCRIPT:-0}" = "0" ]; then \
echo "No script to make CDs bootable for i386 ..."; \
exit 1; \
fi; \
fi; \
done
Running tools/boot/etch/boot-i386 1 /root/etch-simple-cdd/tmp//etch-i386/CD1
Copying images from /root/etch-simple-cdd/mirror//dists/etch/main/installer-i386/current/images
Copying images from /root/etch-simple-cdd/mirror//dists/etch/main/installer-i386/current/images
Copying images from /root/etch-simple-cdd/mirror//dists/etch/main/installer-i386/current/images
Using ISOLINUX boot-disks image on CD1
/root/etch-simple-cdd/tmp//debian-cd/tools/boot/etch/boot-i386: line 187: /root/etch-simple-cdd/audi.png: 没有那个文件或目录
/root/etch-simple-cdd/tmp//debian-cd/tools/boot/etch/boot-i386: line 187: ppmquant: command not found
/root/etch-simple-cdd/tmp//debian-cd/tools/boot/etch/boot-i386: line 188: ppmtolss16: command not found
make: *** [/root/etch-simple-cdd/tmp//etch-i386/bootable-stamp] 错误 127
simple-cdd: packages
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/data/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/data/sid ; \
fi
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ; \
fi
Apt-get is updating his files ...
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection update
忽略 file: etch Release.gpg
获取:1 file: etch Release [511B]
忽略 file: etch/main Packages
忽略 file: etch/main/debian-installer Packages
正在读取软件包列表...
/root/etch-simple-cdd/tmp//debian-cd/tools/add_debs "/root/etch-simple-cdd/tmp//etch-i386" "/root/etch-simple-cdd/tmp/" "CD1 " "i386" "/root/etch-simple-cdd/tmp//simple-cdd.etch.base_include" "" "/root/etch-simple-cdd/tmp//debian-cd/data/etch/i386_netinst_udeb_include" "/root/etch-simple-cdd/tmp//debian-cd/data/etch/netinst_udeb_exclude" "/root/etch-simple-cdd/tmp//debian-cd/tools/add_packages" "/root/etch-simple-cdd/tmp//debian-cd/tools/scanpackages"
Current disk usage on the binary CDs (before the debs are added):
18 CD1
Adding the selected packages to each CD:
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: update-inetd
I: Deleting target directory
CD1 contains all packages needed by debootstrap
ERROR: Unable to read UDEB_EXCLUDE file /root/etch-simple-cdd/tmp//debian-cd/data/etch/netinst_udeb_exclude
1 ...
/root/etch-simple-cdd/tmp//etch-i386/CD1/dists/etch/main/binary-i386/Packages.gz
/root/etch-simple-cdd/tmp//etch-i386/CD1/dists/etch/main/debian-installer/binary-i386/Packages.gz
cp: 略过目录 “/root/etch-simple-cdd/mirror//indices/files”
done.
touch /root/etch-simple-cdd/tmp//etch-i386/packages-stamp
simple-cdd: extra files for simple-cdd
if [ -z "." -o -z "1" -o -z "/root/etch-simple-cdd/extras" ]; then \
echo "Give me more parameters (DIR, CD and ROOTSRC are required)."; \
false; \
fi
Adding dirs '.' from '/root/etch-simple-cdd/extras' to '/root/etch-simple-cdd/tmp//etch-i386/CD1' ...
/root/etch-simple-cdd/tmp//debian-cd/tools/add_files /root/etch-simple-cdd/tmp//etch-i386/CD1 /root/etch-simple-cdd/extras .
WARNING: missing optional packages from profile default: localization-config
simple-cdd: bin-image
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/data/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/data/sid ; \
fi
if [ ! -d /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ] ; then \
ln -s etch /root/etch-simple-cdd/tmp//debian-cd/tools/boot/sid ; \
fi
Apt-get is updating his files ...
/root/etch-simple-cdd/tmp//debian-cd/tools/apt-selection update
忽略 file: etch Release.gpg
获取:1 file: etch Release [511B]
忽略 file: etch/main Packages
忽略 file: etch/main/debian-installer Packages
正在读取软件包列表...
Generating etch-secured on all the binary CDs ...
set -e; \
for file in /root/etch-simple-cdd/tmp//etch-i386/*.packages; do \
dir=${file%%.packages}; \
n=${dir##/root/etch-simple-cdd/tmp//etch-i386/}; \
dir=/root/etch-simple-cdd/tmp//etch-i386/CD$n; \
cd $dir; \
/root/etch-simple-cdd/tmp//debian-cd/tools/add_secured; \
done
touch /root/etch-simple-cdd/tmp//etch-i386/secured-stamp
Generating md5sum of files from all the binary CDs ...
set -e; \
if [ "$FASTSUMS" != "1" ] ; then \
for file in /root/etch-simple-cdd/tmp//etch-i386/*.packages; do \
dir=${file%%.packages}; \
n=${dir##/root/etch-simple-cdd/tmp//etch-i386/}; \
dir=/root/etch-simple-cdd/tmp//etch-i386/CD$n; \
test -x "/root/etch-simple-cdd/tmp//debian-cd/tools/etch.hook" && cd /root/etch-simple-cdd/tmp//etch-i386 && /root/etch-simple-cdd/tmp//debian-cd/tools/etch.hook $n before-mkisofs; \
cd $dir; \
find . -follow -type f | grep -v "\./md5sum" | grep -v \
"dists/stable" | grep -v "dists/frozen" | \
grep -v "dists/unstable" | xargs md5sum > md5sum.txt ; \
done \
else \
/root/etch-simple-cdd/tmp//debian-cd/tools/fast_sums /root/etch-simple-cdd/tmp//etch-i386; \
fi
Couldn't open file: /root/etch-simple-cdd/tmp//etch-i386/indices-non-US/md5sums at /root/etch-simple-cdd/tmp//debian-cd/tools/fast_sums line 29.
find: Symbolic link `./debian' is part of a loop in the directory hierarchy; we have already visited the directory to which it points.
/root/etch-simple-cdd/tmp//debian-cd/tools/make_image "/root/etch-simple-cdd/tmp//etch-i386" "i386" "/root/etch-simple-cdd/images/" "0" "3.2" "/root/etch-simple-cdd/mirror/" "mkisofs" "-r" "-jigdo-min-file-size 0 -jigdo-exclude 'README*' -jigdo-exclude /doc/ -jigdo-exclude /md5sum.txt -jigdo-exclude /.disk/ -jigdo-exclude /pics/ -jigdo-exclude 'Release*' -jigdo-exclude 'Packages*' -jigdo-exclude 'Sources*' -jigdo-force-md5 /pool/" "/root/etch-simple-cdd/tmp//debian-cd/tools/jigdo_cleanup"
Generating i386 iso/jigdo image number 1 ...
2007年 01月 19日 星期五 11:09:17 CST
mkisofs -r -V Debian 3.2 i386 Bin-1 -o /root/etch-simple-cdd/images//debian-32-i386-binary-1.raw -cache-inodes -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table CD1
I: -input-charset not specified, using utf-8 (detected in locale settings)
Unknown file type (unallocated) CD1/.. - ignoring and continuing.
genisoimage: Uh oh, I cant find the boot catalog directory 'isolinux'!
make: *** [bin-images] 错误 255
debian:~/etch-simple-cdd# |
|