mirror of
https://github.com/Poltern/lfs-ru.git
synced 2024-10-18 11:50:21 +03:00
Translated chapter04
This commit is contained in:
parent
aa72195749
commit
8a1ee691af
@ -12,22 +12,21 @@
|
|||||||
|
|
||||||
<para>Многие люди хотели бы знать заранее, сколько примерно времени потребуется
|
<para>Многие люди хотели бы знать заранее, сколько примерно времени потребуется
|
||||||
для компиляции и установки каждого пакета. Поскольку Linux From Scratch может
|
для компиляции и установки каждого пакета. Поскольку Linux From Scratch может
|
||||||
быть построен на различных системах, невозможно дать точную оценку времени.
|
быть собран на различных системах, невозможно дать точную оценку времени.
|
||||||
Сборка одного из самых больших пакетов (Glibc) займет около 20 минут на быстрых системах,
|
Сборка самого большого пакета (gcc) займет около 5 минут на быстрых системах,
|
||||||
но может занять до трех дней на более медленных компьютерах! Вместо фактического
|
но может занять несколько дней на более медленных компьютерах! Вместо фактического
|
||||||
времени в книге используется показатель Стандартная единица времени сборки (SBU).</para>
|
времени в книге используется показатель "стандартная единица времени сборки" (SBU).</para>
|
||||||
|
|
||||||
<para>Показатель СБУ рассчитывается следующим образом. Первым пакетом, который
|
<para>Показатель SBU рассчитывается следующим образом. Первым пакетом, который нужно скомпилировать,
|
||||||
будет скомпилирован из этой книги, является binutils в
|
является binutils в <xref linkend="chapter-cross-tools"/>. Время, необходимое для компиляции
|
||||||
<xref linkend="chapter-cross-tools"/>. Время, необходимое для компиляции этого
|
этого пакета с использованием одного ядра, будет называться стандартной единицей времени сборки
|
||||||
пакета, будет называться Стандартная единица времени сборки или SBU. Время компиляции
|
или SBU. Время компиляции остальных пакетов будет рассчитано относительно этого времени.</para>
|
||||||
остальных пакетов будет выражено относительно этого времени.</para>
|
|
||||||
|
|
||||||
<para>Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU.
|
<para>Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU.
|
||||||
Это означает, что если системе потребовалось 10 минут для компиляции и сборки
|
Это означает, что если вашей системе потребовалось 10 минут для компиляции и сборки
|
||||||
первого прохода binutils, то для сборки этого пакета потребуется
|
первого прохода binutils, то для сборки этого пакета потребуется
|
||||||
<emphasis>примерно</emphasis> 45 минут. К счастью, в большинстве случаев время
|
<emphasis>примерно</emphasis> 45 минут. К счастью, в большинстве случаев время
|
||||||
сборки короче, чем у binutils.</para>
|
сборки меньше, чем у binutils.</para>
|
||||||
|
|
||||||
<para>В целом, величина SBU не совсем точна, поскольку она зависит от многих
|
<para>В целом, величина SBU не совсем точна, поскольку она зависит от многих
|
||||||
факторов, включая версию GCC хост-системы. Она приведены здесь, чтобы дать
|
факторов, включая версию GCC хост-системы. Она приведены здесь, чтобы дать
|
||||||
@ -38,21 +37,25 @@
|
|||||||
<para>Для многих современных систем с несколькими процессорами (или ядрами)
|
<para>Для многих современных систем с несколькими процессорами (или ядрами)
|
||||||
время компиляции пакета можно сократить, выполнив <quote>параллельную сборку</quote>,
|
время компиляции пакета можно сократить, выполнив <quote>параллельную сборку</quote>,
|
||||||
либо установив переменную среды, либо сообщив программе <command>make</command>,
|
либо установив переменную среды, либо сообщив программе <command>make</command>,
|
||||||
сколько процессоров доступно. Например, процессор Intel i5-6500 может
|
сколько ядер задействовать для сборки. Например, процессор Intel i5-6500 может
|
||||||
поддерживать четыре одновременных процесса:</para>
|
поддерживать четыре одновременных потока:</para>
|
||||||
|
|
||||||
<screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
|
<screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
|
||||||
|
|
||||||
<para>или просто собирать с:</para>
|
<para>или просто собирать с флагом:</para>
|
||||||
|
|
||||||
<screen role="nodump"><userinput>make -j4</userinput></screen>
|
<screen role="nodump"><userinput>make -j4</userinput></screen>
|
||||||
|
|
||||||
<para>Когда используется несколько процессоров, единицы SBU в книге будут
|
<para>Когда используется несколько ядер, единицы измерения SBU будут
|
||||||
различаться еще больше, чем обычно. В некоторых случаях make просто
|
различаться еще больше, чем обычно. В некоторых случаях make просто
|
||||||
завершится ошибкой. Анализ выходных данных процесса сборки также будет более
|
завершится ошибкой. Анализ выходных данных процесса сборки также будет более
|
||||||
сложным, поскольку строки различных процессов будут чередоваться. Если вы
|
сложным, поскольку строки разных потоков будут чередоваться. Если вы
|
||||||
столкнулись с проблемой на этапе сборки, вернитесь к однопроцессорной сборке,
|
столкнулись с проблемой на этапе сборки, вернитесь к сборке на одном ядре,
|
||||||
чтобы проанализировать сообщения об ошибках.</para>
|
чтобы проанализировать сообщения об ошибках.</para>
|
||||||
|
|
||||||
|
<para>Представленные здесь значения времени основаны на замерах при использовании
|
||||||
|
четырех ядер (-j4). Время, указанное в главе 8, также включает время выполнения
|
||||||
|
регрессионных тестов для пакета, если не указано иное.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -25,9 +25,9 @@
|
|||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>Запуск наборов тестов, описанных в <xref linkend="chapter-cross-tools"/>
|
<para>Запуск наборов тестов, описанных в <xref linkend="chapter-cross-tools"/>
|
||||||
и <xref linkend="chapter-temporary-tools"/>, невозможен, поскольку программы
|
и <xref linkend="chapter-temporary-tools"/>, не имеет смысла, поскольку
|
||||||
компилируются с помощью кросс-компилятора, и предполагается, что они не могут
|
программы компилируются с помощью кросс-компилятора, они, вероятно, не могут
|
||||||
запускаться на хосте сборки.</para>
|
работать на хосте сборки.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>Распространенной проблемой при запуске наборов тестов для binutils и GCC
|
<para>Распространенной проблемой при запуске наборов тестов для binutils и GCC
|
||||||
@ -40,6 +40,6 @@
|
|||||||
<para>Иногда наборы тестов не работают, по причинам, о которых знают разработчики
|
<para>Иногда наборы тестов не работают, по причинам, о которых знают разработчики
|
||||||
и которые они считают некритичными. Просмотрите журналы, расположенные по адресу
|
и которые они считают некритичными. Просмотрите журналы, расположенные по адресу
|
||||||
<ulink url="&test-results;"/>, чтобы проверить, ожидаются ли сбои. Этот сайт
|
<ulink url="&test-results;"/>, чтобы проверить, ожидаются ли сбои. Этот сайт
|
||||||
актуален для всех тестов в книге.</para>
|
актуален для всех наборов тестов, описанных в книге.</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -10,15 +10,14 @@
|
|||||||
|
|
||||||
<title>Создание пользователя LFS</title>
|
<title>Создание пользователя LFS</title>
|
||||||
|
|
||||||
<para>При входе в систему под пользователем
|
<para>При входе в систему под учетной записью
|
||||||
<systemitem class="username">root</systemitem> допущение одной ошибки может
|
<systemitem class="username">root</systemitem> допущение одной ошибки может
|
||||||
привести к повреждению или разрушению системы. Поэтому пакеты в следующих
|
привести к повреждению или разрушению системы. Поэтому пакеты в следующих
|
||||||
двух главах собираются из-под учетной записи непривилегированного пользователя.
|
двух главах собираются из-под учетной записи непривилегированного пользователя.
|
||||||
Вы можете использовать свое собственное имя пользователя, но чтобы упростить
|
Вы можете использовать свое собственное имя пользователя, но чтобы упростить
|
||||||
настройку рабочей среды, создайте нового пользователя с именем <systemitem
|
настройку рабочей среды, создайте нового пользователя с именем <systemitem
|
||||||
class="username">lfs</systemitem> в качестве члена новой группы (также
|
class="username">lfs</systemitem>, который является членом одноименной группы
|
||||||
называемой <systemitem class="groupname">lfs</systemitem>) и используйте этого
|
и выполняйте команды из-под этой учетной записи в процессе установки.
|
||||||
пользователя в течение всего процесса сборки пакетов временного набора инструментов.
|
|
||||||
От имени пользователя <systemitem class="username">root</systemitem> выполните
|
От имени пользователя <systemitem class="username">root</systemitem> выполните
|
||||||
следующие команды, чтобы добавить нового пользователя:</para>
|
следующие команды, чтобы добавить нового пользователя:</para>
|
||||||
|
|
||||||
@ -58,30 +57,30 @@ useradd -s /bin/bash -g lfs -m -k /dev/null lfs</userinput></screen>
|
|||||||
<para>Этот параметр предотвращает возможное копирование файлов из
|
<para>Этот параметр предотвращает возможное копирование файлов из
|
||||||
предустановленного набора каталогов (по умолчанию
|
предустановленного набора каталогов (по умолчанию
|
||||||
<filename class="directory">/etc/skel</filename>) путем изменения
|
<filename class="directory">/etc/skel</filename>) путем изменения
|
||||||
местоположения ввода на специальное null-устройство</para>
|
местоположения ввода на специальное null-устройство.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>lfs</parameter></term>
|
<term><parameter>lfs</parameter></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para> Это фактическое имя созданного пользователя.</para>
|
<para>Это имя нового пользователя.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>Чтобы войти в систему как пользователь <systemitem class="username">lfs</systemitem>
|
<para>Если вы хотите войти в систему как &lfs-user; или переключиться на &lfs-user;
|
||||||
(в отличие от переключения на пользователя <systemitem class="username">lfs</systemitem>
|
из учетной записи непривилегированного пользователя (в отличие от переключения на
|
||||||
при входе в систему как <systemitem class="username">root</systemitem>, для которого не
|
пользователя &lfs-user; при входе в систему как &root;, для которого не требуется
|
||||||
требуется, чтобы пользователь <systemitem class="username">lfs</systemitem> имел пароль),
|
пароль пользователя &lfs-user;), вам необходимо установить пароль для &lfs-user;.
|
||||||
задайте пароль пользователя <systemitem class="username">lfs</systemitem> :</para>
|
Выполните следующую команду от имени пользователя &root;, чтобы установить пароль:</para>
|
||||||
|
|
||||||
<screen role="nodump"><userinput>passwd lfs</userinput></screen>
|
<screen role="nodump"><userinput>passwd lfs</userinput></screen>
|
||||||
|
|
||||||
<para>Предоставьте пользователю <systemitem class="username">lfs</systemitem> полный
|
<para>Предоставьте пользователю <systemitem class="username">lfs</systemitem> полный
|
||||||
доступ ко всем каталогам в папке <filename class="directory">$LFS</filename>, сделав
|
доступ ко всем каталогам в папке <filename class="directory">$LFS</filename>, назначив
|
||||||
<systemitem class="username">lfs</systemitem> владельцем каталога:</para>
|
<systemitem class="username">lfs</systemitem> владельцем:</para>
|
||||||
|
|
||||||
<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
|
<screen><userinput>chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
|
||||||
case $(uname -m) in
|
case $(uname -m) in
|
||||||
@ -93,15 +92,15 @@ esac</userinput></screen>
|
|||||||
подсказка "lfs:~$" не появляется сразу, ввод команды <command>fg</command>
|
подсказка "lfs:~$" не появляется сразу, ввод команды <command>fg</command>
|
||||||
устранит проблему.</para></note>
|
устранит проблему.</para></note>
|
||||||
|
|
||||||
<para>Затем войдите в систему как пользователь <systemitem class="username">lfs</systemitem>.
|
<para>Затем запустите оболочку, работающую от имени пользователя &lfs-user;.
|
||||||
Это можно сделать через виртуальную консоль, через графическую оболочку или с помощью
|
Это можно сделать, войдя в систему как &lfs-user; на виртуальной консоли или
|
||||||
следующей команды замены/переключения пользователя:</para>
|
с помощью следующей команды замены/переключения пользователя:</para>
|
||||||
|
|
||||||
<screen role="nodump"><userinput>su - lfs</userinput></screen>
|
<screen role="nodump"><userinput>su - lfs</userinput></screen>
|
||||||
|
|
||||||
<para>Аргумент <quote><parameter>-</parameter></quote> передает значение команде
|
<para>Аргумент <quote><parameter>-</parameter></quote> передает значение команде
|
||||||
<command>su</command> для запуска оболочки входа в систему, а не обычной оболочки.
|
<command>su</command> для запуска оболочки входа в систему, а не обычной оболочки.
|
||||||
Разнличия между этими двумя типами оболочек можно найти в <filename>bash(1)</filename>
|
Разница между этими двумя типами оболочек подробно описана в <filename>bash(1)</filename>
|
||||||
и <command>info bash</command>.</para>
|
и <command>info bash</command>.</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -10,12 +10,13 @@
|
|||||||
|
|
||||||
<title>Создание ограниченной иерархии папок в файловой системе LFS</title>
|
<title>Создание ограниченной иерархии папок в файловой системе LFS</title>
|
||||||
|
|
||||||
<para>Первая задача, выполняемая на разделе LFS, — это создание ограниченной
|
<para>В этом разделе мы начинаем заполнять файловую систему LFS элементами, которые
|
||||||
|
будут основой конечной системы Linux. Первым шагом является создание ограниченной
|
||||||
иерархии каталогов, чтобы программы, скомпилированные в <xref
|
иерархии каталогов, чтобы программы, скомпилированные в <xref
|
||||||
linkend="chapter-temporary-tools"/> (а также glibc и libstdc++ в <xref
|
linkend="chapter-temporary-tools"/> (а также glibc и libstdc++ в <xref
|
||||||
linkend="chapter-cross-tools"/>), могли быть установлены в их конечном расположении.
|
linkend="chapter-cross-tools"/>), могли быть установлены в их конечном расположении.
|
||||||
Это необходимо для того, чтобы временные программы были перезаписаны при их пересборке
|
Это необходимо для того, чтобы эти временные программы были перезаписаны при сборке
|
||||||
в <xref linkend="chapter-building-system"/>.</para>
|
окончательных версий в <xref linkend="chapter-building-system"/>.</para>
|
||||||
|
|
||||||
<para>Создайте необходимую иерархию каталогов, выполнив следующую команду от имени
|
<para>Создайте необходимую иерархию каталогов, выполнив следующую команду от имени
|
||||||
<systemitem class="username">root</systemitem>:</para>
|
<systemitem class="username">root</systemitem>:</para>
|
||||||
@ -34,8 +35,20 @@ esac</userinput></screen>
|
|||||||
с помощью кросс-компилятора (более подробная информация приведена в разделе <xref
|
с помощью кросс-компилятора (более подробная информация приведена в разделе <xref
|
||||||
linkend="ch-tools-toolchaintechnotes"/>). Чтобы отделить кросс-компилятор от других
|
linkend="ch-tools-toolchaintechnotes"/>). Чтобы отделить кросс-компилятор от других
|
||||||
программ, он будет установлен в специальный каталог. Создайте этот каталог с
|
программ, он будет установлен в специальный каталог. Создайте этот каталог с
|
||||||
помощью команды:</para>
|
помощью следующей команды:</para>
|
||||||
|
|
||||||
<screen><userinput>mkdir -pv $LFS/tools</userinput></screen>
|
<screen><userinput>mkdir -pv $LFS/tools</userinput></screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
Редакторы LFS намеренно решили не использовать каталог
|
||||||
|
<filename class="directory">/usr/lib64</filename>. В процессе сборки предпринимается
|
||||||
|
ряд шагов, чтобы убедиться, что набор инструментов не будет его использовать. Если
|
||||||
|
по какой-либо причине этот каталог появится (это может произойти, если вы допустили
|
||||||
|
ошибку, следуя инструкциям, или потому что вы установили бинарный пакет, создавший
|
||||||
|
его после сборки LFS), это может привести к поломке вашей системы. Вы должны быть
|
||||||
|
уверены, что этого каталога не существует.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
<para>В этой главе мы выполним несколько задач, чтобы подготовиться к
|
<para>В этой главе мы выполним несколько задач, чтобы подготовиться к
|
||||||
сборке временной системы. Мы создадим несколько каталогов в
|
сборке временной системы. Мы создадим несколько каталогов в
|
||||||
<filename class="directory">$LFS</filename> для установки временных
|
<filename class="directory">$LFS</filename> (в котором установим временные
|
||||||
инструментов, добавим непривилегированного пользователя для снижения риска
|
инструменты), добавим непривилегированного пользователя и настроим окружение
|
||||||
и настроим окружение для этого пользователя. Кроме этого, будут даны
|
для этого пользователя. Кроме этого, будут даны пояснения по стандартной
|
||||||
пояснения по стандартной единице времени сборки, или <quote>SBU</quote>,
|
единице времени сборки, или <quote>SBU</quote>, которую мы используем для
|
||||||
которую мы используем для измерения того, сколько времени требуется для
|
измерения времени необходимого для сборки пакетов LFS, и предоставим некоторую
|
||||||
сборки пакетов LFS, и предоставим некоторую информацию о наборах тестов.</para>
|
информацию о наборах тестов.</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -20,16 +20,18 @@
|
|||||||
EOF</userinput></screen>
|
EOF</userinput></screen>
|
||||||
|
|
||||||
<para>При входе в систему под учетной записью пользователя
|
<para>При входе в систему под учетной записью пользователя
|
||||||
<systemitem class="username">lfs</systemitem> начальная оболочка представляет
|
<systemitem class="username">lfs</systemitem> или при переключении на
|
||||||
собой оболочку <emphasis>входа</emphasis> в систему, которая читает данные из
|
&lfs-user;, используя команду <command>su</command> с опцией
|
||||||
<filename>/etc/profile</filename> хоста (который, возможно, содержит некоторые
|
<quote><parameter>-</parameter></quote>, начальная оболочка представляет собой
|
||||||
|
оболочку <emphasis>login</emphasis>, которая читает данные из
|
||||||
|
<filename>/etc/profile</filename> хоста (который, вероятно, содержит некоторые
|
||||||
настройки и переменные среды), а затем <filename>.bash_profile</filename>.
|
настройки и переменные среды), а затем <filename>.bash_profile</filename>.
|
||||||
Команда <command>exec env -i.../bin/bash</command> в файле
|
Команда <command>exec env -i.../bin/bash</command> в файле
|
||||||
<filename>.bash_profile</filename> заменяет запущенную оболочку новой, не
|
<filename>.bash_profile</filename> заменяет запущенную оболочку новой, не
|
||||||
содержащей переменные среды, за исключением переменных <envar>HOME</envar>,
|
содержащей переменные среды, за исключением переменных <envar>HOME</envar>,
|
||||||
<envar>TERM</envar>, и <envar>PS1</envar>. Это гарантирует, что никакие
|
<envar>TERM</envar>, и <envar>PS1</envar>. Это гарантирует, что никакие
|
||||||
нежелательные и потенциально опасные переменные среды из хост-системы не попадут
|
нежелательные и потенциально опасные переменные среды из хост-системы не попадут
|
||||||
в среду сборки. Используемая здесь техника позволяет получить чистое окружение.</para>
|
в среду сборки.</para>
|
||||||
|
|
||||||
<para>Новый экземпляр оболочки представляет собой <emphasis>non-login</emphasis>
|
<para>Новый экземпляр оболочки представляет собой <emphasis>non-login</emphasis>
|
||||||
оболочку, которая не считывает и не выполняет содержимое файлов
|
оболочку, которая не считывает и не выполняет содержимое файлов
|
||||||
@ -61,9 +63,9 @@ EOF</userinput></screen>
|
|||||||
—<command>bash</command> использует хеш-таблицу для запоминания полного
|
—<command>bash</command> использует хеш-таблицу для запоминания полного
|
||||||
пути к исполняемому файлу, чтобы избежать многократного поиска одного и того же
|
пути к исполняемому файлу, чтобы избежать многократного поиска одного и того же
|
||||||
исполняемого файла в переменной окружения <envar>PATH</envar>. Однако новые
|
исполняемого файла в переменной окружения <envar>PATH</envar>. Однако новые
|
||||||
инструменты требуется использовать сразу же после их установки. Отключив
|
инструменты требуется использовать сразу же после их установки. Отключение
|
||||||
хэш-функцию, оболочка всегда будет искать переменную окружения <envar>PATH</envar>,
|
хэш-функции, заставляет оболочку искать переменную окружения <envar>PATH</envar>,
|
||||||
когда программу необходимо запустить. Таким образом, оболочка найдет вновь
|
всякий раз, когда программу необходимо запустить. Таким образом, оболочка найдет вновь
|
||||||
скомпилированные инструменты в <filename class="directory">$LFS/tools/bin</filename>,
|
скомпилированные инструменты в <filename class="directory">$LFS/tools/bin</filename>,
|
||||||
как только они станут доступны, не запоминая предыдущую версию той же программы,
|
как только они станут доступны, не запоминая предыдущую версию той же программы,
|
||||||
предоставленную хост-дистрибутивом, в <filename class='directory'>/usr/bin</filename> или
|
предоставленную хост-дистрибутивом, в <filename class='directory'>/usr/bin</filename> или
|
||||||
@ -85,7 +87,7 @@ EOF</userinput></screen>
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>LFS=/mnt/lfs</parameter></term>
|
<term><parameter>LFS=/mnt/lfs</parameter></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Переменная окружения <envar>LFS</envar> должны указывать на выбранную точку монтирования.</para>
|
<para>Переменная окружения <envar>LFS</envar> должна указывать на выбранную точку монтирования.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -95,7 +97,8 @@ EOF</userinput></screen>
|
|||||||
<para>Переменная <envar>LC_ALL</envar> управляет локализацией определенных
|
<para>Переменная <envar>LC_ALL</envar> управляет локализацией определенных
|
||||||
программ, и формирует сообщения в соответствии с локализаций указанной страны.
|
программ, и формирует сообщения в соответствии с локализаций указанной страны.
|
||||||
Установка в <envar>LC_ALL</envar> значения <quote>POSIX</quote> или <quote>C</quote>
|
Установка в <envar>LC_ALL</envar> значения <quote>POSIX</quote> или <quote>C</quote>
|
||||||
(они эквивалентны) гарантирует, что в среде chroot все будет работать должным образом.</para>
|
(они эквивалентны) гарантирует, что все будет работать должным образом в среде
|
||||||
|
кросс-компиляции.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -105,7 +108,7 @@ EOF</userinput></screen>
|
|||||||
<para>Переменная <envar>LFS_TGT</envar> устанавливает нестандартное, но
|
<para>Переменная <envar>LFS_TGT</envar> устанавливает нестандартное, но
|
||||||
совместимое описание компьютера для использования при создании кросс-компилятора
|
совместимое описание компьютера для использования при создании кросс-компилятора
|
||||||
и компоновщика, а также при кросс-компиляции временного набора инструментов.
|
и компоновщика, а также при кросс-компиляции временного набора инструментов.
|
||||||
Дополнительная информация об этом содержится в <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>
|
Дополнительная информация об этом представлена в <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -114,10 +117,10 @@ EOF</userinput></screen>
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>Многие современные дистрибутивы Linux объединили <filename
|
<para>Многие современные дистрибутивы Linux объединили <filename
|
||||||
class="directory">/bin</filename> и <filename
|
class="directory">/bin</filename> и <filename
|
||||||
class="directory">/usr/bin</filename>. В этом случае для стандартной переменной <envar>PATH</envar>
|
class="directory">/usr/bin</filename>. В этом случае стандартной переменной <envar>PATH</envar>
|
||||||
необходимо просто установить значение <filename
|
необходимо установить значение <filename
|
||||||
class="directory">/usr/bin/</filename> для среды <xref
|
class="directory">/usr/bin/</filename> для окружения из <xref
|
||||||
linkend="chapter-temporary-tools"/>. Когда это не так, следующая строка добавляет
|
linkend="chapter-temporary-tools"/>. Когда это не так, следующая строка добавит
|
||||||
<filename class="directory">/bin</filename> к пути.</para>
|
<filename class="directory">/bin</filename> к пути.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -126,7 +129,7 @@ EOF</userinput></screen>
|
|||||||
<term><parameter>if [ ! -L /bin ]; then PATH=/bin:$PATH; fi</parameter></term>
|
<term><parameter>if [ ! -L /bin ]; then PATH=/bin:$PATH; fi</parameter></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Если <filename class="directory">/bin</filename> не является символической
|
<para>Если <filename class="directory">/bin</filename> не является символической
|
||||||
ссылкой, то ее необходимо добавить в переменную <envar>PATH</envar>.</para>
|
ссылкой, то его необходимо добавить в переменную <envar>PATH</envar>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -137,7 +140,7 @@ EOF</userinput></screen>
|
|||||||
стандартным <envar>PATH</envar>, кросс-компилятор, установленный в начале
|
стандартным <envar>PATH</envar>, кросс-компилятор, установленный в начале
|
||||||
<xref linkend="chapter-cross-tools"/>, будет обнаружен оболочкой сразу после
|
<xref linkend="chapter-cross-tools"/>, будет обнаружен оболочкой сразу после
|
||||||
его установки. Это, в сочетании с отключением хеширования, ограничивает риск
|
его установки. Это, в сочетании с отключением хеширования, ограничивает риск
|
||||||
использования компилятора с хоста вместо кросс-компилятора.</para>
|
использования компилятора хоста вместо кросс-компилятора.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
@ -164,8 +167,8 @@ EOF</userinput></screen>
|
|||||||
|
|
||||||
<important>
|
<important>
|
||||||
|
|
||||||
<para>Некоторые дистрибутивы добавляют недокументированный экземпляр
|
<para>Некоторые коммерческие дистрибутивы добавляют недокументированный экземпляр
|
||||||
<filename>/etc/bash.bashrc</filename> к инициализации <command>bash</command>.
|
<filename>/etc/bash.bashrc</filename> для инициализации <command>bash</command>.
|
||||||
Этот файл потенциально может изменить среду пользователя
|
Этот файл потенциально может изменить среду пользователя
|
||||||
<systemitem class="username">lfs</systemitem> таким образом, что это может
|
<systemitem class="username">lfs</systemitem> таким образом, что это может
|
||||||
повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская
|
повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская
|
||||||
@ -175,10 +178,9 @@ EOF</userinput></screen>
|
|||||||
|
|
||||||
<screen role="nodump"><userinput>[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE</userinput></screen>
|
<screen role="nodump"><userinput>[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE</userinput></screen>
|
||||||
|
|
||||||
<para>После завершения работ под учетной записью пользователя
|
<para>Когда пользователь <systemitem class="username">lfs</systemitem> больше не
|
||||||
<systemitem class="username">lfs</systemitem> в начале <xref
|
нужен (в начале <xref linkend="chapter-chroot-temporary-tools"/> ) вы можете безопасно
|
||||||
linkend="chapter-chroot-temporary-tools"/> вы можете восстановить
|
восстановить <filename>/etc/bash.bashrc</filename> (по желанию).</para>
|
||||||
<filename>/etc/bash.bashrc</filename> (при желании).</para>
|
|
||||||
|
|
||||||
<para>Обратите внимание, что пакет LFS Bash, который мы создадим в
|
<para>Обратите внимание, что пакет LFS Bash, который мы создадим в
|
||||||
<xref linkend="ch-system-bash"/>, не настроен на загрузку или выполнение
|
<xref linkend="ch-system-bash"/>, не настроен на загрузку или выполнение
|
||||||
@ -186,8 +188,8 @@ EOF</userinput></screen>
|
|||||||
готовой системе LFS.</para>
|
готовой системе LFS.</para>
|
||||||
</important>
|
</important>
|
||||||
|
|
||||||
<para>Наконец, чтобы полностью подготовить среду для сборки временных инструментов,
|
<para>Наконец, чтобы убедиться, что среда полностью подготовлена для сборки временных
|
||||||
используйте только что созданный профиль пользователя</para>
|
инструментов, перечитайте только что созданный профиль пользователя:</para>
|
||||||
|
|
||||||
<screen><userinput>source ~/.bash_profile</userinput></screen>
|
<screen><userinput>source ~/.bash_profile</userinput></screen>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user