Библиотека сайта rus-linux.net
6.3. Вход в среду chroot
Теперь пришло время войти в среду chroot для установки необходимых пакетов. Перед тем, как войти в среду chroot, вам необходимо войти в систему как root. Для входа в среду chroot выполнить следующую команду:
chroot "$LFS" /tools/bin/env -i \ HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ /tools/bin/bash --login +h
Параметр -i
, передаваемый команде
env, очистит все переменные окружения
среды chroot. После этого мы устанавливаем только переменные HOME
, TERM
, PS1
и PATH
.
Конструкция TERM=$TERM
установит переменную TERM
внутри среды chroot
в то же значение, что и вне среды chroot. Эта переменная нужна таким
программам как vim и
less для правильной работы. Если вам
нужны другие переменные, такие как CFLAGS
или
CXXFLAGS
, то это хорошее место задать их.
С этого места нам уже не надо использовать переменную LFS
, потому что директория, указанная в ней стала
корневой при входе в среду chroot.
Мы указали /tools/bin
последней в списке
путей PATH
. Благодаря этому пакеты из этой
директории не будут использованы, если мы уже установили окончательную версию
соответствующего пакета. Это действует в том случае, когда shell
“не запоминает” расположение исполняемых файлов,
именно поэтому мы отключили эту функцию в предыдущей главе при помощи
опции +h
, переданной bash.
Запомните, что все команды до конца этой главы и во всех последующих
выполняются из среды chroot. Если вы покинули эту среду по любой
причине (например, после перезагрузки), то вы должны снова зайти в
среду chrrot и примонтировать файловые системы proc
и devpts
(описываются позже) перед продолжением установки.
Заметьте, что bash выводит “I have
no name!”. Это нормально, поскольку файл /etc/passwd
еще не создан.