ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] minimal system
@ 2001-11-26  6:35 Andrey Astafiev
  2001-11-26 11:24 ` Alexander Bokovoy
  2001-11-26 13:29 ` Dmitry V. Levin
  0 siblings, 2 replies; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-26  6:35 UTC (permalink / raw)
  To: devel

долго думал, куда постить, и решил сначала
отправить сюда. надеюсь получить некоторые
комментарии и после обсуждения сделать более
приемлимый вариант описания моих действий по
созданию минимального дистрибутива на основе
Сизифа. по ходу описания приведено несколько
ошибок и несколько идеологических вопросов.

в субботу 23 ноября 2001 я принес домой
полную копию Sisyphus, сделал на машине

# apt-get dist-upgrade

обновление системы прошло нормально.
далее я попробовал сделать минимальную систему
на основе Sisyphus-20011123. задача эта,
конечно, в основном теоретическая, т.к.
есть много дистрибутивов помещающихся
на дискетке. меня интересовало, что можно
выжать в плане минимализма из Sisyphus.
за основу был взят пакет basesystem-sisyphus.
систему ставил на раздел достаточно большого
размера с файловой системой reiserfs.
первым шагом были отобраны пакеты, от которых
зависит basesystem и необходимые для них.
basesystem потянул за собой еще 92 пакета.
я еще добавил mingetty, bdflush (по умолчанию
используются в inittab, но нет зависимости),
passwd (не знаю с помощью чего другого можно
менять пароли), libreiserfs и reiserfs-utils
(что поделаешь, файловая система-то не ext2 :).
итого система установилась на 108Мб.
теперь опишу разные способы установки.

1. уставновка сразу всех необходимых пакетов,
отобранных предварительно. монтируем целевой раздел:

# mount /dev/hde7 /mnt/test

создаем структуру каталогов, куда будет помещаться
база данных rpm, иначе пакеты устанавливаться не будут.

# mkdir -p /mnt/test/var/lib/rpm

в каталоге, где лежат все пакеты, подается команда:

# rpm -i --root /mnt/test *.rpm

при выполнении этой операции на экране появились
следующие сообщения:

warning: group tty does not exist - using root
warning: created %_tmppath directory /var/tmp
/var/tmp/rpm-tmp.48947: cd: /usr/lib/perl5: No such file or
directory
chown: `root.utmp': invalid user
chown: `root.utmp': invalid user
Cannot find a boot loader, you may have to see why detectloader
has
problems or specify via the command line.
rebuilding database /var/lib/rpm

таким образом в системе были установлены 93 пакета.
добавив 5 недостающих пакетов, о которых говорилось
ранее, и произведя несколько нехитрых действий,
о которых расскажу чуть позже, я получил работающую систему.

# du -s /mnt/test
108M    /mnt/test

2. меня заинтересовали сообщения, выдаваемые rpm
при установке, и я решил установить систему аккуратно
по пакету. почистил тестовый раздел и снова сделал
структуру каталогов для базы данных rpm.

# rm -rf /mnt/test/*; mkdir -p /mnt/test/var/lib/rpm
# rpm --initdb --root /mnt/test

пакеты я устанавливал командой:

# rpm -i --root /mnt/test название_пакета.rpm

в порядке их следования по тексту (по ходу я буду
давать некоторые комментарии и задавать вопросы).
сначала я установил некоторые независимые пакеты
(лицензии, файл релиза) и библиотеки.

altlinux-release-Sisyphus-alt20011123.noarch.rpm
common-licenses-1.1-alt1.noarch.rpm
glibc-core-2.2.4-alt3.i586.rpm
libdb1-1.85-alt1.i586.rpm
libdb2-2.4.14-alt1.i586.rpm
libdb3-3.3.11-alt2.i586.rpm
libpam-0.75-alt11.i586.rpm
libpopt-1.7-alt2.i586.rpm
libpwdb-0.61.1-alt1.i586.rpm
libreadline-4.2-alt5.i586.rpm
libshadow-20000902-alt3.i586.rpm
libshhopt-1.1.6-alt1.i586.rpm
libtermcap-2.0.8-ipl21mdk.i586.rpm
zlib-1.1.3-ipl13mdk.i586.rpm

с некоторыми библиотеками были приключения.
пакет libgpm-1.19.4-alt1.i586.rpm отказался
ставиться, сославшись на необходимость
libncurses.so.5, а libncurses-5.2-ipl3mdk.i586.rpm
соответственно на libgpm.so.1. это легко лечится,

# rpm -i --root /mnt/test libgpm-1.19.4-alt1.i586.rpm \
                          libncurses-5.2-ipl3mdk.i586.rpm

но выглядит по-моему все равно не очень хорошо.
итак в систему были добавлены 

libgpm-1.19.4-alt1.i586.rpm
libncurses-5.2-ipl3mdk.i586.rpm

далее были установлены:

bzlib-1.0.1-alt2.i586.rpm
bzip2-1.0.1-alt2.i586.rpm
bash-2.05-alt4.i586.rpm
gzip-1.3.2-alt1.i586.rpm
info-install-4.0-ipl17mdk.i586.rpm
tar-1.13.25-alt1.i586.rpm

при установке последнего появилось сообщение,
которое было отмечено при установке сразу всех пакетов.

warning: created %_tmppath directory /var/tmp

что подвигло меня, к установке пакета filesystem,
создающего директории для размещения файлов в
дистрибутивах от ALTLinux. оказалось, что он зависит
от пакета setup, в котором содержатся стандартные файлы.
смысл этой зависимости я не понял, но в системе они
появились, естественно в следующем порядке:

setup-2.1.9-ipl21mdk.i586.rpm
filesystem-2.1.6-alt5.i586.rpm

далее "немного каши перловой". при установке perl-base
предустановочный скрипт делает 'cd /usr/lib/perl5',
не проверяя существования сего каталога, что выливается в:

/var/tmp/rpm-tmp.48947: cd: /usr/lib/perl5: No such file or
directory

тем не менее perl-base, некое его мандрейковское
расширение и еще несколько пакетов появляются в системе.

perl-base-5.6.1-alt12.i586.rpm
perl-MDK-Common-1.0.2-alt2.i586.rpm
hwclock-2.14-alt1.i586.rpm
chkconfig-1.2.19-ipl1mdk.i586.rpm
crontabs-1.7-ipl10mdk.noarch.rpm
etcskel-1.65-ipl4mdk.noarch.rpm
gawk-3.1.0-alt1.i586.rpm
getopt-1.1.2-alt1.i586.rpm
glib-1.2.10-alt2.i586.rpm
mktemp-1.4-alt1.i586.rpm
net-tools-1.60-alt1.i586.rpm
psmisc-20.1-alt1.i586.rpm
rootfiles-alt-alt3.noarch.rpm
sash-3.4-ipl5mdk.i586.rpm
sed-3.02-ipl10mdk.i586.rpm
which-2.13-alt1.i586.rpm

попробовал установить vim-minimal, но его
постустановочный скрипт выдал сообщение об ошибке.

/var/tmp/rpm-tmp.50528: ln: command not found
error: execution of %post scriptlet from vim-minimal-6.0-alt1.026
failed, exit status 127

это навело на мысль о том, что возможно скрипты,
связанные с установкой и удалением пакетов тоже
проверять на предмет зависимостей. бред? усложнение?
с одной стороны там пишутся простейшие команды,
которые бывают в системе. но случаи-то бывают разные :)
до появления команды ln я удалил из системы vim-minimal.
далее я начал устанавливать пакеты с утилитами.

diffutils-2.7-ipl22mdk.i586.rpm
fileutils-4.1-alt2.i586.rpm
vim-minimal-6.0-alt1.026.i586.rpm
grep-2.4.2-ipl5mdk.i586.rpm
textutils-2.0.14-alt1.i586.rpm
sh-utils-2.0.11-alt2.i586.rpm
procps-2.0.7-ipl5mdk.i586.rpm

о двух комплектах утилит есть, что сказать отдельно.
findutils при установке требует библиотеку libe2p.so.2,
которая входит в libe2fs. у меня нет файловой системы ext2,
так зачем же мне соответствующая библиотека. заглянув
немного вперед, я, конечно, понял, что без этой библиотеки
мне все равно не обойтись, т.к. она требуется для mkinitrd.
но если, например, я сам собираю в системе ядро и включаю
поддержку файловой системы загрузочного раздела в него,
то уже даже необходимость mkinitrd ставится под сомнение.
с другой стороны, конечно, концепция дистрибутива (в
данном случае касаемо mkinitrd) стоит значительно выше
моих личных идей по его применению. итак, были установлены:

