Translated chapter04

This commit is contained in:
Poltern 2023-06-26 23:32:36 +05:00
parent aa72195749
commit 8a1ee691af
6 changed files with 89 additions and 72 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>
&mdash;<command>bash</command> использует хеш-таблицу для запоминания полного &mdash;<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>