Lx4U-book/docs/prepare/set-env.md

79 lines
3.5 KiB
Markdown
Raw Normal View History

2021-04-25 02:49:29 +08:00
# Настройка окружения
2021-04-25 03:29:49 +08:00
Необходимо настроить окружение для недавно созданного пользователя.
2021-04-25 02:49:29 +08:00
Во первых создадим `.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
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
Использовать оптимизацию на данном этапе не стоит, однако вы можете добавить флаг -s для того что бы сразу после сборки автоматически удалялись ненужные и отладочные символы:
```bash
echo "export CFLAGS=\"-s\" " >> ~/.bashrc
echo "export CXXFLAGS=\"-s\" " >> ~/.bashrc
```
Это может сэкономить несколько гигабайт места на диске
## Bash-completion
Если вы используете программу bash-completion то можете добавить её поддержку для пользователя lin:
```bash
echo " . /etc/bash_completion" >> ~/.bashrc
```
## MAKEFLAGS
Чтобы сэкономить время, вы можете использовать параллельную сборку. Чтобы включить её надо добавить для make переменную -jN где N - число потоков вашего процессора.
Это можно сделать двумя способами - вручную добавлять после ввода make и задать переменную (замените N на число потоков вашего процессора):
```bash
echo "export MAKEFLAGS=\"-jN\" " >> ~/.bashrc
```
## Для MultiLib
Для MultiLib выполните:
```bash
echo "export LIN_TGT32=i686-lfs-linux-gnu" >> ~/.bashrc
```
Эта переменная используется для сборки i386 библиотек.
2021-04-25 03:19:49 +08:00
## Применение изменений
Для того что бы применить изменения выполните:
```bash
source ~/.bash_profile
```
2021-04-25 02:49:29 +08:00
## Объяснение параметров базового 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` - Необходимо некоторым пакетам.