mirror of
https://github.com/Poltern/lfs-ru.git
synced 2024-10-19 12:10:32 +03:00
a06e0f6151
Move caution regarding building by mixing different versions of LFS to General Compilation Instructions.
139 lines
8.1 KiB
XML
139 lines
8.1 KiB
XML
<?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>
|