lfs-ru/part3intro/generalinstructions.xml

139 lines
8.1 KiB
XML
Raw Normal View History

<?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"
2023-05-24 15:27:52 +03:00
xreflabel="Общие инструкции по компиляции">
<?dbhtml filename="generalinstructions.html"?>
<title>Общие инструкции по компиляции</title>
<caution>
<para>
В процессе разработки LFS инструкции в книге часто изменяются, чтобы адаптироваться
к обновлению пакета или использовать преимущества новых функций из обновленных пакетов.
Смешение инструкций разных версий книги LFS может привести к незначительным поломкам.
Такого рода проблемы обычно являются результатом повторного использования некоторых
скриптов, созданных для предыдущей версии LFS. Такое повторное использование настоятельно
не рекомендуется. Если вы по какой-либо причине повторно используете скрипты из предыдущей
версии LFS, вам нужно быть очень осторожным при обновлении скриптов, чтобы они соответствовали
текущей версии книги LFS.
</para>
</caution>
<para>При сборке пакетов в инструкциях делается несколько допущений:</para>
<itemizedlist>
<listitem>
<para>На некоторые пакеты необходимо наложить патчи перед компиляцией,
2023-08-02 23:14:31 +03:00
метод используется тогда, когда исправление необходимо для решения проблем сборки.
Патчи часто требуются как в этой, так и в следующих главах, но иногда, когда один
2023-06-23 10:26:42 +03:00
и тот же пакет собирается более одного раза, патч требуется не сразу. Поэтому не
беспокойтесь, если инструкции для скачанного патча отсутствуют.
Предупреждающие сообщения о <emphasis>смещении (offset)</emphasis> или
<emphasis>размытии (fuzz)</emphasis> также могут появляться при применении патча. Не
обращайте внимания на эти предупреждения, патч все равно успешно применен.</para>
</listitem>
<listitem>
<para>Во время компиляции большинства пакетов на экране будут отображаться
предупреждения. Это нормально, и их можно смело игнорировать. Предупреждения
появляются, например, когда используется устаревший, недопустимый синтаксис
C или C++. Стандарты C меняются довольно часто, и некоторые пакеты все еще
2023-06-23 10:26:42 +03:00
используют более старый стандарт. Это не является серьезной проблемой, но вызывает
появление предупреждений.</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>
2023-06-22 21:45:00 +03:00
<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>
2023-06-23 10:26:42 +03:00
<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>
2023-06-23 10:26:42 +03:00
<para>Перейдите в каталог <filename class="directory">/mnt/lfs/sources/</filename>.</para>
</listitem>
2023-06-22 21:45:00 +03:00
<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>
2023-06-23 10:26:42 +03:00
<para>Не используйте никаких методов, кроме команды <command>tar</command>,
для извлечения исходного кода. Примечательно, что использование команды
<command>cp -R</command> для копирования дерева исходного кода в другое
место может привести к уничтожению ссылок и меток времени в дереве исходного
кода и привести к сбою сборки.</para>
</listitem>
<listitem>
<para>Перейдите в каталог, созданный при извлечении пакета.</para>
</listitem>
<listitem>
2023-06-23 10:26:42 +03:00
<para>Следуйте инструкциям по сборке пакета.</para>
</listitem>
<listitem>
2023-06-23 10:26:42 +03:00
<para>Вернитесь в исходный каталог, когда сборка будет завершена.</para>
</listitem>
<listitem>
<para>Удалите извлеченный каталог, если не указано иное.</para>
</listitem>
</orderedlist>
</listitem>
</orderedlist>
</important>
</listitem>
</itemizedlist>
</sect1>