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