Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта 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 еще не создан.