Содержание
jhALFS
ВВЕДЕНИЕ
Скрипты в этом каталоге реализуют автоматизацию здания. системы GNU/LInux, как описано в серии книг «Linux From Scratch». Название проекта — jhalfs: в этом названии «alfs» означает «автоматизированный Linux с нуля», а инициалы «jh» были сохранены с тех пор оригинальный код «jhalfs-0.2», разработанный Джереми Хантворком.
Список поддерживаемых книг можно найти по адресу
http://wiki.linuxfromscratch.org/alfs/wiki/SupportedBooks.
Документация разделена на различные файлы README.*. Вот список того, что находится в котором:
- README (этот файл): инструкции по использованию книги LFS. Это должно быть достаточно, если вы просто хотите построить базовую систему согласно книге LFS. Это также обязательная к прочтению для всех остальных проектов.
- README.CLFS: дополнительные инструкции по использованию серии книг CLFS.
- README.BLFS: инструкции по установке инфраструктуры автоматизированной сборки для книги BLFS. Есть два способа сделать это: (i) установить инструменты в конце сборки LFS (CLFS в этом случае не поддерживается), или (ii) установить инструменты на уже работающую систему. Оба метода описаны в этом файле.
- README.CUSTOM: инструкции по запуску пользовательских команд во время xLFS build, в конце сборки xLFS. Обратите внимание, что вы не найдете инструкции по написанию этих команд, но некоторые примеры
доступный.
- README.PACKAGE_MANAGEMENT: инструкции по использованию управления пакетами во время сборка (только для LFS, патчи для CLFS приветствуются…)
- README.HLFS: очень короткий файл, объясняющий, почему нельзя использовать HLFS с текущая версия инструмента.
Другими источниками информации являются контекстная справка в интерфейсе меню, и сами книги xLFS.
ПРЕДВАРИТЕЛЬНЫЕ УСЛОВИЯ
Как уже было сказано, настоятельно рекомендуется сначала построить вручную полную систему, прежде чем пытаться автоматизировать сборку.
Конечно, «Требования к хост-системе» должны быть выполнены. Необходимые Дополнительные пакеты подробно описаны внизу страницы:
http://www.linuxfromscratch.org/alfs/download.html
УСТАНОВКА
Установка не требуется. Возможно, вы захотите переместить файлы в этом каталог в удобное место, а затем следуйте инструкциям ниже.
КОНФИГУРАЦИЯ
КОНФИГУРАЦИЯ ИНСТРУМЕНТОВ
Конфигурация самих инструментов отсутствует. Различные Параметры сборки задаются через интерфейс с меню. Смотреть Подробности см. в разделе «РАБОТА» ниже.
ПРЕДВАРИТЕЛЬНЫЕ ЗАДАЧИ
Этот инструмент вообще не поддерживает создание раздела и монтирование. точка для построенной системы. Вы должны следовать книге до раздела «Монтирование нового раздела». Обратите внимание, что имя по умолчанию для Точка монтирования раздела — «/mnt/build_dir» вместо /mnt/{c,}lfs. Вы можете изменить это значение по умолчанию на любое другое в меню, поэтому вы можете назвать его /mnt/lfs, или как вам нравится. Мы будем использовать имя /mnt/build_dir в дальнейшем.
Инструмент может загрузить необходимые пакеты для вас, или вы можете загрузить их самостоятельно. Инструмент может опционально использовать каталог архива пакета где хранятся загруженные пакеты. Имя этого каталога может быть сделано доступны для инструмента двумя способами: (i) экспортировать переменную SRC_ARCHIVE, например SRC_ARCHIVE=/usr/src, (ii) введите имя в поле «Пакет Подсказка меню «Архивный каталог». Обратите внимание, что пользователь должен иметь право записи разрешение на этот каталог. Если нужный пакет найден в этом каталог, он копируется в /mnt/build_dir/sources, если нет, то он скачал в этот каталог и скопировал в /mnt/build_dir/sources, за исключением случаев, когда он находится в /mnt/build_dir/sources, в этом случае он просто скопировано в $SRC_ARCHIVE. Если вы хотите, чтобы инструмент загружал пакеты и вы не хотите их архивировать, просто отключите SRC_ARCHIVE и сохраните запись по умолчанию для «Package Archive Directory». Если вы решите загрузить пакеты самостоятельно, вы должны загрузить (или скопировать) их в /mnt/build_dir/sources напрямую.
Если вы хотите собрать ядро как часть автоматизированной сборки, выберите «Сборка ядра» в меню. Затем необходимо создать файл конфигурации предоставлено. Для этого рекомендуется загрузить ядро tarball, распакуйте его, запустите <make menuconfig>, настройте ядро как указано ниже книгу и сохраните полученный файл .config в месте, где он может быть быть извлечены позже (указано удобное место и имя)
$SRC_ARCHIVE/config-<arch>-<версия ядра>-<сведения о конфигурации>).
Другой файл, который вы можете предоставить, это файл fstab. Чтобы использовать его, выберите «Использовать пользовательский файл fstab» в интерфейсе меню и введите имя файл, где просили. Что касается конфигурации ядра, этот файл должен быть готовым перед запуском меню. Удобное расположение и название
$SRC_ARCHIVE/fstablfs.
На более продвинутом уровне вы можете захотеть предоставить пользовательские команды. для запуска в конце сборки (C)LFS. Скрипты, содержащие эти команды находятся в каталоге ./custom/config. Примеры приведены в ./custom/examples. Шаблон предоставляется как ./custom/template. Смотреть Более подробную информацию см. в файле README.CUSTOM.
БЕГ
Для запуска вам необходимо войти в систему как обычный пользователь с привилегиями sudo. Makefile. Кроме того, у вас должно быть достаточно привилегий стать любым пользователем. Если вас не беспокоят вопросы безопасности, запись для пользователя «jhalfs_user» в /etc/sudoers может быть jhalfs_user ВСЕ=(ВСЕ) БЕЗПАРОЛЯ:ВСЕ
Команда <make> запустит программу конфигурации на основе меню. Базовый код меню был заимствован из BusyBox и немного изменен для наше использование.
Помощь по параметру функции доступна в онлайн-помощи. Пожалуйста используйте эту функцию: она может содержать дополнительную информацию, не продублировано в этом файле.
Сначала вам следует выбрать, какую книгу и какой вкус вы хотите создать. Примечание что когда вы выбираете книгу BLFS, инструмент просто установит BLFS инструмент для вашей системы. Вам придется запустить установленный инструмент для сборки пакеты в BLFS. Смотрите README.BLFS, чтобы узнать, как. Если вы выберете любой другой книги, вам придется настроить параметры и параметры сборки из меню. Обратите внимание, что вы можете выбрать установку инструментов blfs на недавно построенная система. Это не то же самое, что выбрать книга BLFS в меню, которая установит инструменты blfs на в настоящее время работает система.
Меню «Общие настройки» — это то место, где должно быть указано имя «Каталог сборки». Введено. Другие записи в этом меню выбирают, что инструмент должен делать. Пункт «Запустить Makefile» выбирает, будет ли инструмент запускать сборку автоматически после генерации необходимых файлов. «Перестроить файлы» выбирает следует ли очищать каталог сборки перед тем, как делать что-либо еще. Для защиты против удаления важных файлов, это можно сделать только в пустом каталоге, или каталог, ранее заполненный инструментом.
Меню «Настройки сборки» — это место, где можно настроить различные параметры сборки. выбрано. Два варианта: «Использовать пользовательский файл fstab» и «Собрать ядро», были описаны выше. «Не использовать/не отображать progress_bar», если установлено, будет предотвратить отображение полосы прогресса во время сборки. Это может быть полезно на медленной машине. Другие варианты должны быть понятны, используя либо онлайн-помощь или чтение книг.
Меню «Дополнительные функции» предназначено для различных задач по обслуживанию, таких как Тестирование инструкций по сборке или отчет по статистике сборки. Один полезный опция «Оптимизация и распараллеливание». Не рекомендуется использовать это для установки флагов оптимизации компилятора, хотя это возможно, но если вы выберете его, вы сможете выбрать количество параллельных `make' рабочих мест, что позволяет значительно ускорить сборку на современных многоядерных процессорах.
После того, как вы задали параметры и сохранили конфигурацию, скрипт запущен. Его цель — извлечь инструкции из выбранной книги для генерации скриптов и для генерации Makefile, который позволяет запускать скрипты в правильном порядке. Скрипт сначала проверяет, что хост может запустить себя и построить систему xLFS, затем проверить конфигурацию и перечисляет параметры. На этом этапе вы можете выбрать выход или продолжить с указанными параметрами. Затем скрипт перейдет к сгенерируйте Makefile и скрипты сборки, при желании загрузите пакеты, и в конечном итоге проверить хост-пререквизит. Если у вас есть выбрано «Запустить makefile», команда <make> запускается в адекватный каталог, и сборка начнется. Если нет, вам придется запустить «make» вручную, например: «make -C /mnt/build_dir/jhalfs», если вы использовали параметры по умолчанию (см. макет в $BUILDDIR в (Вопросы и ответы ниже).
Если вы запустите скрипт jhalfs напрямую, то единственная функция, которую вы можете выбрать, чтобы отобразить номер версии, запустив <./jhalfs -v>
РАСПОЛОЖЕНИЕ
/BLFS (see README.BLFS) /CLFS/master.sh /clfs.xsl /CLFS2/master.sh /clfs2.xsl /CLFS3/master.sh /clfs3.xsl /HLFS/master.sh /hlfs.xsl /LFS/master.sh /lfs.xsl /common/common_functions /makefile_functions /packages.xsl /urls.xsl /create-sbu_du-report.sh /progress_bar.sh /blfs-tool-deps/9xx-* /libs/func_* /custom/template /config/ /examples/* /examples_CLFS-E/* /extras/do_copy_files /do_ica_prep /do_ica_work /optimize/opt_config /opt_override /optimize_functions /opt_config.d/noOpt /noSymbols /O3pipe /O3pipe_march /defOpt_fPIC /menu/* README README.BLFS README.CLFS README.HLFS README.CUSTOM TODO LICENSE Config.in Makefile jhalfs blfs-tool
Часто задаваемые вопросы
«Это не работает»
Есть несколько причин, почему это может быть так. Одна из возможностей — следующее: jhalfs был разработан для работы с версиями, находящимися в разработке из серии книг LFS. Следовательно, изменения в книге иногда сломать старые версии jhalfs. Прежде чем начать вырывать волосы, загрузите последнюю версию jhalfs, чтобы посмотреть, решит ли это вашу проблему проблема. Обратите внимание, что может быть и наоборот. Если вы хотите построить старая версия книги, возможно, вам придется понизить версию jhalfs версия.
«Как указать место сборки?»
Оригинальный документ LFS работал против известного местоположения /mnt/lfs. Этот скрипт томатизирует сборку всех серий LFS книги и использует общее местоположение $BUILDDIR со значением по умолчанию /mnt/build_dir. Вы можете изменить это значение в соответствии со своими потребностями.
Ниже приведена структура $BUILDDIR.
$BUILDDIR/ jhalfs (Makefile, скрипты cmd, логи и т. д.) sources (где находятся пакеты) tools (временная система самозагрузки) tools (временно только CLFS) ... Структура FHS dir ... blfs_root (файлы для использования blfs-tool, если выбрана его установка)
«Какова функция переменной SRC_ARCHIVE?»
Когда jhalfs запускается и выбрана загрузка пакетов, создается локальный скопируйте необходимые пакеты в $BUILDDIR/sources, загрузив файлы. Если переменная SRC_ARCHIVE определена, программное обеспечение сначала ищет файл в этом месте и, если он найден, копирует его в $BUILDDIR/sources. Если файлы не найдены в SRC_ARCHIVE _и_ вы написали priv в каталог, в котором будут зеркально отображены все загруженные файлы.
«Как мне установить местоположение SRC_ARCHIVE?»
Лучший способ установить значение SRC_ARCHIVE —
export SRC_ARCHIVE=/wherever/you/store/downloaded/packages
или вы можете указать полный путь в соответствующем пункте меню.
«Зачем иметь 2 копии файлов?»
Файлы пакета должны быть видны во время фазы chroot, и это простой и надежный метод сделать это. Этот метод также обрабатывает Метод сборки загрузки CLFS, при котором окончательная сборка может быть выполнена на отдельном машина.
«Какова функция меню «Учетная запись пользователя» и «Групповая учетная запись»?
Если вы запускаете jhalfs с учетной записи с низкими или непривилегированными правами, вы можете не имеет прав на создание/удаление пользователя, необходимого для создания временного инструменты. Эти настройки позволяют вам использовать собственное имя пользователя и группы для выполнения этих действий.
шаги сборки.
Эти переменные также можно настраивать при вызове make:
cd $BUILDDIR; make LUSER=myaccount LGROUP=mygroup
Единственным изменением в вашей учетной записи будет создание НОВОГО .bashrc после сохранения вашего оригинала в .bashrc.XXX
«Когда я пытаюсь собрать CLFS, Makefile дает сбой на середине»
Причин отказа может быть множество, но наиболее вероятная причина в том, что вы делаете кросс-сборку с использованием метода «chroot» и target несовместим с хостом. Если вы решили построить с помощью метод chroot тест выполняется в конце temptools фаза. Если тест пройден успешно, сборка продолжается внутри chroot-окружения. Однако если тест не пройден, это означает, что хост и цель не совместимы, и вам следует использовать метод «boot» для создания вашей цели код. В качестве крайнего примера: вы можете построить целевую платформу sparc на платформе x86, но только фаза temptools. Вы должны выбрать метод «boot», а не 'chroot.' Вам необходимо перенести набор инструментов на платформу sparc, перезагрузить sparc box и продолжаем сборку. Из всех книг серии LFS книга Cross-LFS требует наибольшего понимание комбинации оборудования хост/цель. Пожалуйста, прочтите книгу внимательно и не пропускайте легкие части (их нет…)
«Как остановить сборку в заранее определенной выбранной точке?»
Запустите Makefile вручную, указав последнюю пронумерованную цель для сборки. как точка останова. Например:
make BREAKPOINT=84-bash
Сборку можно остановить также в конце фазы сборки верхнего уровня с помощью вызывая напрямую соответствующую цель mk_*. Например:
make mk_LUSER
Чтобы узнать правильные целевые имена для этой сборки книги, смотрите Makefile.
Авторы:
- George Boudreau
- Manuel Canales Esparcia
- Pierre Labastie