libe2fs-1.24a-alt1.i586.rpm
findutils-4.1.7-alt1.i586.rpm

теперь об util-linux. этот пакет был разделен на несколько
пакетов, хотя собираются они все равно из одного архива.
мне не понятно, для чего было сделано данное разделение и
по какому принципу отбирались утилиты, которые были вынесены.
единственный критерий, по которому можно разнести пакеты
с утилитами, приходящий мне в голову, это наличие каждой
конкретной утилиты в fhs. по такому приципу можно было бы
разбить, скажем, все или некоторые пакеты с утилитами на
lalala-utils и lalala-fhs-utils. может быть имело бы смысл
некоторые утилиты действительно внести в отдельные пакеты...
кроме того, в requires пакета util-linux указаны пакеты с
вынесенными из него утилитами hwclock, getopt, kbdrate,
agetty, cfdisk, fdisk, sfdisk, но при этом пропущены(?)
losetup и mount. также интересным фактом для меня
оказалось то, что requires не содержит контроля версий,
т.е. в системе util-linux может иметь версию X.XXa,
kbdrate - X.XYb, а fdisk - X.ZZc.

на данный момент установить util-linux без нарушения
завивисимостей нельзя, так как agetty зависит от login,
а тот в свою очередь от pam. ок, будем разбираться с
пакетами, отвечающими за авторизацию. установить pam
сразу не представляется возможным, так как в нем
прописана зависимость на cracklib-dicts, причем модуль,
работающий с cracklib вынесен в pam-cracklib.
получается, что имеет место быть весьма странная
зависимость или разделение пакетов. имхо, зависимость
на cracklib-dicts должен иметь pam-cracklib и в него
должно быть вынесено из pam все, что относится к
cracklib, если это возможно и пока еще не сделано.
в противном случае не совсем понятен вынос в отдельный
пакет модуля pam_cracklib.so. вот.

cracklib-2.7-ipl13mdk.i586.rpm
cracklib-2.7-dicts-ipl13mdk.i586.rpm
pam-0.75-alt11.i586.rpm
pam-cracklib-0.75-alt11.i586.rpm
pam_passwdqc-0.4-alt2.i586.rpm
pam_mktemp-0.1-alt2.i586.rpm
pam_userpass-0.5-alt2.i586.rpm
pam-config-1.0-alt1.noarch.rpm
login-0.60-alt8.i586.rpm
agetty-2.11j-alt1.i586.rpm
cfdisk-2.11j-alt1.i586.rpm
fdisk-2.11j-alt1.i586.rpm
kdbrate-2.11j-alt1.i586.rpm
losetup-2.11j-alt1.i586.rpm
mount-2.11j-alt1.i586.rpm
sfdisk-2.11j-alt1.i586.rpm
util-linux-2.11j-alt1.i586.rpm
SysVinit-2.83-alt1.i586.rpm
modutils-2.4.12-alt1.i586.rpm
initscripts-5.49-ipl31mdk.i586.rpm

при установке последнего пакета появилось:
chown: `root.utmp': invalid user
chown: `root.utmp': invalid user
такие пользователь и группа в системе есть :)

e2fsprogs-1.24a-alt1.i586.rpm
mkinitrd-2.7.1-alt6.noarch.rpm
bootloader-utils-0.1-alt2.noarch.rpm
kernel24-up-2.4.15-alt0.61.i586.rpm

вполне естественно, что эта операция закончилась
предупреждением о том, что не этом разделе у меня
нет загрузчика опреционной системы (мне хватает
lilo на другом разделе).

Cannot find a boot loader, you may have to see why detectloader
has problems or specify via the command line.

еще немного об авторизации. при установке shadow-utils
не создаются файлы shadow и gshadow, хотя могли бы при
помощи скрипта на основе информации из passwd и group.

shadow-change-20000902-alt3.i586.rpm
shadow-check-20000902-alt3.i586.rpm
shadow-convert-20000902-alt3.i586.rpm
shadow-edit-20000902-alt3.i586.rpm
shadow-groups-20000902-alt3.i586.rpm
shadow-log-20000902-alt3.i586.rpm
shadow-utils-20000902-alt3.i586.rpm
ncurses-5.2-ipl3mdk.i586.rpm
dev-3.0.6-ipl5mdk.i586.rpm

установка файлов устройств привело к вот такому эффекту:

rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
directory
<skip>
rpmdb: /mnt/test/var/lib/rpm/Conflictname: No such file or
directory
rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
directory
<skip>
rpmdb: /mnt/test/var/lib/rpm/Name: No such file or directory
rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
directory
rpmdb: /mnt/test/var/lib/rpm/Conflictname: No such file or
directory
<skip>
error: db3 error(-30998) from db->close: DB_INCOMPLETE: Cache
flush was unable to complete
rpmdb: Non-empty page 32 in unused hash bucket 24
rpmdb: Non-invalid page 3 on free list
error: db3 error(-30985) from db->verify: DB_VERIFY_BAD: Database
verification failed

общий вывод занял примерно 50kb. такие сообщения за время
моих тестов появлялись с разной периодичностью при установке
разных пакетов, но насколько я заметил, только после установки
dev
и только при использовании ключа --root. c dev подобные сообщения
появляются всегда как при установке, так и при удалении.
перестроение базы непосредственно перед установкой этого
пакета не помогает. замечено также, что глюк в основном
проявляется на пакетах с больших количеством файлов.
если устанавливать все пакеты сразу, то все работает
нормально. однако, при попытке удаления, скажем, пакета
dev снова появляются аналогичные сообщения.

пробуем установить rpm и видим, что он зависит от glibc,
а не от glibc-core. это ошибка или rpm действительно
рассчитывает на что-то большее чем библиотеки из glibc?
обидно, прииходится поставить почти все пакеты, входящие
в glibc, а это почти 40Мб.

glibc-gconv-modules-2.2.4-alt3.i586.rpm
glibc-i18ndata-2.2.4-alt3.i586.rpm
glibc-locales-2.2.4-alt3.i586.rpm
glibc-nss-2.2.4-alt3.i586.rpm
glibc-timezones-2.2.4-alt3.i586.rpm
glibc-utils-2.2.4-alt3.i586.rpm
iconv-2.2.4-alt3.i586.rpm
glibc-2.2.4-alt3.i586.rpm
librpm-4.0.3-alt0.9.i586.rpm
rpm-4.0.3-alt0.9.i586.rpm
basesystem-sisyphus-alt1.noarch.rpm

оказывается, что эта система еще не является вполне
рабочей. нужно еще установить библиотеки и утилиты
для работы используемой на данном разделе файловой
системы (в данном случае reiserfs), mingetty, bdflush
(используемые по умолчанию в inittab) и passwd.

bdflush-1.5-ipl17mdk.i586.rpm
mingetty-0.9.4-ipl17mdk.i586.rpm
passwd-0.64.1-ipl4mdk.i586.rpm
libreiserfs-3.x.0h-ipl3.i586.rpm
reiserfs-utils-3.x.0h-ipl3.i586.rpm

--
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26  6:35 [devel] minimal system Andrey Astafiev
@ 2001-11-26 11:24 ` Alexander Bokovoy
  2001-11-26 11:31   ` Alexander Bokovoy
  2001-11-27  6:05   ` Andrey Astafiev
  2001-11-26 13:29 ` Dmitry V. Levin
  1 sibling, 2 replies; 17+ messages in thread
From: Alexander Bokovoy @ 2001-11-26 11:24 UTC (permalink / raw)
  To: devel

On Mon, Nov 26, 2001 at 09:35:51AM +0300, Andrey Astafiev wrote:
> долго думал, куда постить, и решил сначала
> отправить сюда. надеюсь получить некоторые
> комментарии и после обсуждения сделать более
> приемлимый вариант описания моих действий по
> созданию минимального дистрибутива на основе
> Сизифа. по ходу описания приведено несколько
> ошибок и несколько идеологических вопросов.
Спасибо! Я некоторые моменты прокомментирую, дабы стало понятно текущее
направление нашего развития в этом контексте. Далее я буду довольно часто
ссылаться на BTE (Build & Test Environment), который сейчас находится в
разработке и при помощи которого некоторые ошибки в зависимостях (и не
только) нам уже удалось отловить.

> # rpm -i --root /mnt/test *.rpm
> 
> при выполнении этой операции на экране появились
> следующие сообщения:
Все правильно. Подготовка chroot-а должна производится другим образом:

1. mkdir -t /mnt/test/{bin,etc/rpm,usr/lib/rpm,var/lib/rpm}
2. rpm2cpio rpm-4.0.3-alt*.i586.rpm | \
    (cd /mnt/test ; \
    cpio -iumd --quiet bin/rpm usr/lib/rpm/{rpmrc,macros})
