Заключительные этапы подготовки.

This commit is contained in:
Anton Maisak 2021-04-24 13:42:57 +03:00
parent 844fe0bc33
commit d5c8ce9ab1
6 changed files with 112 additions and 6 deletions

View File

@ -1 +1 @@
# NOt Found =(
# Страница не найдена

View File

@ -17,6 +17,8 @@
- [Установка переменной $LIN](prepare/set-LIN)
- [Монтирование разделов](prepare/mount-partition)
- [Создание основных каталогов и символических ссылок](prepare/create-dirs)
- [Требуемые пакеты и патчи](prepare/download)
- [Создание пользователя](prepare/add-user)
- [**Вспомогательные материалы**](additional/additional)
- [Установка программ из исходных кодов в Linux](additional/src-compiling)

55
docs/prepare/add-user.md Normal file
View File

@ -0,0 +1,55 @@
# Создание пользователя LIN
Когда мы находимся в системе под пользователем ``root``, одна единственная ошибка может привести к повреждению или поломке всей хост-системы.
Следовательно, рекомендуется выполнять сборку пакетов для временного набора инструментов от обычного пользователя, без привилегий.
*Вы можете использовать произвольного пользователя, но для упрощения настройки чистого рабочего окружения создайте нового пользователя с именем ``lin`` как члена группы ``lin`` и используйте этого пользователя на время всего процесса установки временного набора инструментов.*
```bash
groupadd lin
useradd -s /bin/bash -g lin -m -k /dev/null lin
```
**Значение параметров командной строки:**
``-s /bin/bash``
Устанавливает ``bash`` оболочкой по умолчанию для пользователя lin.
``-g lin``
Опция добавляет пользователя ``lin`` в созданную группу ``lin``.
``-m``
Создает домашний каталог для пользователя ``lin``.
``-k /dev/null``
Этот параметр предотвращает возможное копирование файлов из предустановленного набора каталогов (по умолчанию ``/etc/skel``), изменив местоположение ввода на специальное ``null`` устройство.
*``/dev/null`` — специальный файл в системах класса UNIX, представляющий собой так называемое «пустое устройство». Запись в него происходит успешно, независимо от объёма «записанной» информации. Чтение из ``/dev/null`` эквивалентно считыванию конца файла (EOF).*
``lin``
Это имя созданного пользователя.
При желании, можно создать пароль для этой учётной записи:
```bash
passwd lin
```
Предоставим пользователю ``lin`` полный доступ к каталогу ``$LIN/tools``, сделав пользователя владельцем этого каталога:
```bash
chown -v lin $LIN/tools
```
Предоставьте пользователю lfs права на каталог где содержаться сохраненные пакеты и патчи:
```bash
chown -v lin $LIN/sources
```
Далее, выполним вход как пользователь ``lin``.
*Это действие можно выполнить в графической оболочке, используя виртуальный терминал, или в обычной пользовательской среде:*
```bash
su - lfs
```

View File

@ -1,16 +1,43 @@
# Создание базовых директорий и символических ссылок
Во первых создайте рабочую директорию `/sources` :
## Каталог для хранения пакетов и патчей
Для сборки кросс компилятора и в дальнейшем целевой системы, понядобятся пакеты и патчи, сборкой которых мы будет заниматься в дальнейшем.
Загруженные пакеты и патчи необходимо сохранить на файловой системе. Нужен рабочий каталог, в котором можно будет распаковывать пакеты и выполнять их настройку и компиляцию. Каталог ``$LIN/sources`` может быть использован как место для хранения, а также как место для настройки и компиляции. Используя этот каталог, необходимые элементы будут расположены и доступны на всех этапах создания системы.
Чтобы создать такой каталог, выполните следующую команду от пользователя ``root``, до начала процесса загрузки пакетов и патчей:
```bash
mkdir -pv $LIN/sources
mkdir -v $LIN/sources
```
## Создание каталога $LIN/tools
Все программы которые будут скомпилированы следующей части, будут установлены в каталог ``$LIN/tools`` чтобы можно было оставить их отдельно от сборки конечной системы. Программы которые будут скомпилированы - временные инструменты и не будут входить в конечную сборку системы.
После использования кросс-компилятора, от него можно избавиться. Использование каталога ``$LIN/tools`` необходимо для того, чтобы не засорять рабочие каталоги хост-системы.
Кросс-компилятор будет установлен в директорию `/tools`, создайте её:
```bash
mkdir -pv $LIN/tools
```
Следующим шагом, будет создание символической ссылки `/tools` в хост-системе, которая будет указывать на созданный каталог с кросс-компилятором.
*Данная операция необходима исключительно для удобства и универсальности, в случае, если вы измените путь до каталога ``$LIN/tools`` то необходимо будет изменить символическую ссылку, поскольку все полседующие инструкции будут работать с указанием на путь `/tools`.*
```bash
ln -sv $LIN/tools /
```
## Создание иеархии файловой системы
Теперь создайте базовую иеархию файловой системы:
[filename](https://raw.githubusercontent.com/Linux4Yourself/Linux4Yourself.Book.Scripts/develop/src/file-system.sh ':include')
Подробнее об этом вы можете прочитать в стандарте [FHS](https://refspecs.linuxfoundation.org/fhs.shtml)
Подробнее об иерархии каталогов можно узнать в спецификации [FHS](https://refspecs.linuxfoundation.org/fhs.shtml)
## Для MultiLib
Создайте директорию для 32-битных библиотек:

21
docs/prepare/download.md Normal file
View File

@ -0,0 +1,21 @@
# Требуемые пакеты и патчи
На данном этапе все готово для загрузки необходимых пакетов и патчей. В передыдущей главе был создан каталог ``$LIN/sources``, который и будет задействован, как место хранения.
Самый простой способ загрузки всех требуемых пакетов и патчей - воспользоваться файлом [wget-list](https://raw.githubusercontent.com/Linux4Yourself/Linux4Yourself.Book.Packages/develop/src/wget-list).
Далее его можно передать как параметр программе ``wget``.
```bash
wget --input-file=wget-list --continue --directory-prefix=$LIN/sources
```
При желании, вы можете выполнить проверку пакетов на соответствие контрольным суммам.
Загрузите файл [md5sums](https://raw.githubusercontent.com/Linux4Yourself/Linux4Yourself.Book.Packages/develop/src/md5sums),поместите его в каталог ``$LIN/sources`` и выполните команду:
```bash
pushd $LIN/sources
md5sum -c md5sums
popd
```

View File

@ -1,5 +1,6 @@
# Монтирование разделов
**Все команды в данном разделе выполняються от имени пользователя root.**
!> **Все команды в данном разделе выполняються от имени пользователя root.**
## Монтирование корневого раздела
@ -24,7 +25,7 @@ mkdir -pv $LIN/boot/efi
Далее смонтируем раздел:
```bash
mount -v /dev/sdN /boot/efi
mount -v /dev/sdN $LIN/boot/efi
```
Где sdN - EFI раздел.