[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