lfs-ru/chapter07/chroot.xml

72 lines
5.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-chroot">
<?dbhtml filename="chroot.html"?>
<title>Вход в окружение Chroot</title>
<para>Теперь, когда все пакеты, необходимые для сборки остальных инструментов установлены
в системе, пришло время войти в окружение chroot и завершить установку временных
инструментов. Эта среда также будет использоваться для установки конечной системы.
От имени пользователя <systemitem class="username">root</systemitem> выполните
следующую команду для входа в chroot, в которой на данный момент нет ничего, кроме
временных инструментов:</para>
<screen role="nodump"><userinput>chroot "$LFS" /usr/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
MAKEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
TESTSUITEFLAGS="-j<replaceable>$(nproc)</replaceable>" \
/bin/bash --login</userinput></screen>
<para>
Если вы не хотите использовать все доступные логические ядра, замените параметр
<replaceable>$(nproc)</replaceable> количеством логических ядер, которые вы хотите
использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых
пакетов (в частности Autoconf, Libtool и Tar) в &ch-final; не влияет установка переменной
<envar>MAKEFLAGS</envar>, вместо этого они используют переменную среды
<envar>TESTSUITEFLAGS</envar>. Мы также установили её здесь для запуска тестов с поддержкой
нескольких ядер.
</para>
<para>Параметр <parameter>-i</parameter> команды <command>env</command>, очистит
все переменные в среде chroot. После этого переменные
<envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar> и
<envar>PATH</envar> будут установлены заново. Конструкция
<parameter>TERM=$TERM</parameter> установит переменную TERM внутри chroot
в то же значение, что и вне chroot. Эта переменная необходима для корректной работы таких
программ как <command>vim</command> и <command>less</command>. Если понадобятся
другие переменные окружения, такие как <envar>CFLAGS</envar> или <envar>CXXFLAGS</envar>,
то это подходящее место для их установки.</para>
<para>С этого момента больше нет необходимости использовать переменную
<envar>LFS</envar>, поскольку вся работа будет ограничена файловой системой
LFS; команда <command>chroot</command> запускает оболочку Bash с корневым
каталогом (<filename class="directory">/</filename>), установленным в
<filename class="directory">$LFS</filename>.</para>
<para>Обратите внимание, что каталог <filename class="directory">/tools/bin</filename> не
указан в переменной окружения <envar>PATH</envar>. Это означает, что кросс-тулчейн
больше не будет использоваться.</para>
<para>Также обратите внимание, что в командной строке <command>bash</command> будет
указано <computeroutput>I have no name!</computeroutput>. Это нормально, поскольку
файл <filename>/etc/passwd</filename> еще не создан.</para>
<note>
<para>Важно, чтобы все команды в оставшейся части этой главы и следующих главах
выполнялись из среды chroot. Если вы покидаете эту среду по какой-либо причине
(например, при перезагрузке), убедитесь, что файловые системы виртуального ядра
смонтированы, как описано в <xref linkend="ch-tools-bindmount"/> и <xref
linkend="ch-tools-kernfsmount"/>, а затем войдите в среду chroot для продолжения установки.</para>
</note>
</sect1>