7.4. Вход в окружение Chroot

Теперь, когда все пакеты, необходимые для сборки остальных инструментов установлены в системе, пришло время войти в окружение chroot и завершить установку временных инструментов. Эта среда также будет использоваться для установки конечной системы. От имени пользователя root выполните следующую команду для входа в chroot, в которой на данный момент нет ничего, кроме временных инструментов:

chroot "$LFS" /usr/bin/env -i   \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='(lfs chroot) \u:\w\$ ' \
    PATH=/usr/bin:/usr/sbin     \
    MAKEFLAGS="-j$(nproc)"      \
    TESTSUITEFLAGS="-j$(nproc)" \
    /bin/bash --login

Если вы не хотите использовать все доступные логические ядра, замените параметр $(nproc) количеством логических ядер, которые вы хотите использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых пакетов (в частности Autoconf, Libtool и Tar) в Глава 8 не влияет установка переменной MAKEFLAGS, вместо этого они используют переменную среды TESTSUITEFLAGS. Мы также установили её здесь для запуска тестов с поддержкой нескольких ядер.

Параметр -i команды env, очистит все переменные в среде chroot. После этого переменные HOME, TERM, PS1 и PATH будут установлены заново. Конструкция TERM=$TERM установит переменную TERM внутри chroot в то же значение, что и вне chroot. Эта переменная необходима для корректной работы таких программ как vim и less. Если понадобятся другие переменные окружения, такие как CFLAGS или CXXFLAGS, то это подходящее место для их установки.

С этого момента больше нет необходимости использовать переменную LFS, поскольку вся работа будет ограничена файловой системой LFS; команда chroot запускает оболочку Bash с корневым каталогом (/), установленным в $LFS.

Обратите внимание, что каталог /tools/bin не указан в переменной окружения PATH. Это означает, что кросс-тулчейн больше не будет использоваться.

Также обратите внимание, что в командной строке bash будет указано I have no name!. Это нормально, поскольку файл /etc/passwd еще не создан.

[Примечание]

Примечание

Важно, чтобы все команды в оставшейся части этой главы и следующих главах выполнялись из среды chroot. Если вы покидаете эту среду по какой-либо причине (например, при перезагрузке), убедитесь, что файловые системы виртуального ядра смонтированы, как описано в Раздел 7.3.1, «Монтирование и заполнение /dev» и Раздел 7.3.2, «Монтирование виртуальных файловых систем ядра», а затем войдите в среду chroot для продолжения установки.