2021-04-25 02:49:29 +08:00
# Настройка окружения
2021-04-25 03:29:49 +08:00
Необходимо настроить окружение для недавно созданного пользователя.
2021-08-24 22:53:54 +08:00
Создадим `.bash_profile` :
2021-04-25 02:49:29 +08:00
2021-06-25 19:10:35 +08:00
```bash
2021-04-25 02:49:29 +08:00
cat > ~/.bash_profile < < "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
```
2021-08-24 22:53:54 +08:00
Создадим базовый `.bashrc` :
2021-04-25 02:49:29 +08:00
```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
2021-04-25 03:29:49 +08:00
export LIN LC_ALL LIN_TGT PATH CONFIG_SITE
2021-04-25 02:49:29 +08:00
EOF
```
## CFLAGS и CXXFLAGS
2021-06-26 20:02:42 +08:00
Использовать оптимизацию на данном этапе не стоит, однако вы можете добавить флаг `-s` , чтобы сразу после сборки автоматически удалялись ненужные и отладочные символы, а также `-O2` во избежание ошибки сборки glibc:
2021-04-25 02:49:29 +08:00
```bash
2021-05-03 00:57:32 +08:00
echo "export CFLAGS=\"-s -O2\" " >> ~/.bashrc
echo "export CXXFLAGS=\"-s -O2\" " >> ~/.bashrc
2021-04-25 02:49:29 +08:00
```
2021-04-25 03:35:49 +08:00
Это может сэкономить несколько гигабайт места на диске.
2021-04-25 02:49:29 +08:00
## Bash-completion
2021-06-25 19:10:35 +08:00
2021-04-25 03:35:49 +08:00
Если вы используете программу `bash-completion` , то можете добавить её поддержку для пользователя `lin` :
2021-04-25 02:49:29 +08:00
```bash
echo " . /etc/bash_completion" >> ~/.bashrc
```
## MAKEFLAGS
2021-06-25 19:10:35 +08:00
2021-06-26 20:02:42 +08:00
Для экономии времени на многоядерном процессоре используйте параллельную сборку. Чтобы её включить, надо добавить для `make` переменную `-jN` , где `N` - число потоков вашего процессора.
2021-06-25 19:10:35 +08:00
Это можно сделать двумя способами:
2021-05-05 18:58:00 +08:00
2021-06-26 20:02:42 +08:00
- Указывать при каждом вызове `make` аргумент `-jN`
2021-07-20 13:59:53 +08:00
- Добавить переменную окружения `MAKEFLAGS`
2021-05-05 18:58:00 +08:00
2021-07-16 01:39:23 +08:00
Замените `N` на число потоков вашего процессора.
2021-05-05 18:58:00 +08:00
2021-11-05 00:24:31 +08:00
Дополнительную информацию о потоках процессора можно прочитать [здесь ](../../prepare/about-threads ).
2021-04-25 02:49:29 +08:00
2021-07-20 13:59:53 +08:00
## Для multilib
2021-06-25 19:10:35 +08:00
2021-07-20 14:01:28 +08:00
Для multilib выполните:
2021-04-25 02:49:29 +08:00
```bash
2021-04-26 14:38:07 +08:00
echo "export LIN_TGT32=i686-lin-linux-gnu" >> ~/.bashrc
2021-04-25 02:49:29 +08:00
```
Эта переменная используется для сборки i386 библиотек.
2021-04-25 03:19:49 +08:00
## Применение изменений
2021-06-27 15:52:41 +08:00
Для того чтобы применить изменения, выполните:
2021-06-26 20:02:42 +08:00
2021-04-25 03:19:49 +08:00
```bash
source ~/.bash_profile
```
2021-05-05 19:58:52 +08:00
## Значения параметров базового bashrc
2021-04-25 02:49:29 +08:00
2021-06-27 15:52:41 +08:00
`set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash. Это необходимо для того чтобы новые исполняемые файлы становились доступны немедленно.
2021-04-25 13:27:55 +08:00
2021-06-27 15:52:41 +08:00
`umask 022` - Гарантирует, что для новых файлов будут установлены права 644.
2021-04-25 13:27:55 +08:00
2021-04-25 02:49:29 +08:00
`LIN=/mnt/lin` - Задает путь к корню собираемый системы. `mnt/lin` взят в качестве образца.
2021-04-25 13:27:55 +08:00
2021-04-25 02:49:29 +08:00
`LC_ALL=C` - Исключает связанные с локализацией ошибки.
2021-04-25 13:27:55 +08:00
2021-06-27 15:52:41 +08:00
`PATH=/usr/bin if [ ! -L /bin ]; then PATH=/bin:$PATH; fi` - Задаёт пути поиска исполняемых файлов в хост-системе.
2021-04-25 13:27:55 +08:00
2021-04-25 02:49:29 +08:00
`PATH=$LIN/tools/bin:$PATH` - Необходимо для обнаружения исполняемых файлов кросс-компилятора.