[devel] minimal system

Andrey Astafiev =?iso-8859-1?q?andrei_=CE=C1_tvcell=2Eru?=
Вт Ноя 27 09:05:39 MSK 2001


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



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