# Настройка окружения Необходимо настроить окружение для недавно созданного пользователя. Во-первых, создадим `.bash_profile`: ```bash cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF ``` Далее создадим базовый `.bashrc`: ```bash cat > ~/.bashrc << "EOF" set +h umask 022 LIN=/mnt/lin LC_ALL=C LIN_TGT=$(uname -m)-lin-linux-gnu PATH=/usr/bin if [ ! -L /bin ]; then PATH=/bin:$PATH; fi PATH=$LIN/tools/bin:$PATH export LIN LC_ALL LIN_TGT PATH CONFIG_SITE EOF ``` ## CFLAGS и CXXFLAGS Использовать оптимизацию на данном этапе не стоит, однако вы можете добавить флаг ``-s`` для того, что бы сразу после сборки автоматически удалялись ненужные и отладочные символы, а также `-O2` воизбежании ошибки сборки glibc: ```bash echo "export CFLAGS=\"-s -O2\" " >> ~/.bashrc echo "export CXXFLAGS=\"-s -O2\" " >> ~/.bashrc ``` Это может сэкономить несколько гигабайт места на диске. ## Bash-completion Если вы используете программу `bash-completion`, то можете добавить её поддержку для пользователя `lin`: ```bash echo " . /etc/bash_completion" >> ~/.bashrc ``` ## MAKEFLAGS Для экономии времени на многоядерном процессоре используйте параллельную сборку. Чтобы её включить, надо добавить для ``make`` переменную `-jN`, где ``N`` - число потоков вашего процессора. Это можно сделать двумя способами: - Указывать при каждом вызове ``make`` аргумент ``-jN`` - Добавить переменую окружения ``MAKEFLAGS`` Замените ``N`` на число потоков вашего процессора, узнать его можно с помощью команды: ```bash lscpu | grep "CPU(s):" ``` При желании, добавьте соответсвующую переменную окружения: ```bash echo "export MAKEFLAGS=\"-jN\" " >> ~/.bashrc ``` ## Для MultiLib Для MultiLib выполните: ```bash echo "export LIN_TGT32=i686-lin-linux-gnu" >> ~/.bashrc ``` Эта переменная используется для сборки i386 библиотек. ## Применение изменений Для того, чтобы применить изменения выполните: ```bash source ~/.bash_profile ``` ## Значения параметров базового bashrc `set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash, необходимо для того что бы новые исполняемые файлы становились доступны немедленно. `umask 022` - Гарантирует, что для новых файлов будет установлены права 644. `LIN=/mnt/lin` - Задает путь к корню собираемый системы. `mnt/lin` взят в качестве образца. `LC_ALL=C` - Исключает связанные с локализацией ошибки. `PATH=/usr/bin if [ ! -L /bin ]; then PATH=/bin:$PATH; fi` - Задает пути поиска исполняемых файлов в хост-системе. `PATH=$LIN/tools/bin:$PATH` - Необходимо для обнаружения исполняемых файлов кросс-компилятора. `CONFIG_SITE=$LIN/usr/share/config.site` - Необходимо некоторым пакетам.