* [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