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








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

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
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