3. echo "%_dbapi 3" >/mnt/test/etc/rpm/macros.db1
4. chroot /mnt/test /bin/rpm --initdb

Суть этих операций состоит в том, что:
1. Текущий RPM 4.0.3 содержит совместную с DB3 ошибку при работе с
chroot-ованием, проявляющуюся при использовании опции --root и
выражающуюся в порче как системной, так и за-chroot-енной базы RPM (видно
ниже в Вашем примере).

2. Поэтому мы используем статически собранный /bin/rpm, помещая его в
chroot и запуская внутри (chroot делается _перед_ запуском, а сам RPM
отрабатывает, не зная, что он в chroot-е). 

3. Для того, чтобы запустился именно статический RPM, мы не ставим в 
chroot /usr/lib/rpm/rpmpopt-4.0.3, где происходят переопределения
обработки опций RPM.

> # du -s /mnt/test
> 108M    /mnt/test
В моем случае (в BTE), когда в систему ставятся setup и basesystem,
получается:
# du -s -x sandroot.K26513
212M    sandroot.K26513
Количество установленных пакетов -- 117, вот полный список (все
зависимости вытянуты BTE из APT-а, список получен внутри chroot-а командой
rpm -qa --qf='[%{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n]'|sort -n ):

0	basesystem-sisyphus-alt1
0	filesystem-2.1.6-alt5
30	altlinux-release-Sisyphus-alt20011121
56	kernel-headers-common-1.0-alt1
439	pam-config-1.0-alt1
898	crontabs-1.7-ipl10mdk
6942	kbdrate-2.11j-alt1
8589	shadow-edit-20000902-alt3
9493	rootfiles-alt-alt3
11041	mkinitrd-2.7.1-alt5
16592	mktemp-1.4-alt1
18092	shadow-log-20000902-alt3
18224	info-install-4.0-ipl17mdk
18664	libgpm-1.19.4-alt1
19247	libtermcap-2.0.8-ipl21mdk
19252	libltdl-1.4-alt2
19361	libshhopt-1.1.6-alt1
20957	agetty-2.11j-alt1
22262	shadow-check-20000902-alt3
25239	shadow-convert-20000902-alt3
25470	losetup-2.11j-alt1
28935	bootloader-utils-0.1-alt1
30050	etcskel-1.65-ipl4mdk
30933	shadow-groups-20000902-alt3
33172	login-0.60-alt8
34199	libintl-0.10.40-alt1
35829	which-2.13-alt1
41335	libshadow-20000902-alt3
44055	getopt-1.1.2-alt1
47539	pam_passwdqc-0.4-alt2
48594	libpopt-1.7-alt2
49204	libpam-0.75-alt11
49463	perl-MDK-Common-1.0.2-alt2
51124	cfdisk-2.11j-alt1
52140	bzip2-1.0.1-alt2
56064	shadow-change-20000902-alt3
56845	zlib-1.1.3-ipl13mdk
58872	iconv-2.2.4-alt3
60160	libdb1-1.85-alt1
62020	setup-2.1.9-ipl21mdk
64052	sed-3.02-ipl10mdk
64456	bzlib-1.0.1-alt2
64565	sfdisk-2.11j-alt1
64974	psmisc-20.1-alt1
66669	hwclock-2.14-alt1
79891	cracklib-2.7-ipl13mdk
85571	gzip-1.3.2-alt1
92410	ed-0.2-ipl22mdk
102442	chkconfig-1.2.19-ipl1mdk
104752	fdisk-2.11j-alt1
116525	gdbm-1.8.0-ipl8mdk
123440	libe2fs-1.24a-alt1
126681	libexpat-1.95.2-alt1
128597	findutils-4.1.7-alt1
134478	SysVinit-2.83-alt1
147085	mount-2.11j-alt1
152080	dev-3.0.6-ipl5mdk
152471	diffutils-2.7-ipl22mdk
162289	glib-1.2.10-alt2
169897	rpm-build-4.0.3-alt0.9
169995	libreadline-4.2-alt5
174019	patch-2.5.4-ipl8mdk
183706	m4-1.4.1-alt1
205608	libpwdb-0.61.1-alt1
210948	libgmp-3.1.1-ipl2mdk
231503	cracklib-dicts-2.7-ipl13mdk
255282	libdb2-2.4.14-alt1
263194	procps-2.0.7-ipl5mdk
274108	cpp-2.96-ipl14mdk
311503	common-licenses-1.1-alt1
321563	glibc-timezones-2.2.4-alt3
335268	libncurses-5.2-ipl3mdk
365798	initscripts-5.49-ipl31mdk
384706	vim-minimal-6.0-alt1.026
425768	pam-0.75-alt11
439975	grep-2.4.2-ipl5mdk
443315	shadow-utils-20000902-alt3
500944	libbfd-2.11.92.0.10-alt1
514055	glibc-utils-2.2.4-alt3
546176	librpm-4.0.3-alt0.9
549760	gettext-0.10.40-alt1
565144	sash-3.4-ipl5mdk
633683	autoconf-2.13-alt2
636186	bash-2.05-alt4
639123	net-tools-1.60-alt1
720805	file-3.36-alt2
755526	gawk-3.1.0-alt1
758652	gettext-base-0.10.40-alt1
785721	make-3.79.1-ipl4mdk
815196	e2fsprogs-1.24a-alt1
864848	texinfo-4.0-ipl17mdk
886845	automake-1.4-alt3.p5
889520	libtool-1.4-alt2
894932	ncurses-5.2-ipl3mdk
906336	modutils-2.4.12-alt1
929626	tar-1.13.25-alt1
997143	glibc-2.2.4-alt3
1158665	libssl-0.9.6b-alt1
1633488	fileutils-4.1-alt2
1681684	textutils-2.0.14-alt1
1701020	sh-utils-2.0.11-alt2
1869390	perl-base-5.6.1-alt12
2088227	util-linux-2.11j-alt1
2123081	glibc-nss-2.2.4-alt3
2283367	libdb3-3.3.11-alt2
2559320	binutils-2.11.92.0.10-alt1
2742750	rpm-4.0.3-alt0.9
4166806	glibc-gconv-modules-2.2.4-alt3
5781455	kernel24-headers-2.4.15-alt0.61
6390871	gcc-2.96-ipl14mdk
9025561	glibc-core-2.2.4-alt3
11282069	python-2.1.1-alt3
13813981	perl-5.6.1-alt12
16799129	glibc-i18ndata-2.2.4-alt3
26191258	kernel24-up-2.4.15-alt0.61
38739812	glibc-devel-2.2.4-alt3
43610318	glibc-locales-2.2.4-alt3

> с некоторыми библиотеками были приключения.
> пакет libgpm-1.19.4-alt1.i586.rpm отказался
> ставиться, сославшись на необходимость
> libncurses.so.5, а libncurses-5.2-ipl3mdk.i586.rpm
> соответственно на libgpm.so.1. это легко лечится,
> 
> # rpm -i --root /mnt/test libgpm-1.19.4-alt1.i586.rpm \
>                           libncurses-5.2-ipl3mdk.i586.rpm
> 
> но выглядит по-моему все равно не очень хорошо.
Естественно. BTE использует вот такой алгоритм:
1. Команда
apt-get --print-uris 
   -o Dir::Cache=${root}/var/cache/apt \
   -o Dir::State=${root}/var/lib/apt \
   -o Dir::Etc=${root}/etc/apt \
   -o Debug::pkgProblemResolver=false \
   -o Debug::pkgRPMPM=false \
   -o RPM::RootDir=${root} \
   install имя-пакета

Дважды повторив эту команду для (последовательно) setup и basesystem
получаем список файлов, которые необходимо установить для минимальной системы.
Обратите внимание на переопределение RPM::RootDir и
Dir::{Cache,State,Etc}, чтобы использовалась установка из chroot.

2. Репозитарий, относительно которого строится система, монтируется внутрь
chroot-а (mount -o bind,ro или mount -t nfs localhost:/repository -o ro, в
зависимости от типа ядра).

3. Затем выданный список подсовывается внутри chroot-а имеющемуся там
статическому RPM-у, с соответствующей заменой пути к файлам на адекватную
внутри chroot-а (в случае BTE -- это /repos) и RPM ставит пакеты.

Очень важно ставить в два приема -- вначале setup, затем basesystem.
Дело в том, что setup содержит /etc/{group,passwd} с системными
пользователями, на которые опираются многие системные пакеты.

К сожалению, текущий glibc-core не содержит libnss_files и потому эти
пользователи и группы пока не ресолвятся. Дмитрий Левин, надеюсь, выпустит
обновленный glibc-core.

> при установке последнего появилось сообщение,
> которое было отмечено при установке сразу всех пакетов.
> warning: created %_tmppath directory /var/tmp
> 
> что подвигло меня, к установке пакета filesystem,
> создающего директории для размещения файлов в
> дистрибутивах от ALTLinux. оказалось, что он зависит
> от пакета setup, в котором содержатся стандартные файлы.
> смысл этой зависимости я не понял, но в системе они
> появились, естественно в следующем порядке:
> 
> setup-2.1.9-ipl21mdk.i586.rpm
> filesystem-2.1.6-alt5.i586.rpm
Смысл зависимостей таков:
1. Setup обеспечивает установку архитектурнонезависимых файлов,
содержащих описание системных пользователей, групп и некоторой другой
важной информации.
2. Filesystem содержит системообразующие файлы и директории, не
принадлежащие другим пакетам.

Оба этих пакета обязаны стоять в системе до установки basesystem.
> при установке последнего пакета появилось:
> chown: `root.utmp': invalid user
> chown: `root.utmp': invalid user
> такие пользователь и группа в системе есть :)
Это последствие отсутствия в glibc-core libnss_files.

> установка файлов устройств привело к вот такому эффекту:
> 
> rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
> directory
> <skip>
> rpmdb: /mnt/test/var/lib/rpm/Conflictname: No such file or
> directory
> rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
> directory
> <skip>
> rpmdb: /mnt/test/var/lib/rpm/Name: No such file or directory
> rpmdb: /mnt/test/var/lib/rpm/Providename: No such file or
> directory
> rpmdb: /mnt/test/var/lib/rpm/Conflictname: No such file or
> directory
> <skip>
> error: db3 error(-30998) from db->close: DB_INCOMPLETE: Cache
> flush was unable to complete
> rpmdb: Non-empty page 32 in unused hash bucket 24
> rpmdb: Non-invalid page 3 on free list
> error: db3 error(-30985) from db->verify: DB_VERIFY_BAD: Database
> verification failed
Вот она и есть -- та самая ошибка RPM 4.0.3 + DB3, которая не позволяет
пользоваться опцией --root в RPM. Мы с Дмитрием смогли повторить ее на
базе пакетов из RedHat 7.2, понадобилось всего 10 пакетов, установленных в
две итерации, чтобы испортить обе базы -- системную и тестовую в chroot-е.

К сожалению, мне не известен текущий статус этой проблемы, думаю, что
Дмитрий здесь добавить что-то новое.

> пробуем установить rpm и видим, что он зависит от glibc,
> а не от glibc-core. это ошибка или rpm действительно
> рассчитывает на что-то большее чем библиотеки из glibc?
> обидно, прииходится поставить почти все пакеты, входящие
> в glibc, а это почти 40Мб.
Сам RPM собран статически, ему нужен только glibc-core для ресолвинга
пользователей и групп, но это будет работать только, когда Дмитрий
выпустит новый релиз glibc, пока что требуется установка glibc-nss и того,
от чего он зависит.

-- 
/ Alexander Bokovoy
$ cat /proc/identity >~/.signature
  `Senior software developer and analyst for SaM-Solutions Ltd.`
---
Nov 21 20:58:58 alconost kernel: VFS: Busy inodes after unmount. 
		    Self-destruct in 5 seconds.  Have a nice day...
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26 11:24 ` Alexander Bokovoy
@ 2001-11-26 11:31   ` Alexander Bokovoy
  2001-11-27  6:05   ` Andrey Astafiev
  1 sibling, 0 replies; 17+ messages in thread
From: Alexander Bokovoy @ 2001-11-26 11:31 UTC (permalink / raw)
  To: devel

On Mon, Nov 26, 2001 at 01:24:30PM +0200, Alexander Bokovoy wrote:
> > следующие сообщения:
> Все правильно. Подготовка chroot-а должна производится другим образом:
> 
> 1. mkdir -t /mnt/test/{bin,etc/rpm,usr/lib/rpm,var/lib/rpm}
mkdir -p конечно.

-- 
/ Alexander Bokovoy
$ cat /proc/identity >~/.signature
  `Senior software developer and analyst for SaM-Solutions Ltd.`
---
Nov 21 20:58:58 alconost kernel: VFS: Busy inodes after unmount. 
		    Self-destruct in 5 seconds.  Have a nice day...
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26  6:35 [devel] minimal system Andrey Astafiev
  2001-11-26 11:24 ` Alexander Bokovoy
@ 2001-11-26 13:29 ` Dmitry V. Levin
  2001-11-26 13:50   ` Andrey Astafiev
  2001-11-27  6:04   ` Andrey Astafiev
  1 sibling, 2 replies; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-26 13:29 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 7492 bytes --]

On Mon, Nov 26, 2001 at 09:35:51AM +0300, Andrey Astafiev wrote:
> долго думал, куда постить, и решил сначала
> отправить сюда. надеюсь получить некоторые
> комментарии и после обсуждения сделать более
> приемлимый вариант описания моих действий по
> созданию минимального дистрибутива на основе
> Сизифа. по ходу описания приведено несколько
> ошибок и несколько идеологических вопросов.

На идеологические вопросы в основном Саша ответил,
пройдусь по некоторым деталям.

> за основу был взят пакет basesystem-sisyphus.
> систему ставил на раздел достаточно большого
> размера с файловой системой reiserfs.
> первым шагом были отобраны пакеты, от которых
> зависит basesystem и необходимые для них.
> basesystem потянул за собой еще 92 пакета.
> я еще добавил mingetty, bdflush (по умолчанию
> используются в inittab, но нет зависимости),

bdflush реально используется?
mingetty - должен быть в зависимостях initscripts.

> passwd (не знаю с помощью чего другого можно

а если не надо?

> 2. меня заинтересовали сообщения, выдаваемые rpm
> при установке, и я решил установить систему аккуратно
> по пакету. почистил тестовый раздел и снова сделал
> структуру каталогов для базы данных rpm.
> 
> # rm -rf /mnt/test/*; mkdir -p /mnt/test/var/lib/rpm
> # rpm --initdb --root /mnt/test
> 
> пакеты я устанавливал командой:
> 
> # rpm -i --root /mnt/test название_пакета.rpm

Про то, почему не стоит сейчас пользоваться "rpm --root", рассказано более
чем достаточно.

> с некоторыми библиотеками были приключения.
> пакет libgpm-1.19.4-alt1.i586.rpm отказался
> ставиться, сославшись на необходимость
> libncurses.so.5, а libncurses-5.2-ipl3mdk.i586.rpm
> соответственно на libgpm.so.1. это легко лечится,
> 
> # rpm -i --root /mnt/test libgpm-1.19.4-alt1.i586.rpm \
>                           libncurses-5.2-ipl3mdk.i586.rpm
> 
> но выглядит по-моему все равно не очень хорошо.

Да, это выглядит некрасиво, буду разбираться.

> warning: created %_tmppath directory /var/tmp
> 
> что подвигло меня, к установке пакета filesystem,
> создающего директории для размещения файлов в
> дистрибутивах от ALTLinux. оказалось, что он зависит
> от пакета setup, в котором содержатся стандартные файлы.
> смысл этой зависимости я не понял, но в системе они
> появились, естественно в следующем порядке:
> 
> setup-2.1.9-ipl21mdk.i586.rpm
> filesystem-2.1.6-alt5.i586.rpm

Как уже было сказано, setup сейчас необходимо ставить до basesystem

> далее "немного каши перловой". при установке perl-base
> предустановочный скрипт делает 'cd /usr/lib/perl5',
> не проверяя существования сего каталога, что выливается в:
> 
> /var/tmp/rpm-tmp.48947: cd: /usr/lib/perl5: No such file or
> directory

bug

> попробовал установить vim-minimal, но его
> постустановочный скрипт выдал сообщение об ошибке.
> 
> /var/tmp/rpm-tmp.50528: ln: command not found
> error: execution of %post scriptlet from vim-minimal-6.0-alt1.026
> failed, exit status 127

bug

> это навело на мысль о том, что возможно скрипты,
> связанные с установкой и удалением пакетов тоже
> проверять на предмет зависимостей. бред? усложнение?

Это уже запланировано. Однако придется исправлять довольно много скриптов.

> о двух комплектах утилит есть, что сказать отдельно.
> findutils при установке требует библиотеку libe2p.so.2,
> которая входит в libe2fs. у меня нет файловой системы ext2,
> так зачем же мне соответствующая библиотека. заглянув
> немного вперед, я, конечно, понял, что без этой библиотеки
> мне все равно не обойтись, т.к. она требуется для mkinitrd.
> но если, например, я сам собираю в системе ядро и включаю
> поддержку файловой системы загрузочного раздела в него,
> то уже даже необходимость mkinitrd ставится под сомнение.
> с другой стороны, конечно, концепция дистрибутива (в
> данном случае касаемо mkinitrd) стоит значительно выше
> моих личных идей по его применению. итак, были установлены:
> 
> libe2fs-1.24a-alt1.i586.rpm
> findutils-4.1.7-alt1.i586.rpm

Сейчас в findutils есть поддержка некоторых особых возможностей
ext2. Если они оттуда исчезнут, то и зависимость пропадет.

> теперь об util-linux. этот пакет был разделен на несколько
> пакетов, хотя собираются они все равно из одного архива.
> мне не понятно, для чего было сделано данное разделение и
> по какому принципу отбирались утилиты, которые были вынесены.
> единственный критерий, по которому можно разнести пакеты
> с утилитами, приходящий мне в голову, это наличие каждой
> конкретной утилиты в fhs. по такому приципу можно было бы
> разбить, скажем, все или некоторые пакеты с утилитами на
> lalala-utils и lalala-fhs-utils. может быть имело бы смысл
> некоторые утилиты действительно внести в отдельные пакеты...
> кроме того, в requires пакета util-linux указаны пакеты с
> вынесенными из него утилитами hwclock, getopt, kbdrate,
> agetty, cfdisk, fdisk, sfdisk, но при этом пропущены(?)
> losetup и mount. также интересным фактом для меня

Ввиду того, что они уже давно живут отдельно (еще в RE 7.0).

> оказалось то, что requires не содержит контроля версий,
> т.е. в системе util-linux может иметь версию X.XXa,
> kbdrate - X.XYb, а fdisk - X.ZZc.

Это почти нормально - они друг друга не используют.

> на данный момент установить util-linux без нарушения
> завивисимостей нельзя, так как agetty зависит от login,

Эти "вытаскивающие за волосы" зависимости (glibc,util-linux,shadow-utils)
были сделаны с тем, чтобы в уже работающей системе не потерять необходимые
компоненты.

> а тот в свою очередь от pam. ок, будем разбираться с
> пакетами, отвечающими за авторизацию. установить pam
> сразу не представляется возможным, так как в нем
> прописана зависимость на cracklib-dicts, причем модуль,
> работающий с cracklib вынесен в pam-cracklib.
> получается, что имеет место быть весьма странная
> зависимость или разделение пакетов. имхо, зависимость
> на cracklib-dicts должен иметь pam-cracklib и в него
> должно быть вынесено из pam все, что относится к
> cracklib, если это возможно и пока еще не сделано.
> в противном случае не совсем понятен вынос в отдельный
> пакет модуля pam_cracklib.so. вот.

bug

> при установке последнего пакета появилось:
> chown: `root.utmp': invalid user
> chown: `root.utmp': invalid user
> такие пользователь и группа в системе есть :)

bug
glibc-core еще не содержит /lib/libnss_files-2.2.4.so

> еще немного об авторизации. при установке shadow-utils
> не создаются файлы shadow и gshadow, хотя могли бы при
> помощи скрипта на основе информации из passwd и group.

Не думаю, что это актуально в связи с tcb...
Посмотрим.

> пробуем установить rpm и видим, что он зависит от glibc,
> а не от glibc-core. это ошибка или rpm действительно
> рассчитывает на что-то большее чем библиотеки из glibc?
> обидно, прииходится поставить почти все пакеты, входящие
> в glibc, а это почти 40Мб.

bug

> оказывается, что эта система еще не является вполне
> рабочей. нужно еще установить библиотеки и утилиты
> для работы используемой на данном разделе файловой
> системы (в данном случае reiserfs), mingetty, bdflush
> (используемые по умолчанию в inittab) и passwd.

bdflush там откуда?

Resume: обнаружено еще 4 новых ошибки.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26 13:29 ` Dmitry V. Levin
@ 2001-11-26 13:50   ` Andrey Astafiev
  2001-11-26 14:02     ` Dmitry V. Levin
  2001-11-27  6:04   ` Andrey Astafiev
  1 sibling, 1 reply; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-26 13:50 UTC (permalink / raw)
  To: devel

> bdflush там откуда?

смотрим /etc/inittab из initscripts-5.49-ipl31mdk строка 32.

ud::once:/sbin/update

# rpm -q --whatprovides /sbin/update
bdflush-1.5-ipl17mdk



-- 
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26 13:50   ` Andrey Astafiev
@ 2001-11-26 14:02     ` Dmitry V. Levin
  0 siblings, 0 replies; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-26 14:02 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 619 bytes --]

On Mon, Nov 26, 2001 at 04:50:23PM +0300, Andrey Astafiev wrote:
> > bdflush там откуда?
> 
> смотрим /etc/inittab из initscripts-5.49-ipl31mdk строка 32.
> 
> ud::once:/sbin/update

Значит, должен быть в зависимостях пакета initscripts.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26 13:29 ` Dmitry V. Levin
  2001-11-26 13:50   ` Andrey Astafiev
@ 2001-11-27  6:04   ` Andrey Astafiev
  2001-11-27  8:19     ` Dmitry V. Levin
  2001-11-27  9:55     ` Alexander Bokovoy
  1 sibling, 2 replies; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-27  6:04 UTC (permalink / raw)
  To: devel

On Mon, 26 Nov 2001 16:29:14 +0300
"Dmitry V. Levin" <ldv@alt-linux.org> wrote:

Большое спасибо, за пояснения. еще немного вопросов.

> mingetty - должен быть в зависимостях initscripts.

его там нет.

> > passwd
>
> а если не надо?
>

возможно, в BTS и не надо, а для минимальной
многопользовательской рабочей системы - надо :)
насколько я помню, я ни словом не упомянул,
что basesystem должен зависеть от passwd.
я так понял, basesystem является тем ограничивающим
пакетом в системе, наличие которого при сохраненных
зависимостях гарантирует присутствие всех
жизненно-необходимых компонентов?

> Как уже было сказано, setup сейчас необходимо
> ставить до basesystem.

кстати, в описании basesystem сказано, что этот
пакет должен быть установлен первым, а Александр
написал, что сначала нужно установить setup с
зависящими от него пакетами, хотя таковых нет.
это временное явление?

> > это навело на мысль о том, что возможно скрипты,
> > связанные с установкой и удалением пакетов тоже
> > проверять на предмет зависимостей. бред? усложнение?
>
> Это уже запланировано. Однако придется исправлять
> довольно много скриптов.

т.е. удалять из скриптов неоправданно используемые
команды? зависимости ведь будут проставляться...

> Сейчас в findutils есть поддержка некоторых особых
> возможностей ext2. Если они оттуда исчезнут,
> то и зависимость пропадет.

похоже эта зависимость будет жить в веках :)

> > установить util-linux без нарушения завивисимостей
> >нельзя, так как agetty зависит от login,
>
> Эти "вытаскивающие за волосы" зависимости (glibc,
> util-linux,shadow-utils) были сделаны с тем, чтобы
> в уже работающей системе не потерять необходимые
> компоненты.

но ведь теперь для этого существует basesystem?

> bug
> glibc-core еще не содержит /lib/libnss_files-2.2.4.so

кусочек из ответа Александру:
это значит, что файлы из glibc-nss будут
возвращены в glibc-core, или же просто будет
добавлена зависимость setup от glibc-nss?

> > еще немного об авторизации. при установке shadow-utils
> > не создаются файлы shadow и gshadow, хотя могли бы при
> > помощи скрипта на основе информации из passwd и group.
>
> Не думаю, что это актуально в связи с tcb...

что такое tcb?


-- 
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-26 11:24 ` Alexander Bokovoy
  2001-11-26 11:31   ` Alexander Bokovoy
@ 2001-11-27  6:05   ` Andrey Astafiev
  2001-11-27  7:59     ` Dmitry V. Levin
  2001-11-27  9:47     ` Alexander Bokovoy
  1 sibling, 2 replies; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-27  6:05 UTC (permalink / raw)
  To: devel

On Mon, 26 Nov 2001 13:24:30 +0200
Alexander Bokovoy <a.bokovoy@sam-solutions.net> wrote:

Александр, спасибо, за такое подробное разъяснение.

> Подготовка chroot-а должна производится другим образом:
>
> 1. mkdir -t /mnt/test/{bin,etc/rpm,usr/lib/rpm,var/lib/rpm}
> 2. rpm2cpio rpm-4.0.3-alt*.i586.rpm | \
>     (cd /mnt/test ; \
>     cpio -iumd --quiet bin/rpm usr/lib/rpm/{rpmrc,macros})
> 3. echo "%_dbapi 3" >/mnt/test/etc/rpm/macros.db1
> 4. chroot /mnt/test /bin/rpm --initdb

обязательно учту в своих следующих опытах.

> Суть этих операций состоит в том, что:
> 1. Текущий RPM 4.0.3 содержит совместную с DB3
> ошибку при работе с chroot-ованием, проявляющуюся
> при использовании опции --root и выражающуюся в
> порче как системной, так и за-chroot-енной базы
> RPM (видно ниже в Вашем примере).

т.е. на некоторое время про опцию --root в
rpm 4.0.3 можно забыть?

> > # du -s /mnt/test
> > 108M    /mnt/test
> В моем случае (в BTE), когда в систему
> ставятся setup и basesystem, получается:
> # du -s -x sandroot.K26513
> 212M    sandroot.K26513

отличие в том, что я не уставливал пакеты для
разработки как-то gcc, kernel-headers,
glibc-devel, perl, python и т.д.
т.е. я ставил целью сделать систему, пакеты
для которой будут собираться вне системы...

> BTE использует вот такой алгоритм:
> 1. Команда
> apt-get --print-uris 
>   -o Dir::Cache=${root}/var/cache/apt \
>   -o Dir::State=${root}/var/lib/apt \
>   -o Dir::Etc=${root}/etc/apt \
>   -o Debug::pkgProblemResolver=false \
>   -o Debug::pkgRPMPM=false \
>   -o RPM::RootDir=${root} \
>   install имя-пакета

если бы в rpm 4.0.3 работал правильно переход в chroot,
то с пакетами в chroot-системе можно было бы работать
с помощью apt, добавляя -o RPM::RootDir=${chroot}, например:
# apt-get -o -o RPM::RootDir=${chroot} install имя-пакета

> Дважды повторив эту команду для (последовательно)
> setup и basesystem получаем список файлов, которые
> необходимо установить для минимальной системы.
>
> Затем выданный список подсовывается внутри chroot-а
> имеющемуся там статическому RPM-у, с соответствующей
> заменой пути к файлам на адекватную внутри chroot-а
> (в случае BTE -- это /repos) и RPM ставит пакеты.
>
> Очень важно ставить в два приема -- вначале setup,
> затем basesystem. Дело в том, что setup содержит
> /etc/{group,passwd} с системными пользователями,
> на которые опираются многие системные пакеты.

т.е. rpm внутри chroot устанавливает сначала все
пакеты из списка, сгенерированного при помощи
эмуляции установки пакета setup в chroot, а уже
потом - из аналогичного списка для basesystem?

> 1. Setup обеспечивает установку архитектурнонезависимых
> файлов, содержащих описание системных пользователей,
> групп и некоторой другой важной информации.
>
> > при установке последнего пакета появилось:
> > chown: `root.utmp': invalid user
> > chown: `root.utmp': invalid user
> > такие пользователь и группа в системе есть :)
>
> Это последствие отсутствия в glibc-core libnss_files.

это значит, что файлы из glibc-nss будут
возвращены в glibc-core, или же просто будет
добавлена зависимость setup от glibc-nss?


-- 
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  6:05   ` Andrey Astafiev
@ 2001-11-27  7:59     ` Dmitry V. Levin
  2001-11-27  9:47     ` Alexander Bokovoy
  1 sibling, 0 replies; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-27  7:59 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 3415 bytes --]

On Tue, Nov 27, 2001 at 09:05:39AM +0300, Andrey Astafiev wrote:
> > Суть этих операций состоит в том, что:
> > 1. Текущий RPM 4.0.3 содержит совместную с DB3
> > ошибку при работе с chroot-ованием, проявляющуюся
> > при использовании опции --root и выражающуюся в
> > порче как системной, так и за-chroot-енной базы
> > RPM (видно ниже в Вашем примере).
> 
> т.е. на некоторое время про опцию --root в
> rpm 4.0.3 можно забыть?

До тех пор, пока я не дам отмашку, да.

> > > # du -s /mnt/test
> > > 108M    /mnt/test
> > В моем случае (в BTE), когда в систему
> > ставятся setup и basesystem, получается:
> > # du -s -x sandroot.K26513
> > 212M    sandroot.K26513
> 
> отличие в том, что я не уставливал пакеты для
> разработки как-то gcc, kernel-headers,
> glibc-devel, perl, python и т.д.
> т.е. я ставил целью сделать систему, пакеты
> для которой будут собираться вне системы...

тогда хватит (должно хватать) setup, basesystem, interactivesystem.

> > BTE использует вот такой алгоритм:
> > 1. Команда
> > apt-get --print-uris 
> >   -o Dir::Cache=${root}/var/cache/apt \
> >   -o Dir::State=${root}/var/lib/apt \
> >   -o Dir::Etc=${root}/etc/apt \
> >   -o Debug::pkgProblemResolver=false \
> >   -o Debug::pkgRPMPM=false \
> >   -o RPM::RootDir=${root} \
> >   install имя-пакета
> 
> если бы в rpm 4.0.3 работал правильно переход в chroot,
> то с пакетами в chroot-системе можно было бы работать
> с помощью apt, добавляя -o RPM::RootDir=${chroot}, например:
> # apt-get -o -o RPM::RootDir=${chroot} install имя-пакета

Возможно.

> > Дважды повторив эту команду для (последовательно)
> > setup и basesystem получаем список файлов, которые
> > необходимо установить для минимальной системы.
> >
> > Затем выданный список подсовывается внутри chroot-а
> > имеющемуся там статическому RPM-у, с соответствующей
> > заменой пути к файлам на адекватную внутри chroot-а
> > (в случае BTE -- это /repos) и RPM ставит пакеты.
> >
> > Очень важно ставить в два приема -- вначале setup,
> > затем basesystem. Дело в том, что setup содержит
> > /etc/{group,passwd} с системными пользователями,
> > на которые опираются многие системные пакеты.
> 
> т.е. rpm внутри chroot устанавливает сначала все
> пакеты из списка, сгенерированного при помощи
> эмуляции установки пакета setup в chroot, а уже
> потом - из аналогичного списка для basesystem?

Если следовать описанной выше схеме.

> > 1. Setup обеспечивает установку архитектурнонезависимых
> > файлов, содержащих описание системных пользователей,
> > групп и некоторой другой важной информации.
> >
> > > при установке последнего пакета появилось:
> > > chown: `root.utmp': invalid user
> > > chown: `root.utmp': invalid user
> > > такие пользователь и группа в системе есть :)
> >
> > Это последствие отсутствия в glibc-core libnss_files.
> 
> это значит, что файлы из glibc-nss будут
> возвращены в glibc-core, или же просто будет
> добавлена зависимость setup от glibc-nss?

