[Comm] Как сделать Live CD
Eugene Prokopiev
=?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Вс Апр 3 20:15:52 MSD 2005
Здравствуйте!
Ознакомившись со всем, что было найдено на www.linux-os.ru на предмет
sandman, решил попробовать.
Начинаем c документа "Как выпекать LiveCD ISO в Sandman", который
требует наличия как минимум:
1. ALT Linux Sisyphus (локальный репозиторий);
2. Установленный и настроенный sandman, включая пользовательское
окружение (см. sandman-sisyphus-mini-howto);
Локальный репозитарий я сделал из 2 DVD-дисков ALM2.4 следующим образом:
1. Раскидал *.rpm и *.src.rpm по каталогам:
alt-linux-2.4
SRPMS
SRPMS.alm24 -> SRPMS
i586
RPMS
RPMS.alm24 -> RPMS
base
2. Выполнил:
genbasedir --progress --topdir=/home/public/distrib/alt-linux-2.4 i586 alm24
Затем пошел читать и выполнять рекомендации "Краткое руководство по
настройке sandman BTE (Build and Test Environment)", по мере своего
разумения адаптируя их:
1. Установил sandman и sandman-server
2. Отредактировал /etc/sandman/repos:
[global]
target = i586
distribution = ALT Linux
vendor = ALT Linux Team
cvsroot = /var/cvs
cvsmodule = release
[master24]
stable = /home/public/distrib/alt-linux-2.4 i586 alm24
basesystem = setup glibc-core filesystem basesystem
buildsystem = rpm-build
sources = /var/lib/sandman/sisyphus/sources
3. Отредактировал /etc/sudo.d/sandman:
%sandman athlon.ewsd.donpac.ru=NOPASSWD:/usr/bin/chrootuid
/var/cache/sandman/*
%sandman athlon.ewsd.donpac.ru=NOPASSWD:/bin/mount -text2 -o loop
/var/cache/sandman/*
%sandman athlon.ewsd.donpac.ru=NOPASSWD:/bin/mount --bind *
/var/cache/sandman/*/*
%sandman athlon.ewsd.donpac.ru=NOPASSWD:/bin/umount /var/cache/sandman/*
4. Инициализировал CVS:
cvsinitroot /var/cvs
chmod g+w /var/cvs
5. Завел пользователя test, включил его в группы cvs, cvsadmin, sandman,
перелогинился под его именем
6. Теперь проделал разные операции от имени пользователя test, отложив
вникание в суть на потом:
$ cvs -d :ext:localhost:/var/cvs co CVSROOT
$ cd CVSROOT
$ mkdir ../release && cd ../release
$ for i in release installer macros modules; do cp
/usr/share/doc/sandman-server-*/$i.sample $i; done
$ touch {release,installer,macros}.generic
$ cvs -d :ext:localhost:/var/cvs import -m 'init' release me start
$ cd ..
$ mv release release.orig
$ cvs -d :ext:localhost:/var/cvs co release
$ mkdir packages
$ cd packages
$ echo *.spec >> .cvsignore
$ cvs -d :ext:localhost:/var/cvs import -m 'init' packages me start
$ cd ..
$ mv packages packages.orig
$ cvs -d :ext:localhost:/var/cvs co packages
# mkdir -p /var/lib/sandman/alm24/stable/{SRPMS.alm24,i586/{RPMS.alm24}}
# chown -R sandman:sandman /var/lib/sandman/alm24/
$ cd CVSROOT
$ cat >> commitinfo << EOF
> release/* /usr/bin/sandctl -hook cvs:commit
> packages/* /usr/bin/sandctl -hook cvs:commit
> EOF
$ cvs commit -m 'init' commitinfo
7. Запустил сервис sandd, а ему не нравится репозитарий:
# service sandd start
Starting sandd service: wrong repository `stable'
Почему и что делать дальше?
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки community