Lx4U-book/docs/prepare/set-env.md
Anton Maisak 2e421cccbf make
2021-05-05 15:00:05 +03:00

95 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Настройка окружения
Необходимо настроить окружение для недавно созданного пользователя.
Во-первых, создадим `.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` - Необходимо некоторым пакетам.