Библиотека сайта rus-linux.net
Linux From Scratch (version 6.8) | ||
Назад | Глава 4. Завершение подготовки | Вперед |
4.4. Настройка среды окружения
Настройте для себя удобную рабочую среду, создав для этого два новых файла инициализации командной оболочки bash. Когда вы войдете в систему как пользователь lfs
, введите следующую команду и создайте новый файл .bash_profile:
cat > ~/.bash_profile < "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF
Когда вы регистрируетесь как пользователь lfs
, запускается командная оболочка, которая считывает файл /etc/profile
в хост системе (в котором, вероятно, устанавливаются некоторые параметры и переменные среды окружения), а затем считывает файл .bash_profile
. Команда exec env -i.../bin/bash, указанная в файле .bash_profile
, заменяет работающую командную оболочку новой, в которой полностью отсутствует среда окружения, за исключением переменных HOME
, TERM
и PS1
. Это гарантирует, что никакие нежелательные и потенциально опасные переменные окружения из хост-системы не окажутся в среде сборки. Используемый здесь метод позволяет получить чистую (не настроенную — прим.пер.) среду окружения
Новый экземпляр оболочки является командной оболочкой, не требующей регистрации и не считывающей файлы /etc/profile
или .bash_profile
. Вместо этого она будет считывать файл .bashrc
. Теперь создайте файл .bashrc
:
cat > ~/.bashrc < "EOF" set +h umask 022 LFS=/mnt/lfs LC_ALL=POSIX LFS_TGT=$(uname -m)-lfs-linux-gnu PATH=/tools/bin:/bin:/usr/bin export LFS LC_ALL LFS_TGT PATH EOF
Команда set +h отключает хэширование в командной облочке bash. Хэширование обычно является полезной функцией оболочки bash, позволяющей использовать хэш-таблицу для запоминания полных путей к исполняемым файлам и, тем самым, избегать повторного поиска одних и тех же самых исполняемых файлов по переменной PATH
. Но новые инструментальные средства должны использоваться сразу, как только они будут установлены. Когда хеширование выключено, командная оболочка будет всегда, когда запускается программа, искать программу при помощи переменной PATH
. Таким образом, оболочка будет находить вновь собранное инструментальное средство в директории $LFS/tools
сразу, как только они появятся; предыдущая версия той же самой программы, расположенная в другом месте, запоминаться не будет.
Установка маски создания пользовательских файлов (umask) равной 022 обеспечивает, что вновь создаваемые файлы и директории будут доступны для записи только их владельцам, а всем другим разрешается их читать и исполнять (предполагается, что режимы, задаваемые по умолчанию, используются системным вызовом open(2)
; в конечном счете, для новых файлов будет установлена маска доступа 644, а для директориев - 755).
Переменная LFS
должна указывать на выбранную точку монтирования.
В переменной LC_ALL
указывается локализация для определенных программ, что позволяет им правильно формировать сообщения в соответствие с правилами, установленными для указанной страны. Если в хост системе используется версия Glibc старше 2.2.4 и значение переменной LC_ALL
отличается от "POSIX" или "С" (как указано в данной главе), то когда вы выходите из режима использования команды chroot, а затем возвращаетесь в этот режим, это может быть причиной проблем. Когда значение переменной LC_ALL установлено равным "POSIX" или "C" (эти два значения эквивалентны), гарантируется , что в режиме использования команды chroot все будет работать так, как надо.
Для переменной LFS_TGT
устанавливается значение, отличающееся от используемого по умолчанию, но обеспечивающее совместимость на уровне машин при сборке нашего кросс компилятора и кросс компоновщика во время кросс компиляции нашего временного набора инструментальных средств. Более подробная информация содержится в разделе 5.2 "Технические замечания об инструментальном наборе".
Если поместить /tools/bin
перед стандартной переменной PATH, все программы, установленные в главе 5, будут выбираться командной оболочкой сразу после их установки. Это, в сочетании с отключением хеширования, ограничивает риск того, что будут использованы старые программы из хост системы, когда в среде, созданной в главе 5, будут присутствовать такие же программы.
Наконец, чтобы получить среду окружения, полностью готовую для сборки временного набора инструментальных средств, укажите, откуда нужно брать только что созданный профиль пользователя:
source ~/.bash_profile
Предыдущий раздел: | Оглавление | Следующий раздел: |
Добавление пользователя LFS | О единице измерения времени SBU |