3.9 KiB
Создание базовых директорий и символических ссылок
Создание каталога $LIN/tools
Все программы, которые будут скомпилированы в следующей части, будут установлены в каталог $LIN/tools
, чтобы можно было оставить их отдельно от сборки конечной системы. Программы, которые будут скомпилированы - временные инструменты и не будут входить в конечную сборку системы.
После использования кросс-компилятора, от него можно избавиться. Использование каталога $LIN/tools
необходимо для того, чтобы не засорять рабочие каталоги хост-системы.
Кросс-компилятор будет установлен в директорию /tools
, создайте её:
mkdir -pv $LIN/tools
Создание иерархии файловой системы
Теперь создайте базовую иерархию файловой системы. Мы предлагаем вам использовать упрощённую структуру каталогов, когда директории /bin
, /sbin
, /usr/sbin
являются ссылками на /usr/bin
, а /lib
- на /usr/lib
.
Подобную структуру использует всё больше дистрибутивов: Fedora, Arch, Ubuntu и др. Если вы хотите создать упрощённую иерархию файловой системы, выполните следующие команды:
{{ include('../scripts/file-system.sh') }}
Если вы хотите использовать "классическую" иерархию, в которой /bin
, /sbin
, /usr/bin
, /usr/sbin
, /lib
и /usr/lib
- разные каталоги, выполните следующие команды:
{{ include('../scripts/classic-file-system.sh') }}
Такой подход позволит вынести /usr
в отдельный раздел, либо загружать его по сети. Так же может повыситься безопасность и надёжность ОС. Однако потребуется выполнить множество дополнительных действий при установке пакетов.
???+ note "Обратите внимание" Если вы не знаете что выбрать - используйте вариант с упрощенной структурой - он лучше протестирован и требует меньше действий при сборке пакетов.
Подробнее об иерархии каталогов можно узнать в спецификации FHS.
Для multilib
Создайте директорию для 32-битных библиотек:
mkdir -pv $LIN/usr/lib32
А также символическую ссылку на неё:
ln -sv usr/lib32 $LIN/lib32
???+ note "Обратите внимание"
В случае если вы используете классическую иерархию каталогов, разделение /lib32 и /usr/lib32 не имеет смысла так как 32-битные библиотеки не требуются для запуска системы.
???+ warning "Предупреждение"
Обратите внимание, что указанная символическая ссылка правильная. Если указать `$LIN/usr/lib32`, то при входе в среду `chroot`, ссылка будет некорректная.