Мой LFS-2003. Часть 3. Об источниках и исходниках

До сих пор я явно недостаточно уделил внимание а) источникам информации о системном самострое и б) принципам подбора пакетов. Попытаюсь исправить этот недостаток.

Для начала хотел бы подчеркнуть, что LFSBook Герарда -- не догма, а руководство к действию (предваряемому размышлениями). По крайней мере, мне кажется, что автор рассматривал ее именно так. Действительно, мало радости, затратив полные астрономические сутки (а именно столько уйдет на самострой работоспособной системы при самом благоприятном расположении звезд), получить в точности то же самое, что получил Герард (или кто угодно другой) -- тогда уж проще развернуть за считанные минуты тот же CRUX. Ибо суть самостроя -- реализовать собственные представления об идеальной Linux-системе.

Во всяком случае, именно такой позиции придерживается уже сформировавшееся LFS community -- это те, кто каждый собирает свой собственный Linux. И результатами своих изысканий члены его регулярно делятся посредством т.н.
намеков -- такой перевод слова hints кажется мне наиболее удачным в данном случае. Здесь можно найти намек на то, как прикрутить к файловую систему devfs, как мигрировать на XFS, как использовать GRUB вместо LILO, и многое, многое другое. В частности, для ярых нелюбителей SysV стиля (к коим отношу и себя), -- как заменить Герардовский bootscripts на BSD init. Немало там можно найти и об особенностях установки отдельных приложений на голый base Linux.

Раз уж речь зашла о devfs -- должен заметить, что MAKEDEV Герарда работает не во всех случаях. В то же время подключение в ядре файловой системы устройств и ее автомонтирование при старте прошло у меня безошибочно.

Об ошибках при компиляции отдельных пакетов... Я собирал самостройный Linux несколько раз, используя как материнскую систему и Gentoo Linux, и Lonix (LiveCD, сам собранный по мотивам LFS), и CRUX (впрочем, о последнем говорить еще рано). И, по моим наблюдениям, ошибки сборки а) жестко привязаны к конкретным версиям пакетов), и б) особенностям материнской системы (вероятно, к тому, как в ней собрана glibc). Так, из Gentoo мне не удалось собрать fileutils, причем не статически (об этом Герард предупреждает, и даже соответствующий патч у него есть), а именно динамически. Вернее, собираться-то они собирались, но при попытке дать команду ls появлялось сообщение об ошибке сегментации. И потому пришлось поначалу пользовать статически собранные версии первой стадии.

Так вот, для полного предотвращения воздействия glibc'а материнской системы в hint'ах можно найти метод сборки "чистого" (pure, по утверждению авторов, некоих Райана Оливера и Грега Шафера) LFS. Правда, при
знакомстве с ним вспоминается анекдот про удаление гланд через... ну, сами знаете, через что, но -- опять же по заявлению авторов, -- работает (самому проверить пока не удалось).

Ну и о выборе пакетов... Канонический набор Герарда можно, с одной стороны, спокойно урезать за счет ed, bin86, MAKEDEV, а как показывает пример CRUX -- и за счет Texinfo (info-документация, по моему скромному мнению, есть самое GNU'тое изобретение мрачных бородатых GNU-хакеров). С другой стороны, он (опять же ИМХО) должен быть расширен инструментарием для работы с файловыми системами, отличными от ext2fs, и, конечно же, логическими томами (LVM) -- гораздо проще создавать файловые системы типа /usr(/local), /opt, /var или /home сразу на логике, чем потом заниматься их переносом. Опять же, devfs, на мой взгляд, ныне -- абсолютно необходимый компонент Base Linux (попробуйте без нее регулярно работать с USB-накопителями). И, конечно же, замена для vim может быть любой -- при условии, что это будет joe (любой другой редактор потянет за собой дополнительные библиотеки).

Это я все к тому, что Base Linux -- такая же системная целостность, как и Distributions FreeBSD. И должна включать в себя все то, что необходимо любому пользователю Linux, и исключать -- то, что должно выбираться в индивидуальном порядке (или -- отдаваться на откуп составителей дистрибутивов).

Так что можно выделить две составляющие успеха Linux-самостроя: 1) внимательное чтение предшественников (включая hint'ы) и 2) собственные размышления о том, какой бы вы хотели видеть идеальную систему.


К содержанию

. .