[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [debian-user] customized debian cd



Hi!

>--[Patrick Hsieh]--<pahud@pahud.net>

> I'd like to made a customized debian cd. Can I dpkg --get-selections to
> get my installed package selection and put all of them into 1 or 2 CDs?
> Is it possible? How?

If all you want is a CD with all your packages on it, use apt-move. If you
run it, it will move all downloaded debs into a local mirror that you can
apt-get from.

If you want a custom boot CD, things get more difficult, since some stuff isn't
packaged properly yet. What to do?

1) Use apt-move to create a local mirror with your packages.
2) Download doc, tools and indices from a ftp mirror. There is no packages that does
   it for you. You may also create a complete mirror using rsync; that will
   give you those directories, but also _all_ packages.
3) Make sure you have boot floppies in your mirror, with current pointing to the one
   you want to use. You may create custom boot floppies (e.g. German ones)
   with the boot-floppies packages.
4) Use debian-cd to create your CDs. To make tasks work, you need to create an override
   file and apt-ftparchive to merge that stuff. debian-cd unfortunately
   doesn't use apt-ftparchive. Edit /usr/share/debian-cd/CONF.sh to your taste.
5) I created a script that does the job:
--snip (mycd)--
#!/bin/sh

set -e

. CONF.sh

apt-get --download-only install $(/usr/sbin/debootstrap --print-debs --arch i386 woody)
apt-move update
cat /var/lib/apt/lists/*_binary-i386_Packages | > /mirrors/debian/override \
  perl -000 -ne '$p = $1 if /^Package: (.*)/mi; print "$p Task $1\n" if /^Task: (.*)/mi;'
apt-ftparchive generate /etc/apt/archive.conf

make distclean
make mirrorcheck
make status
make bin-list TASK=tasks/Debian_woody COMPLETE=1 SIZELIMIT=450000000
make bootable
make packages
make bin-extras CD=1 ROOTSRC=/mirrors/debian DIR=goodies
cat > $TDIR/archive.conf << --CONF--
Dir::ArchiveDir "$TDIR/$CODENAME-$ARCH/CD1";
Tree "dists/$CODENAME"
{
  Sections "local main contrib non-free non-US/main non-US/contrib non-US/non-free";
  Architectures "i386";
  ExtraOverride "/mirrors/debian/override";
}
--CONF--
apt-ftparchive generate $TDIR/archive.conf
make bin-md5list
make bin-images
make imagesums
--snip--

I created working CDs with that (btw Tasks only on CD1; you have to loop
around the apt-ftparchive for all CDs). If you want to be able to do
ReiserFS on your first CD, edit
/usr/share/debian-de/tools/boot/woody/boot-i386 and set KTYPE[1] to
"reiserfs".

Have fun!

-- 
A "No" uttered from deepest conviction is better and greater than a
"Yes" merely uttered to please, or what is worse, to avoid trouble.
                -- Mahatma Gandhi



Reply to: