Lx4U-book/docs/prepare/create-dirs.md

69 lines
4.2 KiB
Markdown
Raw Normal View History

2021-07-20 04:14:09 +08:00
# Создание базовых директорий и символических ссылок
## Создание каталога $LIN/tools
Все программы, которые будут скомпилированы в следующей части, будут установлены в каталог `$LIN/tools`, чтобы можно было оставить их отдельно от сборки конечной системы. Программы, которые будут скомпилированы - временные инструменты и не будут входить в конечную сборку системы.
После использования кросс-компилятора, от него можно избавиться. Использование каталога `$LIN/tools` необходимо для того, чтобы не засорять рабочие каталоги хост-системы.
2021-04-24 14:03:31 +08:00
Кросс-компилятор будет установлен в директорию `/tools`, создайте её:
2021-04-24 14:03:31 +08:00
```bash
mkdir -pv $LIN/tools
```
2021-05-29 21:07:11 +08:00
## Создание иерархии файловой системы
Теперь создайте базовую иерархию файловой системы. Мы предлагаем вам использовать упрощённую структуру каталогов, когда директории `/bin`, `/sbin`, `/usr/sbin` являются ссылками на `/usr/bin`, а `/lib` - на `/usr/lib`.
2021-07-21 17:22:44 +08:00
Подобную структуру использует всё больше дистрибутивов: Fedora, Arch, Ubuntu и др. Если вы хотите создать упрощённую иерархию файловой системы, выполните следующие команды:
```bash
{{ include('../scripts/file-system.sh') }}
```
2021-07-21 17:22:44 +08:00
Если вы хотите использовать "классическую" иерархию, в которой `/bin`, `/sbin`, `/usr/bin`, `/usr/sbin`, `/lib` и `/usr/lib` - разные каталоги, выполните следующие команды:
```bash
{{ include('../scripts/classic-file-system.sh') }}
```
Такой подход позволит вынести `/usr` в отдельный раздел, либо загружать его по сети. Так же может повыситься безопасность и надёжность ОС. Однако потребуется выполнить множество дополнительных действий при установке пакетов.
???+ note "Обратите внимание"
Если вы не знаете что выбрать - используйте вариант с упрощенной структурой - он лучше протестирован и требует меньше действий при сборке пакетов.
2021-07-21 16:39:37 +08:00
Подробнее об иерархии каталогов можно узнать в спецификации [FHS](https://refspecs.linuxfoundation.org/fhs.shtml).
2021-04-24 14:03:31 +08:00
2022-01-03 19:36:18 +08:00
## Подключение к сети из среды chroot
Для работы сети в среде chroot требуется скопировать файлы `hosts` и `resolv.conf` с хост-системы:
```bash
cp -v /etc/{hosts,resolv.conf} $LIN/etc
```
2021-05-07 20:12:22 +08:00
## Для multilib
2021-06-05 00:17:13 +08:00
2021-04-24 14:03:31 +08:00
Создайте директорию для 32-битных библиотек:
2021-06-05 00:17:13 +08:00
2021-04-24 14:03:31 +08:00
```bash
mkdir -pv $LIN/usr/lib32
```
2021-06-05 00:17:13 +08:00
А также символическую ссылку на неё:
2021-06-05 00:17:13 +08:00
2021-04-24 14:03:31 +08:00
```bash
ln -sv usr/lib32 $LIN/lib32
2021-06-05 00:17:13 +08:00
```
2021-06-13 16:26:44 +08:00
???+ note "Обратите внимание"
В случае если вы используете классическую иерархию каталогов, разделение /lib32 и /usr/lib32 не имеет смысла так как 32-битные библиотеки не требуются для запуска системы.
???+ warning "Предупреждение"
Обратите внимание, что указанная символическая ссылка правильная. Если указать `$LIN/usr/lib32`, то при входе в среду `chroot`, ссылка будет некорректная.
2021-07-20 01:37:57 +08:00