From d5c8ce9ab167211859cc2b3335c73b8f2b55ea70 Mon Sep 17 00:00:00 2001 From: Anton Maisak Date: Sat, 24 Apr 2021 13:42:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BA=D0=BB=D1=8E=D1=87=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D1=8D=D1=82=D0=B0?= =?UTF-8?q?=D0=BF=D1=8B=20=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/_404.md | 2 +- docs/_sidebar.md | 2 ++ docs/prepare/add-user.md | 55 +++++++++++++++++++++++++++++++++ docs/prepare/create-dirs.md | 33 ++++++++++++++++++-- docs/prepare/download.md | 21 +++++++++++++ docs/prepare/mount-partition.md | 5 +-- 6 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 docs/prepare/add-user.md create mode 100644 docs/prepare/download.md diff --git a/docs/_404.md b/docs/_404.md index 826be24b..b19030c2 100644 --- a/docs/_404.md +++ b/docs/_404.md @@ -1 +1 @@ -# NOt Found =( +# Страница не найдена diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 366a9752..addd5802 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -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) diff --git a/docs/prepare/add-user.md b/docs/prepare/add-user.md new file mode 100644 index 00000000..4af97795 --- /dev/null +++ b/docs/prepare/add-user.md @@ -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 +``` diff --git a/docs/prepare/create-dirs.md b/docs/prepare/create-dirs.md index b537f458..e8e56567 100644 --- a/docs/prepare/create-dirs.md +++ b/docs/prepare/create-dirs.md @@ -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-битных библиотек: diff --git a/docs/prepare/download.md b/docs/prepare/download.md new file mode 100644 index 00000000..e40064ee --- /dev/null +++ b/docs/prepare/download.md @@ -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 +``` diff --git a/docs/prepare/mount-partition.md b/docs/prepare/mount-partition.md index 89489a34..70a7b184 100644 --- a/docs/prepare/mount-partition.md +++ b/docs/prepare/mount-partition.md @@ -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 раздел.