lfs-ru/part3intro/generalinstructions.xml
Poltern a06e0f6151 Moved a caution to a better page.
Move caution regarding building by mixing
different versions of LFS to General Compilation Instructions.
2023-09-05 11:37:11 +03:00

139 lines
8.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-tools-generalinstructions"
xreflabel="Общие инструкции по компиляции">
<?dbhtml filename="generalinstructions.html"?>
<title>Общие инструкции по компиляции</title>
<caution>
<para>
В процессе разработки LFS инструкции в книге часто изменяются, чтобы адаптироваться
к обновлению пакета или использовать преимущества новых функций из обновленных пакетов.
Смешение инструкций разных версий книги LFS может привести к незначительным поломкам.
Такого рода проблемы обычно являются результатом повторного использования некоторых
скриптов, созданных для предыдущей версии LFS. Такое повторное использование настоятельно
не рекомендуется. Если вы по какой-либо причине повторно используете скрипты из предыдущей
версии LFS, вам нужно быть очень осторожным при обновлении скриптов, чтобы они соответствовали
текущей версии книги LFS.
</para>
</caution>
<para>При сборке пакетов в инструкциях делается несколько допущений:</para>
<itemizedlist>
<listitem>
<para>На некоторые пакеты необходимо наложить патчи перед компиляцией,
метод используется тогда, когда исправление необходимо для решения проблем сборки.
Патчи часто требуются как в этой, так и в следующих главах, но иногда, когда один
и тот же пакет собирается более одного раза, патч требуется не сразу. Поэтому не
беспокойтесь, если инструкции для скачанного патча отсутствуют.
Предупреждающие сообщения о <emphasis>смещении (offset)</emphasis> или
<emphasis>размытии (fuzz)</emphasis> также могут появляться при применении патча. Не
обращайте внимания на эти предупреждения, патч все равно успешно применен.</para>
</listitem>
<listitem>
<para>Во время компиляции большинства пакетов на экране будут отображаться
предупреждения. Это нормально, и их можно смело игнорировать. Предупреждения
появляются, например, когда используется устаревший, недопустимый синтаксис
C или C++. Стандарты C меняются довольно часто, и некоторые пакеты все еще
используют более старый стандарт. Это не является серьезной проблемой, но вызывает
появление предупреждений.</para>
</listitem>
<listitem>
<para>Проверьте в последний раз, что переменная среды <envar>LFS</envar>
настроена правильно:</para>
<screen role="nodump"><userinput>echo $LFS</userinput></screen>
<para>Убедитесь, что в выводе указан путь к точке монтирования раздела LFS,
то есть <filename class="directory">/mnt/lfs</filename>, как в примере из
этой книги.</para>
</listitem>
<listitem>
<para>Наконец, необходимо подчеркнуть два важных момента:</para>
<important>
<para>Инструкции по сборке предполагают, что все <xref
linkend='ch-partitioning-hostreqs'/>, включая символические ссылки,
установлены правильно:</para>
<itemizedlist role='important'>
<listitem override='bullet'><para><command>bash</command> это
используемая оболочка.</para></listitem>
<listitem override='bullet'><para><command>sh</command> это
символическая ссылка на <command>bash</command>.</para></listitem>
<listitem override='bullet'><para><command>/usr/bin/awk</command> это
символическая ссылка на <command>gawk</command>.</para></listitem>
<listitem override='bullet'><para><command>/usr/bin/yacc</command> это
символическая ссылка на <command>bison</command> или небольшой скрипт,
который выполняет bison</para></listitem>
</itemizedlist>
</important>
<important>
<para>Вот краткое описание процесса сборки:</para>
<orderedlist numeration="arabic" spacing="compact">
<listitem>
<para>Поместите все исходники и патчи в каталог, который будет доступен из
среды chroot, например, <filename class="directory">/mnt/lfs/sources/</filename>.<!-- Do
<emphasis>not</emphasis> put sources in
<filename class="directory">/mnt/lfs/tools/</filename>. --></para>
</listitem>
<listitem>
<para>Перейдите в каталог <filename class="directory">/mnt/lfs/sources/</filename>.</para>
</listitem>
<listitem id='buildinstr' xreflabel='Инструкции по сборке пакетов'>
<para>Для каждого пакета:</para>
<orderedlist numeration="loweralpha" spacing="compact">
<listitem>
<para>С помощью программы <command>tar</command> извлеките пакет для
сборки. В <xref linkend="chapter-cross-tools"/> и
<xref linkend="chapter-temporary-tools"/> убедитесь, что при извлечении
пакета вы залогинены под пользователем lfs.</para>
<para>Не используйте никаких методов, кроме команды <command>tar</command>,
для извлечения исходного кода. Примечательно, что использование команды
<command>cp -R</command> для копирования дерева исходного кода в другое
место может привести к уничтожению ссылок и меток времени в дереве исходного
кода и привести к сбою сборки.</para>
</listitem>
<listitem>
<para>Перейдите в каталог, созданный при извлечении пакета.</para>
</listitem>
<listitem>
<para>Следуйте инструкциям по сборке пакета.</para>
</listitem>
<listitem>
<para>Вернитесь в исходный каталог, когда сборка будет завершена.</para>
</listitem>
<listitem>
<para>Удалите извлеченный каталог, если не указано иное.</para>
</listitem>
</orderedlist>
</listitem>
</orderedlist>
</important>
</listitem>
</itemizedlist>
</sect1>