/etc/nsswitch.conf, /lib/libnss_files-2.2.4.so и /lib/libnss_files.so.2
будут возвращены в glibc-core.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  6:04   ` Andrey Astafiev
@ 2001-11-27  8:19     ` Dmitry V. Levin
  2001-11-27  9:23       ` Andrey Astafiev
  2001-11-27  9:43       ` [devel] " Mikhail Zabaluev
  2001-11-27  9:55     ` Alexander Bokovoy
  1 sibling, 2 replies; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-27  8:19 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 4609 bytes --]

On Tue, Nov 27, 2001 at 09:04:58AM +0300, Andrey Astafiev wrote:
> Большое спасибо, за пояснения. еще немного вопросов.
> 
> > mingetty - должен быть в зависимостях initscripts.
> 
> его там нет.
> 
> > > passwd
> >
> > а если не надо?
> 
> возможно, в BTS и не надо, а для минимальной
> многопользовательской рабочей системы - надо :)

Тогда это пакет interactivesystem.

> насколько я помню, я ни словом не упомянул,
> что basesystem должен зависеть от passwd.
> я так понял, basesystem является тем ограничивающим
> пакетом в системе, наличие которого при сохраненных
> зависимостях гарантирует присутствие всех
> жизненно-необходимых компонентов?

Да, так было задумано.
Вопрос только в том, что считать жизненно необходимым?

> > Как уже было сказано, setup сейчас необходимо
> > ставить до basesystem.
> 
> кстати, в описании basesystem сказано, что этот
> пакет должен быть установлен первым, а Александр
> написал, что сначала нужно установить setup с
> зависящими от него пакетами, хотя таковых нет.
> это временное явление?

На данный момент нет другого способа гарантировать, что setup будет
установлен первым.

> > > это навело на мысль о том, что возможно скрипты,
> > > связанные с установкой и удалением пакетов тоже
> > > проверять на предмет зависимостей. бред? усложнение?
> >
> > Это уже запланировано. Однако придется исправлять
> > довольно много скриптов.
> 
> т.е. удалять из скриптов неоправданно используемые
> команды? зависимости ведь будут проставляться...

Не только. Например, макрос %update_menus надо будет изменить с нынешнего
[ -x /usr/bin/update-menus ] && /usr/bin/update-menus ||:
на более корректное
UPDATE_MENUS=/usr/bin/update-menus
[ -x "$UPDATE_MENUS" ] && "$UPDATE_MENUS" ||:

Аналогично следует поступить во всех случаях условного запуска.

> > Сейчас в findutils есть поддержка некоторых особых
> > возможностей ext2. Если они оттуда исчезнут,
> > то и зависимость пропадет.
> 
> похоже эта зависимость будет жить в веках :)

Не факт, см.
http://bugs.altlinux.ru/view_bug_advanced_page.php?f_id=0000074

> > > установить util-linux без нарушения завивисимостей
> > >нельзя, так как agetty зависит от login,
> >
> > Эти "вытаскивающие за волосы" зависимости (glibc,
> > util-linux,shadow-utils) были сделаны с тем, чтобы
> > в уже работающей системе не потерять необходимые
> > компоненты.
> 
> но ведь теперь для этого существует basesystem?

Кто сказал, что, напр., fdisk - это basesystem?

> > > еще немного об авторизации. при установке shadow-utils
> > > не создаются файлы shadow и gshadow, хотя могли бы при
> > > помощи скрипта на основе информации из passwd и group.
> >
> > Не думаю, что это актуально в связи с tcb...
> 
> что такое tcb?

TCB(5)                                                     TCB(5)

NAME
       tcb - alternative password shadowing scheme

PROBLEM
       With  the  traditional password shadowing scheme, password
       hashes and password aging  information  of  all  users  is
       stored  in one file, /etc/shadow.  Therefore, if a process
       requires access to information on a  single  user,  it  is
       forced  to  possess  privileges  which  are  sufficient to
       access data on all users.  This is a design flaw, which is
       most  clearly  visible  in  the case of passwd(1) utility.
       Let's assume that unprivileged users are to be allowed  to
       change  their  own  passwords.   Whatever  permissions are
       assigned to /etc/shadow, passwd(1),  invoked  by  unprivi-
       leged  user U, must be able to modify the contents of this
       file.  If malicious user U finds  a  way  to  control  the
       passwd(1)  process  (with the help of a buffer overflow or
       another bug in the passwd(1) code,  in  the  libraries  it
       uses,  or  in the kernel), the user will be able to change
       passwords of all users and thus obtain full  control  over
       the system.

SOLUTION
       The  solution  is  straightforward - each user is assigned
       its own, separate shadow-style file.  User U's shadow file
       is  owned by U, so passwd(1) invoked by U does not require
       superuser privileges.

Надеюсь скоро перевести Sisyphus на tcb (если на этой неделе не успею, то
на следующей).


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  8:19     ` Dmitry V. Levin
@ 2001-11-27  9:23       ` Andrey Astafiev
  2001-11-27  9:35         ` Dmitry V. Levin
  2001-11-27  9:43       ` [devel] " Mikhail Zabaluev
  1 sibling, 1 reply; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-27  9:23 UTC (permalink / raw)
  To: devel

On Tue, 27 Nov 2001 11:19:54 +0300
"Dmitry V. Levin" <ldv@alt-linux.org> wrote:

> > > mingetty - должен быть в зависимостях initscripts.
> > 
> > его там нет.
> > 
> > возможно, в BTS и не надо, а для минимальной
> > многопользовательской рабочей системы - надо :)
> 
> Тогда это пакет interactivesystem.

да там тоже весьма стоящие зависимости.
кстати, среди них есть и mingetty...
когда будет исправлена зависимость на
mingetty в initscripts, здесь ее надо
будет удалить, как и mkbootdisk и sash,
которые также тянутся из basysytem.
 
> На данный момент нет другого способа гарантировать,
> что setup будет установлен первым.

rpm не предоставляет возможности расстановки
приоритетов среди пакетов?

> > > Эти "вытаскивающие за волосы" зависимости (glibc,
> > > util-linux,shadow-utils) были сделаны с тем, чтобы
> > > в уже работающей системе не потерять необходимые
> > > компоненты.
> > 
> > но ведь теперь для этого существует basesystem?
> 
> Кто сказал, что, напр., fdisk - это basesystem?

пусть fdisk - не basesystem, но от него все
равно зависит util-linux, а тот - от basesystem.
зачем же тогда зависимости на fdisk и т.д. в
util-linux?

> > что такое tcb?
> 
>  tcb - alternative password shadowing scheme
> SOLUTION
>        The  solution  is  straightforward - each user is
assigned
>        its own, separate shadow-style file.  User U's shadow
file
>        is  owned by U, so passwd(1) invoked by U does not
require
>        superuser privileges.
> 
> Надеюсь скоро перевести Sisyphus на tcb
> (если на этой неделе не успею, то на следующей).

выглядит очень заманчиво...


-- 
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  9:23       ` Andrey Astafiev
@ 2001-11-27  9:35         ` Dmitry V. Levin
  2001-11-27 10:23           ` Andrey Astafiev
  0 siblings, 1 reply; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-27  9:35 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1797 bytes --]

On Tue, Nov 27, 2001 at 12:23:28PM +0300, Andrey Astafiev wrote:
> > > > mingetty - должен быть в зависимостях initscripts.
> > > 
> > > его там нет.
> > > 
> > > возможно, в BTS и не надо, а для минимальной
> > > многопользовательской рабочей системы - надо :)
> > 
> > Тогда это пакет interactivesystem.
> 
> да там тоже весьма стоящие зависимости.
> кстати, среди них есть и mingetty...
> когда будет исправлена зависимость на
> mingetty в initscripts, здесь ее надо
> будет удалить, как и mkbootdisk и sash,
> которые также тянутся из basysytem.

mingetty - да, sash - да, а mkbootdisk - почему?

> > На данный момент нет другого способа гарантировать,
> > что setup будет установлен первым.
> 
> rpm не предоставляет возможности расстановки
> приоритетов среди пакетов?

Только PreReq/Requires(pre).

> > > > Эти "вытаскивающие за волосы" зависимости (glibc,
> > > > util-linux,shadow-utils) были сделаны с тем, чтобы
> > > > в уже работающей системе не потерять необходимые
> > > > компоненты.
> > > 
> > > но ведь теперь для этого существует basesystem?
> > 
> > Кто сказал, что, напр., fdisk - это basesystem?
> 
> пусть fdisk - не basesystem, но от него все
> равно зависит util-linux, а тот - от basesystem.
> зачем же тогда зависимости на fdisk и т.д. в
> util-linux?

util-linux по сути не зависит от fdisk.
Зависимость появилась только для того, чтобы при dist-upgrade был
установлен новый пакет fdisk.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [devel] Re: minimal system
  2001-11-27  8:19     ` Dmitry V. Levin
  2001-11-27  9:23       ` Andrey Astafiev
@ 2001-11-27  9:43       ` Mikhail Zabaluev
  2001-11-27  9:47         ` [devel] " Dmitry V. Levin
  1 sibling, 1 reply; 17+ messages in thread
From: Mikhail Zabaluev @ 2001-11-27  9:43 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 661 bytes --]

Hello Dmitry,

On Tue, Nov 27, 2001 at 11:19:54AM +0300, Dmitry V. Levin wrote:
>
> Не только. Например, макрос %update_menus надо будет изменить с нынешнего
> [ -x /usr/bin/update-menus ] && /usr/bin/update-menus ||:
> на более корректное
> UPDATE_MENUS=/usr/bin/update-menus
> [ -x "$UPDATE_MENUS" ] && "$UPDATE_MENUS" ||:

Какой в этом сакральный смысл? Я не вижу ничего, кроме засорения
пространства имен переменных.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
What is wanted is not the will to believe, but the will to find out,
which is the exact opposite.
		-- Bertrand Russell, "Skeptical Essays", 1928

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  9:43       ` [devel] " Mikhail Zabaluev
@ 2001-11-27  9:47         ` Dmitry V. Levin
  0 siblings, 0 replies; 17+ messages in thread
From: Dmitry V. Levin @ 2001-11-27  9:47 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 865 bytes --]

