mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-02-12 23:19:05 +08:00
110 lines
4.3 KiB
Markdown
110 lines
4.3 KiB
Markdown
# Настройка окружения
|
||
|
||
Необходимо настроить окружение для недавно созданного пользователя.
|
||
Во-первых, создадим `.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):"
|
||
```
|
||
|
||
Результат выполнения будет примерно следующий. Значения будут отличаться в зависимости от характеристик вашего процессора:
|
||
|
||
```
|
||
CPU(s): 4
|
||
NUMA node0 CPU(s): 0-3
|
||
|
||
```
|
||
|
||
`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` - Необходимо некоторым пакетам.
|