[devel] minimal system

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_alt-linux=2Eorg?=
Пн Ноя 26 16:29:14 MSK 2001


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.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20011126/3523c8de/attachment-0001.bin>


Подробная информация о списке рассылки Devel