On Tue, Nov 27, 2001 at 12:43:14PM +0300, Mikhail Zabaluev wrote:
> > Не только. Например, макрос %update_menus надо будет изменить с нынешнего
> > [ -x /usr/bin/update-menus ] && /usr/bin/update-menus ||:
> > на более корректное
> > UPDATE_MENUS=/usr/bin/update-menus
> > [ -x "$UPDATE_MENUS" ] && "$UPDATE_MENUS" ||:
> 
> Какой в этом сакральный смысл? Я не вижу ничего, кроме засорения
> пространства имен переменных.

Иначе вылезет зависимость на "rpm -qf /usr/bin/update-menus".


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@alt-linux.org
ALT Linux Team      http://www.altlinux.ru/
Fandra Project      http://www.fandra.org/
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  6:05   ` Andrey Astafiev
  2001-11-27  7:59     ` Dmitry V. Levin
@ 2001-11-27  9:47     ` Alexander Bokovoy
  1 sibling, 0 replies; 17+ messages in thread
From: Alexander Bokovoy @ 2001-11-27  9:47 UTC (permalink / raw)
  To: devel

On Tue, Nov 27, 2001 at 09:05:39AM +0300, Andrey Astafiev wrote:
> > Суть этих операций состоит в том, что:
> > 1. Текущий RPM 4.0.3 содержит совместную с DB3
> > ошибку при работе с chroot-ованием, проявляющуюся
> > при использовании опции --root и выражающуюся в
> > порче как системной, так и за-chroot-енной базы
> > RPM (видно ниже в Вашем примере).
> т.е. на некоторое время про опцию --root в
> rpm 4.0.3 можно забыть?
Да.

> > ставятся setup и basesystem, получается:
> > # du -s -x sandroot.K26513
> > 212M    sandroot.K26513
> отличие в том, что я не уставливал пакеты для
> разработки как-то gcc, kernel-headers,
> glibc-devel, perl, python и т.д.
> т.е. я ставил целью сделать систему, пакеты
> для которой будут собираться вне системы...
Это понятно. 

> > BTE использует вот такой алгоритм:
> > 1. Команда
> > apt-get --print-uris 
> >   -o Dir::Cache=${root}/var/cache/apt \
> >   -o Dir::State=${root}/var/lib/apt \
> >   -o Dir::Etc=${root}/etc/apt \
> >   -o Debug::pkgProblemResolver=false \
> >   -o Debug::pkgRPMPM=false \
> >   -o RPM::RootDir=${root} \
> >   install имя-пакета
> если бы в rpm 4.0.3 работал правильно переход в chroot,
> то с пакетами в chroot-системе можно было бы работать
> с помощью apt, добавляя -o RPM::RootDir=${chroot}, например:
> # apt-get -o -o RPM::RootDir=${chroot} install имя-пакета
Нет, нужно обязательно базу АПТа вести и внутри chroot-а. То есть, все
опции, указанные выше, нужны.

> т.е. rpm внутри chroot устанавливает сначала все
> пакеты из списка, сгенерированного при помощи
> эмуляции установки пакета setup в chroot, а уже
> потом - из аналогичного списка для basesystem?
Да. 

> > Это последствие отсутствия в glibc-core libnss_files.
> это значит, что файлы из glibc-nss будут
> возвращены в glibc-core, или же просто будет
> добавлена зависимость setup от glibc-nss?
Необходимые файлы из glibc-nss будут возвращены в glibc-core.
-- 
/ Alexander Bokovoy
$ cat /proc/identity >~/.signature
  `Senior software developer and analyst for SaM-Solutions Ltd.`
---
Nov 21 20:58:58 alconost kernel: VFS: Busy inodes after unmount. 
		    Self-destruct in 5 seconds.  Have a nice day...
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  6:04   ` Andrey Astafiev
  2001-11-27  8:19     ` Dmitry V. Levin
@ 2001-11-27  9:55     ` Alexander Bokovoy
  1 sibling, 0 replies; 17+ messages in thread
From: Alexander Bokovoy @ 2001-11-27  9:55 UTC (permalink / raw)
  To: devel

On Tue, Nov 27, 2001 at 09:04:58AM +0300, Andrey Astafiev wrote:
> 
> возможно, в BTS и не надо, а для минимальной
> многопользовательской рабочей системы - надо :)
Для этого есть interactivesystem.

> насколько я помню, я ни словом не упомянул,
> что basesystem должен зависеть от passwd.
> я так понял, basesystem является тем ограничивающим
> пакетом в системе, наличие которого при сохраненных
> зависимостях гарантирует присутствие всех
> жизненно-необходимых компонентов?
Да.

> > Как уже было сказано, setup сейчас необходимо
> > ставить до basesystem.
> 
> кстати, в описании basesystem сказано, что этот
> пакет должен быть установлен первым, а Александр
> написал, что сначала нужно установить setup с
> зависящими от него пакетами, хотя таковых нет.
> это временное явление?
Я описывал обобщенный вариант -- кто знает, может быть, в каком-то релизе
нам потребуется сделать более широкую настройку, при которой появится,
например, setup-base, от которого будет зависеть setup-interactive,
предоставляющий так же setup. Это всего-лишь пример.

> > Эти "вытаскивающие за волосы" зависимости (glibc,
> > util-linux,shadow-utils) были сделаны с тем, чтобы
> > в уже работающей системе не потерять необходимые
> > компоненты.
> но ведь теперь для этого существует basesystem?
Содержимое basesystem формируется таким образом, чтобы все необходимые
библиотеки (lib*) вытягивались следом за использующим их пакетами. То
есть, на basesystem необходимо смотреть как на каркас, посетив каждый узел
которого, можно восстановить всю систему, но при этом не делая его слишком
жестким. В противном случае его прийдется пересматривать довольно часто,
что есть неверно. Последний вариант basesystem отнял у нас с Дмитрием
больше четырех часов дискуссии.

> > > еще немного об авторизации. при установке shadow-utils
> > > не создаются файлы shadow и gshadow, хотя могли бы при
> > > помощи скрипта на основе информации из passwd и group.
> >
> > Не думаю, что это актуально в связи с tcb...
> что такое tcb?
Новая система хранения паролей и прочей важной информации взамен
shadow.
-- 
/ Alexander Bokovoy
$ cat /proc/identity >~/.signature
  `Senior software developer and analyst for SaM-Solutions Ltd.`
---
Nov 21 20:58:58 alconost kernel: VFS: Busy inodes after unmount. 
		    Self-destruct in 5 seconds.  Have a nice day...
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] minimal system
  2001-11-27  9:35         ` Dmitry V. Levin
@ 2001-11-27 10:23           ` Andrey Astafiev
  0 siblings, 0 replies; 17+ messages in thread
From: Andrey Astafiev @ 2001-11-27 10:23 UTC (permalink / raw)
  To: devel

> > да там тоже весьма стоящие зависимости.
> > кстати, среди них есть и mingetty...
> > когда будет исправлена зависимость на
> > mingetty в initscripts, здесь ее надо
> > будет удалить, как и mkbootdisk и sash,
> > которые также тянутся из basysytem.
> 
> mingetty - да, sash - да, а mkbootdisk - почему?

извиняюсь, mkbootdisk действительно не причем...
 
> > > Кто сказал, что, напр., fdisk - это basesystem?
> > 
> > пусть fdisk - не basesystem, но от него все
> > равно зависит util-linux, а тот - от basesystem.
> > зачем же тогда зависимости на fdisk и т.д. в
> > util-linux?
> 
> util-linux по сути не зависит от fdisk.
> Зависимость появилась только для того, чтобы при
> dist-upgrade был установлен новый пакет fdisk.

вот так и получается, по сути не зависит,
а практике fdisk попадает в basesytem :)


-- 
andrei at tvcell d0t ru
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2001-11-27 10:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-26  6:35 [devel] minimal system Andrey Astafiev
2001-11-26 11:24 ` Alexander Bokovoy
2001-11-26 11:31   ` Alexander Bokovoy
2001-11-27  6:05   ` Andrey Astafiev
2001-11-27  7:59     ` Dmitry V. Levin
2001-11-27  9:47     ` Alexander Bokovoy
2001-11-26 13:29 ` Dmitry V. Levin
2001-11-26 13:50   ` Andrey Astafiev
2001-11-26 14:02     ` Dmitry V. Levin
2001-11-27  6:04   ` Andrey Astafiev
2001-11-27  8:19     ` Dmitry V. Levin
2001-11-27  9:23       ` Andrey Astafiev
2001-11-27  9:35         ` Dmitry V. Levin
2001-11-27 10:23           ` Andrey Astafiev
2001-11-27  9:43       ` [devel] " Mikhail Zabaluev
2001-11-27  9:47         ` [devel] " Dmitry V. Levin
2001-11-27  9:55     ` Alexander Bokovoy

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git