mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-01-23 14:32:18 +08:00
Много мелких исправлений
This commit is contained in:
parent
4a7a2f5157
commit
e634336de2
@ -30,7 +30,7 @@
|
||||
- [**Сборка временной системы**](build-temp-system/tempsystem)
|
||||
|
||||
- [Glibc](build-temp-system/glibc)
|
||||
- [LibstdС++ проход 1](build-temp-system/libstdc)
|
||||
- [LibstdC++ проход 1](build-temp-system/libstdc)
|
||||
- [M4](build-temp-system/m4)
|
||||
- [Ncurses](build-temp-system/ncurses)
|
||||
- [Bash](build-temp-system/bash)
|
||||
|
@ -44,7 +44,7 @@ file /dev/sda2
|
||||
|
||||
С обычными файлами пользователь работает чаще всего. Это документы, текстовые файлы, музыка, видео и пр.
|
||||
|
||||
Для того, чтобы просмотреть эти файлы, выполните:
|
||||
Для того чтобы просмотреть эти файлы, выполните:
|
||||
|
||||
```
|
||||
ls -l /etc |grep "^-"
|
||||
|
@ -92,7 +92,7 @@ _В данной статье уточняются только некоторы
|
||||
| `/lib` | Содержит системные библиотеки и файлы, такие как модули ядра и драйверы устройств. |
|
||||
| `/lib64` | Содержит системные библиотеки и файлы, такие как модули ядра и драйверы устройств для 64-разрядных систем. |
|
||||
| `/media` | Это точка подключения, используемая по умолчанию для таких съемных устройств, как USB-накопители и медиаплееры. |
|
||||
| `/mnt` | Содержит точки подключения файловой системы. Используется для нескольких жестких дисков, нескольких разделов, сетевых файловых систем, компакт-дисков и т.д. Название директории произошло от слова _mount_. |
|
||||
| `/mnt` | Содержит точки подключения файловой системы. Используется для нескольких жёстких дисков, нескольких разделов, сетевых файловых систем, компакт-дисков и т.д. Название директории произошло от слова _mount_. |
|
||||
| `/opt` | Содержит дополнительное программное обеспечение. Также используется для установки более крупных программ вместо /usr. |
|
||||
| `/proc` | Содержит виртуальные файловые системы, описывающие информацию о процессах в виде файлов. |
|
||||
| `/sbin` | Содержит основные утилиты, необходимые для запуска, обслуживания и восстановления системы. Название директории произошло от _System Binaries_. |
|
||||
@ -102,4 +102,4 @@ _В данной статье уточняются только некоторы
|
||||
| `/tmp` | Это место для временных файлов. tmpfs, смонтированные на нем, или сценарии при запуске обычно удаляют эти файлы при загрузке. |
|
||||
| `/usr` | Содержит исполняемые файлы и общие ресурсы, которые не являются критическими для системы. |
|
||||
| `/var` | Является местом для файлов, которые находятся в изменяемом состоянии. Например, файлы с изменяющимся размером. Название директории произошло от слова _variable (переменная)_. |
|
||||
| `/swap` | Раздел или файл подкачки, позволяющий расширить системную память, выделив часть свободного пространства жесткого диска. Подробнее о подкачке читать [здесь](https://lx4u.ru/dev/#/additional/swap). |
|
||||
| `/swap` | Раздел или файл подкачки, позволяющий расширить системную память, выделив часть свободного пространства жёсткого диска. Подробнее о подкачке читать [здесь](https://lx4u.ru/dev/#/additional/swap). |
|
||||
|
@ -1,6 +1,6 @@
|
||||
# О шебангах в скриптах Linux
|
||||
|
||||
Все скрипты, которые создаёт пользователь, исполняемыми не являются. Для того, чтобы дать право исполнения определённому файлу, нужно выполнить:
|
||||
Все скрипты, которые создаёт пользователь, исполняемыми не являются. Для того чтобы дать право исполнения определённому файлу, нужно выполнить:
|
||||
|
||||
```bash
|
||||
chmod +x $FILE
|
||||
@ -51,4 +51,4 @@ python $FILE
|
||||
Но тут ещё одна загвоздка: иногда различаются ещё и имена интерпретаторов.
|
||||
Например, Python3 в системе Windows (через MinGW, например) называется `python`, а не `python3`, как, например, в Linux.
|
||||
|
||||
Поэтому, перед созданием скриптов (или при переноса таковых из Linux for yourself в другие системы) будьте внимательны в правильности шебанга. А лучше, проверьте его или тестовым скриптом (самый простейший "Hello, world!"), либо же воспользуйтесь утилитой `which` (или её аналогом), для того, чтобы узнать нахождение нужного интерпретатора.
|
||||
Поэтому, перед созданием скриптов (или при переноса таковых из Linux for yourself в другие системы) будьте внимательны в правильности шебанга. А лучше, проверьте его или тестовым скриптом (самый простейший "Hello, world!"), либо же воспользуйтесь утилитой `which` (или её аналогом), для того чтобы узнать нахождение нужного интерпретатора.
|
||||
|
@ -43,7 +43,7 @@ sudo swapon /swapfile
|
||||
## Настройка vm.swappiness
|
||||
|
||||
Теперь настройка свопа. Есть параметр, сообщающий ядру, как часто использовать подкачку. Параметр имеет значение от 0 до 100. Чем выше значение, тем чаще будет использоваться swap.
|
||||
Для того, чтобы проверить, какой параметр используется, выполните:
|
||||
Для того чтобы проверить, какой параметр используется, выполните:
|
||||
|
||||
```
|
||||
cat /proc/sys/vm/swappiness
|
||||
|
@ -48,7 +48,7 @@ swapon /dev/zram2 -p 10
|
||||
swapon /dev/zram3 -p 10
|
||||
```
|
||||
|
||||
Для того, чтобы проверить результат, выполните:
|
||||
Для того чтобы проверить результат, выполните:
|
||||
|
||||
```
|
||||
swapon -s
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
## Соглашения о наименованиях GRUB
|
||||
|
||||
GRUB использует собственную структуру именования дисков и разделов в виде (`hdn, m`), где `n`- номер жесткого диска, а `m` - номер раздела. Номер жесткого диска начинается с нуля, но номер раздела начинается с единицы для обычных разделов и пяти для расширенных разделов.
|
||||
GRUB использует собственную структуру именования дисков и разделов в виде (`hdn, m`), где `n`- номер жёсткого диска, а `m` - номер раздела. Номер жёсткого диска начинается с нуля, но номер раздела начинается с единицы для обычных разделов и пяти для расширенных разделов.
|
||||
|
||||
Например, раздел `sda1` - это (`hd0,1`) для GRUB, а `sdb3` - (`hd1,3`). В отличие от Linux, GRUB не считает приводы CD-ROM жёсткими дисками. Например, если вы используете компакт-диск на `hdb` и второй диск на `hdc`, этот второй диск всё равно будет (`hd1`).
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
## Поиск, или создание системного раздела EFI
|
||||
|
||||
В системе на основе EFI загрузчики устанавливаются в специальный раздел FAT32, называемый системным разделом EFI (ESP). Если ваша система поддерживает EFI и предустановлен дистрибутив Linux и (или) Windows, скорее всего, ESP уже создан. Посмотрите все разделы на вашем жестком диске (замените `sda` на нужное устройство):
|
||||
В системе на основе EFI загрузчики устанавливаются в специальный раздел FAT32, называемый системным разделом EFI (ESP). Если ваша система поддерживает EFI и предустановлен дистрибутив Linux и (или) Windows, скорее всего, ESP уже создан. Посмотрите все разделы на вашем жёстком диске (замените `sda` на нужное устройство):
|
||||
|
||||
```bash
|
||||
fdisk -l /dev/sda
|
||||
@ -23,7 +23,7 @@ fdisk -l /dev/sda
|
||||
|
||||
```
|
||||
|
||||
Если система или жесткий диск новые, или если вы впервые устанавливаете ОС, загружаемую через `UEFI`, `ESP` может не существовать. В этом случае создайте новый раздел, создайте на нем файловую систему `vfat` и установите тип раздела `EFI system`.
|
||||
Если система или жёсткий диск новые, или если вы впервые устанавливаете ОС, загружаемую через `UEFI`, `ESP` может не существовать. В этом случае создайте новый раздел, создайте на нем файловую систему `vfat` и установите тип раздела `EFI system`.
|
||||
|
||||
!> Некоторые (старые) реализации `UEFI` могут требовать, чтобы ESP был первым разделом на диске.
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
`--disable-*`
|
||||
Исключает установку библиотек libuuid и libblkid, службы uuidd и fsck обертки, которые содержатся в пакете Util-Linux и являются более актуальными.
|
||||
|
||||
`--enable-symlink-install` `--enable-relative-symlinks` - Использовать относительные символические ссылки вместо жестких.
|
||||
`--enable-symlink-install` `--enable-relative-symlinks` - Использовать относительные символические ссылки вместо жёстких.
|
||||
|
||||
## Сборка
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
## Установленные файлы
|
||||
|
||||
Программы: `corelist, cpan, enc2xs, encguess, h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, perl5.32.1 (жесткая ссылка на perl), perlbug, perldoc, perlivp, perlthanks (жесткая ссылка на perlbug), piconv, pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp и zipdetails`
|
||||
Программы: `corelist, cpan, enc2xs, encguess, h2ph, h2xs, instmodsh, json_pp, libnetcfg, perl, perl5.32.1 (жёсткая ссылка на perl), perlbug, perldoc, perlivp, perlthanks (жёсткая ссылка на perlbug), piconv, pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, prove, ptar, ptardiff, ptargrep, shasum, splain, xsubpp и zipdetails`
|
||||
|
||||
Библиотеки: Множество в директории `/usr/lib/perl5`
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
<package-script :package="'python'" :type="'test'"></package-script>
|
||||
|
||||
!> На данном этапе тестирование Python производить не рекомендуется. Тесты могут зависнуть. При желании, проведите тесты при переустановке пакета Python, но уже в руководстве `Extra`.
|
||||
!> На данном этапе тестирование Python производить не рекомендуется. Тесты могут зависнуть. При желании проведите тесты при переустановке пакета Python, но уже в руководстве `Extra`.
|
||||
|
||||
## Установленные файлы
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
- Для использования более безопасного метода шифрования SHA-512 вместо стандартного `crypt` метода, а также использования `/var/mail` вместо устаревшего `/var/spool/mail` и устранения дублирования путей в переменной `PATH` по умолчанию
|
||||
|
||||
- Сделайте незначительное изменение для того, чтобы номера групп начинались с 1000
|
||||
- Сделайте незначительное изменение, для того чтобы номера групп начинались с 1000
|
||||
|
||||
<package-script :package="'shadow'" :type="'prepare'"></package-script>
|
||||
|
||||
|
@ -103,7 +103,8 @@ ln -s ../../../libgcc/gthr-posix.h $LIN_TGT/libgcc/gthr-default.h
|
||||
--disable-libssp \
|
||||
--disable-libvtv \
|
||||
--disable-libstdcxx \
|
||||
--enable-languages=c,c++ --disable-multilib
|
||||
--enable-languages=c,c++ \
|
||||
--disable-multilib
|
||||
```
|
||||
|
||||
### Для multilib
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Libstdc v.{{ package.version }} проход 2
|
||||
|
||||
Пакет содержит библиотеку времени исполнения, необходимую программам, написанным на языке С++ и собранным при помощи компилятора GNU.
|
||||
Пакет содержит библиотеку времени исполнения, необходимую программам, написанным на языке C++ и собранным при помощи компилятора GNU.
|
||||
|
||||
Ссылка для скачивания: <a :href="package.url"><b>{{ package.url }}</b></a>
|
||||
<br />
|
||||
|
@ -1,6 +1,6 @@
|
||||
# LibstdС++ Проход 1
|
||||
# LibstdC++ Проход 1
|
||||
|
||||
Пакет содержит библиотеку времени исполнения, необходимую программам, написанным на языке С++ и собранным при помощи компилятора GNU.
|
||||
Пакет содержит библиотеку времени исполнения, необходимую программам, написанным на языке C++ и собранным при помощи компилятора GNU.
|
||||
|
||||
Версия <b>v.{{ package.version }}</b>
|
||||
<br />
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Сборка кросс компилятора
|
||||
|
||||
Это глава описывает процесс создания кросс компилятора и минимально необходимого набора инструментов, который потребуется для сборки конечной системы.
|
||||
Эта глава описывает процесс создания кросс-компилятора и минимально необходимого набора инструментов, который потребуется для сборки конечной системы.
|
||||
|
||||
Все пакеты, которые будут скомпилированы в этой главе, будут установлены в каталог `$LIN/tools`, чтобы хранить их отдельно от хост системы и конечной системы. Как обсуждалось ранее, это набор инструментов - временный, и нам не требуется его наличие в конечном счёте.
|
||||
Все пакеты, которые будут скомпилированы в этой главе, будут установлены в каталог `$LIN/tools`, чтобы хранить их отдельно от хост-системы и конечной системы. Как обсуждалось ранее, этот набор инструментов - временный, и нам не требуется его наличие в конечном счёте.
|
||||
|
||||
!> При работе следует строго выполнять последовательность сборки пакетов.
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
||||
|
||||
Распакуйте дополнительные пакеты:
|
||||
|
||||
!> Обратите внимание, что распаковка указанных пакетов должна производится из каталога пакета GCC.
|
||||
!> Обратите внимание, что распаковка указанных пакетов должна производиться из каталога пакета GCC.
|
||||
|
||||
<pre>
|
||||
tar -xf ../{{ mpfr.fileName }}
|
||||
@ -99,7 +99,8 @@ cd build
|
||||
--disable-libssp \
|
||||
--disable-libvtv \
|
||||
--disable-libstdcxx \
|
||||
--enable-languages=c,c++ --disable-multilib
|
||||
--enable-languages=c,c++ \
|
||||
--disable-multilib
|
||||
```
|
||||
|
||||
### Для multilib
|
||||
@ -116,11 +117,11 @@ cd build
|
||||
|
||||
`--enable-initfini-array` Этот переключатель заставляет использовать некоторые внутренние структуры данных, которые необходимы, но не могут быть обнаружены при построении кросс-компилятора.
|
||||
|
||||
`--disable-shared` Этот переключатель заставляет GCC связывать свои внутренние библиотеки статически. Нам это нужно, потому что общие библиотеки требуют glibc, которая еще не установлена в целевой системе.
|
||||
`--disable-shared` Этот переключатель заставляет GCC связывать свои внутренние библиотеки статически. Нам это нужно, потому что общие библиотеки требуют glibc, которая ещё не установлена в целевой системе.
|
||||
|
||||
`--disable-decimal-float, --disable-threads, --disable-libatomic, --disable-libgomp, --disable-libquadmath, --disable-libssp, --disable-libvtv, --disable-libstdcxx` Эти переключатели отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp, libvtv и стандартной библиотеки C ++ соответственно. Эти функции не будут скомпилированы при сборке кросс-компилятора и не являются необходимыми для кросс-компиляции временной libc.
|
||||
`--disable-decimal-float, --disable-threads, --disable-libatomic, --disable-libgomp, --disable-libquadmath, --disable-libssp, --disable-libvtv, --disable-libstdcxx` Эти переключатели отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp, libvtv и стандартной библиотеки C++ соответственно. Эти функции не будут скомпилированы при сборке кросс-компилятора и не являются необходимыми для кросс-компиляции временной libc.
|
||||
|
||||
`--enable-languages=c,c++` Эта опция гарантирует, что будут построены только компиляторы C и C ++. Это единственные языки, которые нужны сейчас.
|
||||
`--enable-languages=c,c++` Эта опция гарантирует, что будут построены только компиляторы C и C++. Это единственные языки, которые нужны сейчас.
|
||||
|
||||
## Сборка
|
||||
|
||||
@ -134,7 +135,7 @@ make
|
||||
make install
|
||||
```
|
||||
|
||||
Создадим полную версию `limits.h` - заголовочного файла в котором записаны лимиты.
|
||||
Создадим полную версию `limits.h` - заголовочного файла, в котором записаны лимиты:
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Подготовка
|
||||
|
||||
Инструкции по созданию встраиваемой Linux системы во многом схожи, и пересекаются. Если вы ранее выполняли сборку предложенной Linux системы, то инструкции в этом разделе будут вам предельно понятны. Отличительные особенности и приёмы, будут детально разъяснены.
|
||||
Инструкции по созданию встраиваемой Linux системы во многом схожи и пересекаются. Если вы ранее выполняли сборку предложенной Linux системы, то инструкции в этом разделе будут вам предельно понятны. Отличительные особенности и приёмы будут детально разъяснены.
|
||||
|
||||
## Требования
|
||||
|
||||
Ознакомьтесь с типовыми [требованиями](prepare/requrements) которые следует соблюдать до процесса создания встраиваемой Linux системы. Также потребуются базовые знания об архитектурах, используемых в процессе сборки.
|
||||
Ознакомьтесь с типовыми [требованиями](prepare/requrements), которые следует соблюдать до процесса создания встраиваемой Linux системы. Также потребуются базовые знания об архитектурах, используемых в процессе сборки.
|
||||
|
||||
## Этапы процесса создания встраиваемой Linux системы
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
## Создание файла /etc/os-release
|
||||
|
||||
Файл необходим для идентификации операционной системы. Он необходим при использовании SystemD а также для некоторых графических оболочек.
|
||||
Файл необходим для идентификации операционной системы. Он необходим при использовании SystemD, а также для некоторых графических оболочек.
|
||||
|
||||
Базовый формат файла `os-release` - это список назначений переменных, совместимых с оболочкой, разделенных новой строкой. Можно получить конфигурацию из сценариев оболочки, однако, помимо простого назначения переменных, функции оболочки не поддерживаются (это означает, что расширение переменных явно не поддерживается), что позволяет приложениям читать файл без реализации механизма выполнения, совместимого с оболочкой. Значения присвоения переменных должны быть заключены в двойные или одинарные кавычки, если они включают пробелы, точки с запятой или другие специальные символы за пределами A – Z, a – z, 0–9. Специальные символы оболочки («$», кавычки, обратная косая черта, обратная косая черта) должны быть экранированы обратной косой чертой в соответствии со стилем оболочки. Все строки должны быть в формате UTF-8, и нельзя использовать непечатаемые символы. Объединение нескольких строк в индивидуальных кавычках не поддерживается. Строки, начинающиеся с "#", игнорируются как комментарии. Пустые строки разрешены и игнорируются.
|
||||
|
||||
@ -32,7 +32,7 @@ EOF
|
||||
|
||||
**ID**
|
||||
|
||||
Строка в нижнем регистре (без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая операционную систему, исключая любую информацию о версии и подходящая для обработки скриптами или использования. в сгенерированных именах файлов. Если не установлен, по умолчанию используется `ID=linux`.
|
||||
Строка в нижнем регистре (без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая операционную систему, исключая любую информацию о версии и подходящая для обработки скриптами или использования в сгенерированных именах файлов. Если не установлен, по умолчанию используется `ID=linux`.
|
||||
|
||||
?> Пример: `ID = fedora` или `ID = debian`.
|
||||
|
||||
@ -42,13 +42,13 @@ EOF
|
||||
|
||||
**VERSION_CODENAME**
|
||||
|
||||
Строка в нижнем регистре (без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая кодовое имя выпуска операционной системы, исключая любую информацию об имени ОС или версию выпуска, и подходит для обработки скриптами или использования в сгенерированных именах файлов. Это поле является необязательным и может быть реализовано не во всех системах.
|
||||
Строка в нижнем регистре (без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая кодовое имя выпуска операционной системы, исключая любую информацию об имени ОС или версию выпуска, и подходящая для обработки скриптами или использования в сгенерированных именах файлов. Это поле является необязательным и может быть реализовано не во всех системах.
|
||||
|
||||
?> Примеры: `VERSION_CODENAME = buster`, `VERSION_CODENAME = xenial`.
|
||||
|
||||
**VERSION_ID**
|
||||
|
||||
Строка в нижнем регистре (в основном числовая, без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая версию операционной системы, исключая любую информацию об имени ОС или код выпуска. name и подходит для обработки скриптами или использования в сгенерированных именах файлов. Это поле не является обязательным.
|
||||
Строка в нижнем регистре (в основном числовая, без пробелов и других символов, кроме 0–9, a – z, «.», «\_» И «-»), идентифицирующая версию операционной системы, исключая любую информацию об имени ОС или код выпуска. Подходит для обработки скриптами или использования в сгенерированных именах файлов. Это поле не является обязательным.
|
||||
|
||||
?> Пример: `VERSION_ID = 34` или `VERSION_ID = 21.04`.
|
||||
|
||||
@ -82,7 +82,7 @@ EOF
|
||||
|
||||
**VARIANT**
|
||||
|
||||
Строка, идентифицирующая конкретный вариант или редакцию операционной системы, подходящую для представления пользователю. Это поле может использоваться для информирования пользователя о том, что конфигурация этой системы подчиняется определенному расходящемуся набору правил или настройкам конфигурации по умолчанию. Это поле является необязательным и может быть реализовано не во всех системах. Примеры: `VARIANT =" Server Edition "`, `VARIANT =" Smart Refrigerator Edition "`
|
||||
Строка, идентифицирующая конкретный вариант или редакцию операционной системы, подходящую для представления пользователю. Это поле может использоваться для информирования пользователя о том, что конфигурация этой системы подчиняется определённому расходящемуся набору правил или настройкам конфигурации по умолчанию. Это поле является необязательным и может быть реализовано не во всех системах. Примеры: `VARIANT =" Server Edition "`, `VARIANT =" Smart Refrigerator Edition "`
|
||||
|
||||
!> Примечание: это поле предназначено только для отображения. Поле `VARIANT_ID` следует использовать для принятия программных решений.
|
||||
|
||||
@ -94,13 +94,13 @@ EOF
|
||||
|
||||
**LOGO**
|
||||
|
||||
Строка, определяющая имя значка, как определено в Спецификации темы значков freedesktop.org. Это может использоваться графическими приложениями для отображения логотипа операционной системы или дистрибьютора. Это поле является необязательным и не обязательно может быть реализовано во всех системах.
|
||||
Строка, определяющая имя значка, как определено в Спецификации темы значков freedesktop.org. Это может использоваться графическими приложениями для отображения логотипа операционной системы или дистрибьютора. Это поле является необязательным и может быть реализовано не во всех системах.
|
||||
|
||||
?> Пример: `LOGO=fedora-logo-icon`.
|
||||
|
||||
**DEFAULT_HOSTNAME**
|
||||
|
||||
Строка, определяющая имя хоста, если имя хоста отсутствует и никакой другой источник конфигурации не указывает имя хоста. Должна быть либо одна метка DNS (строка, состоящая из 7-битных символов нижнего регистра ASCII и без пробелов и точек, ограниченная форматом, разрешенным для меток имен доменов DNS), либо последовательность таких меток, разделенных одиночными точками, которые образуют действительное полное доменное имя DNS. Имя хоста должно состоять не более чем из 64 символов, что является ограничением Linux (DNS допускает более длинные имена).
|
||||
Строка, определяющая имя хоста, если имя хоста отсутствует и никакой другой источник конфигурации не указывает имя хоста. Должна быть либо одна метка DNS (строка, состоящая из 7-битных символов нижнего регистра ASCII и без пробелов и точек, ограниченная форматом, разрешённым для меток имен доменов DNS), либо последовательность таких меток, разделённых одиночными точками, которые образуют действительное полное доменное имя DNS. Имя хоста должно состоять не более чем из 64 символов, что является ограничением Linux (DNS допускает более длинные имена).
|
||||
|
||||
**SYSEXT_LEVEL**
|
||||
|
||||
@ -123,13 +123,13 @@ DISTRIB_DESCRIPTION="MyLinux"
|
||||
EOF
|
||||
</pre>
|
||||
|
||||
Если система совместима с LSB, файл `/etc/lsb-release` должен содержать поле `LSB_VERSION`. Значение поля должно представлять собой список поддерживаемых версий модулей, разделенных двоеточиями, с указанием модулей спецификации LSB, которым соответствует установка. Если установка не соответствует требованиям, вышеуказанное поле должно отсутствовать.
|
||||
Если система совместима с LSB, файл `/etc/lsb-release` должен содержать поле `LSB_VERSION`. Значение поля должно представлять собой список поддерживаемых версий модулей, разделённых двоеточиями, с указанием модулей спецификации LSB, которым соответствует установка. Если установка не соответствует требованиям, вышеуказанное поле должно отсутствовать.
|
||||
|
||||
!> Замените значения переменных в этом файле на нужные вам. Например, значение `MyLinux` переменной `DISTRIB_ID` заменине на ваше уникальное название дистрибутива.
|
||||
|
||||
## Перезагрузка
|
||||
|
||||
Теперь, когда все программное обеспечение установлено, можно перезагрузить компьютер. Однако вам следует знать о нескольких вещах. Система, которую вы создали, весьма минимальна. Скорее всего потребуется множество других программ, например графическое окружение, и <a :href="exrtraUrl">в следующей части</a> будут предоставлены инструкции по их сборке.
|
||||
Теперь, когда всё программное обеспечение установлено, можно перезагрузить компьютер. Однако вам следует знать о нескольких вещах. Система, которую вы создали, весьма минимальна. Скорее всего потребуется множество других программ, например, графическое окружение, и <a :href="exrtraUrl">в следующей части</a> будут предоставлены инструкции по их сборке.
|
||||
|
||||
На этом этапе также уместно проверить следующие файлы конфигурации:
|
||||
|
||||
@ -154,26 +154,26 @@ EOF
|
||||
logout
|
||||
```
|
||||
|
||||
Отключите виртуальные файловые системы:
|
||||
Отключим виртуальные файловые системы:
|
||||
|
||||
```bash
|
||||
umount $LIN/dev{/pts,}
|
||||
umount $LIN/{sys,proc,run}
|
||||
```
|
||||
|
||||
Размонтируйте иерархию каталогов созданной Linux системы:
|
||||
Размонтируем иерархию каталогов созданной Linux системы:
|
||||
|
||||
```bash
|
||||
umount -Rv $LIN
|
||||
```
|
||||
|
||||
Выполните перезагрузку
|
||||
Выполним перезагрузку
|
||||
|
||||
```
|
||||
shutdown -r now
|
||||
```
|
||||
|
||||
После перезагрузки, система будет готова к использованию.
|
||||
После перезагрузки система будет готова к использованию.
|
||||
|
||||
<script>
|
||||
new Vue({ el: '#main'})
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
Lx4U или “Linux для себя” - русскоязычное подробное руководство по созданию Linux-системы, используя лишь исходные тексты необходимого программного обеспечения. Это руководство - самостоятельное ответвление от проекта <a href="https://linuxfromscratch.org">Linux From Scratch</a>.
|
||||
|
||||
На Ваш выбор предлагается использование multilib системы, поддержка EFI и набор дополнительного программного обеспечения для организации комфортной работы. Кроме того, существует расширенное руководство, в котором содержится информация о настройке окружения рабочего стола и программного обеспечения охватывающего различные области применения.
|
||||
На Ваш выбор предлагается использование multilib системы, поддержка EFI и набор дополнительного программного обеспечения для организации комфортной работы. Кроме того, существует расширенное руководство, в котором содержится информация о настройке окружения рабочего стола и программного обеспечения, охватывающего различные области применения.
|
||||
|
||||
Но главная идея остается - Вы в центре всего, и Вы решаете каким должна быть Ваша собственная система. А мы просто протягиваем Вам руку помощи.
|
||||
Но главная идея остаётся - Вы в центре всего, и Вы решаете, какой должна быть Ваша собственная система. А мы просто протягиваем Вам руку помощи.
|
||||
|
||||
Начните собственное путешествие в мир Linux прямо сейчас!
|
||||
|
@ -1,12 +1,12 @@
|
||||
# О прошивках
|
||||
|
||||
Многие драйвера в ядре Linux (например для видеокарт и сетевых адаптеров) требуют маленькие проприетарные компоненты - firmware (прошивки).
|
||||
Многие драйвера в ядре Linux (например, для видеокарт и сетевых адаптеров) требуют маленькие проприетарные компоненты - firmware (прошивки).
|
||||
|
||||
## Определение необходимых прошивок
|
||||
|
||||
Для того чтобы выяснить, какие прошивки нужны - загрузитесь в операционную систему (инструкции о том, как это сделать даны в следующих 2 разделах) и выполните команду `dmesg`. Если для вашего ядра требуются какие либо прошивки - вы увидите связанные с этим ошибки.
|
||||
|
||||
?> Если система не загружается из за ошибки, связанной с видео драйвером - поищите в интернете, какие драйвера необходимы для вашего видео адаптера.
|
||||
?> Если система не загружается из-за ошибки, связанной с видео драйвером - поищите в интернете, какие драйвера необходимы для вашего видео адаптера.
|
||||
|
||||
## Установка прошивок
|
||||
|
||||
@ -24,6 +24,6 @@ CONFIG_EXTRA_FIRMWARE="amdgpu/picasso_asd.bin amdgpu/picasso_gpu_info.bin amdgpu
|
||||
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
|
||||
```
|
||||
|
||||
В этом случае подключаются firmware для видеокарт AMDGPU семейства picasso (Например Vega 8). Они в таком случае находятся в `/lib/firmware/amdgpu/`
|
||||
В этом случае подключаются firmware для видеокарт AMDGPU семейства picasso (например, Vega 8). Они в таком случае находятся в `/lib/firmware/amdgpu/`
|
||||
|
||||
Найти и загрузить большую часть прошивок можно здесь `https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/`
|
||||
|
@ -11,4 +11,4 @@
|
||||
|
||||
Ядро Linux разрабатывалось таким образом, чтобы всегда была возможность его максимально гибко настроить, адаптируя его к требуемым условиям эксплуатации и аппаратному окружению. Причём так, чтобы это было возможно динамически на готовой сборке ядра. Другими словами - можно в любой момент времени вносить корректирующие параметры, влияющие на работу как самого ядра, так и его отдельных компонентов.
|
||||
|
||||
Ознакомьтесь с материалами [Строение GNU/Linux. Часть 1](additional/LinuxStructure1) чтобы получить больше информации как про ядро, так и процесс загрузки.
|
||||
Ознакомьтесь с материалами [Строение GNU/Linux. Часть 1](additional/LinuxStructure1), чтобы получить больше информации как про ядро, так и процесс загрузки.
|
||||
|
@ -22,24 +22,22 @@
|
||||
|
||||
## Подготовка
|
||||
|
||||
Подготовьте пакет к компиляции выполнив следующую команду:
|
||||
Подготовьте пакет к компиляции, выполнив следующую команду:
|
||||
|
||||
```bash
|
||||
make mrproper
|
||||
```
|
||||
|
||||
Выполнение этой команды гарантирует, что дерево исходных кодов ядра абсолютно чистое.
|
||||
Разработчики ядра рекомендуют, чтобы эта команда выполнялась перед каждым процессом
|
||||
компиляции.
|
||||
Выполнение этой команды гарантирует, что дерево исходных кодов ядра будет абсолютно чистым.
|
||||
Разработчики ядра рекомендуют, чтобы эта команда выполнялась перед каждым процессом компиляции.
|
||||
|
||||
!> Обратите внимание что после распаковки пакета с исходным кодом не следует
|
||||
полагаться на его "чистоту".
|
||||
!> Обратите внимание что после распаковки пакета с исходным кодом не следует полагаться на его "чистоту".
|
||||
|
||||
## Инструменты настройки параметров ядра
|
||||
|
||||
Конфигурация ядра хранится в файле `.config`. Именно этот файл следует отредактировать, указав необходимые опции, в соответствии с вашим оборудованием и предпочтениями.
|
||||
|
||||
Для наглядности и облегчения вопсприятия, настройку ядра можно произвести при помощий утилит предоставляющих графический или псевдографический интерфейс:
|
||||
Для наглядности и облегчения восприятия, настройку ядра можно произвести при помощи утилит, предоставляющих графический или псевдографический интерфейс:
|
||||
|
||||
- `make xconfig` – при использовании графической среды KDE
|
||||
- `make gconfig` – при использовании графической среды GNOME
|
||||
@ -50,7 +48,7 @@ make mrproper
|
||||
|
||||
## Создание конфигурации
|
||||
|
||||
Хорошей отправной точкой для настройки ядра, может стать запуск команды `make defconfig`.
|
||||
Хорошей отправной точкой для настройки ядра может стать запуск команды `make defconfig`.
|
||||
|
||||
Выполните команду:
|
||||
|
||||
@ -58,13 +56,12 @@ make mrproper
|
||||
make defconfig
|
||||
```
|
||||
|
||||
Будет создана базовая конфигурация с настройками по умолчанию, с учётом архитектуры машины. Параметры берутся из архитектурно-зависимых `defconfig` файлов.
|
||||
Будет создана базовая конфигурация с настройками по умолчанию с учётом архитектуры машины. Параметры берутся из архитектурно-зависимых `defconfig` файлов.
|
||||
|
||||
## Настройка параметров
|
||||
|
||||
!> Убедитесь в том, что вы **включили/отключили/указали** указанные ниже параметры
|
||||
настройки, в ином случае, система может работать неправильно, или вовсе не
|
||||
загрузится:
|
||||
настройки. В ином случае система может работать неправильно или вовсе не загрузится:
|
||||
|
||||
```
|
||||
General setup -->
|
||||
@ -130,7 +127,7 @@ File systems --->
|
||||
|
||||
### FUSE
|
||||
|
||||
FUSE (англ. filesystem in userspace — «файловая система в пользовательском пространстве») — свободный модуль для ядер Unix-подобных операционных систем, позволяет разработчикам создавать новые типы файловых систем, доступные для монтирования пользователями без привилегий (прежде всего — виртуальных файловых систем); это достигается за счёт запуска кода файловой системы в пользовательском пространстве, в то время как модуль FUSE предоставляет связующее звено для актуальных интерфейсов ядра. C использованием средств FUSE разработаны, в частности, SSHFS, NTFS-3G, GlusterFS, ZFS.
|
||||
FUSE (англ. filesystem in userspace — «файловая система в пользовательском пространстве») — свободный модуль для ядер Unix-подобных операционных систем, позволяющий разработчикам создавать новые типы файловых систем, доступные для монтирования пользователями без привилегий (прежде всего — виртуальных файловых систем); это достигается за счёт запуска кода файловой системы в пользовательском пространстве, в то время как модуль FUSE предоставляет связующее звено для актуальных интерфейсов ядра. C использованием средств FUSE разработаны, в частности, SSHFS, NTFS-3G, GlusterFS, ZFS.
|
||||
|
||||
```
|
||||
File systems --->
|
||||
@ -159,13 +156,13 @@ File systems --->
|
||||
|
||||
### LVM
|
||||
|
||||
При необходимости, включите поддержу LVM
|
||||
При необходимости включите поддержу LVM.
|
||||
|
||||
LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов.
|
||||
|
||||
С LVM пространство жёсткого диска или набора дисков распределяется по физическим томам. Физический том не может располагаться более чем на одном диске.
|
||||
|
||||
Физические тома собираются в группы логических томов, за исключением раздела /boot/. Раздел /boot/ не может находиться в группе логических томов, так как в этом случае загрузчику не удастся его прочитать. Если корневой раздел (/) находится на логическом томе, создайте отдельный раздел /boot/ вне группы томов.
|
||||
Физические тома собираются в группы логических томов, за исключением раздела /boot. Раздел /boot не может находиться в группе логических томов, так как в этом случае загрузчику не удастся его прочитать. Если корневой раздел (/) находится на логическом томе, создайте отдельный раздел /boot вне группы томов.
|
||||
|
||||
```
|
||||
Device Drivers --->
|
||||
@ -210,9 +207,9 @@ Cryptographic API --->
|
||||
|
||||
### Драйверы устройств
|
||||
|
||||
В разделе `Device Drivers` - нужно пройтись по разделам и включить драйвера для своего оборудования -нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д.
|
||||
В разделе `Device Drivers` - нужно пройтись по разделам и включить драйвера для своего оборудования - нестандартные жёсткие диски, мышки, USB устройства, веб-камеры, Bluetooth, Wi-Fi адаптеры, принтеры и т. д.
|
||||
|
||||
Посмотреть какое оборудование подключено к вашей системе можно командой:
|
||||
Посмотреть, какое оборудование подключено к вашей системе можно командой:
|
||||
|
||||
```bash
|
||||
lspci
|
||||
@ -228,7 +225,7 @@ Cryptographic API --->
|
||||
make
|
||||
```
|
||||
|
||||
?> Обратите внимание что процесс сборки ядра может проходить длительное время (от 4.4 до 66.0 SBU) . Это во многом зависит от установленных параметров конфигурации.
|
||||
?> Обратите внимание, что процесс сборки ядра может проходить длительное время (от 4.4 до 66.0 SBU). Это во многом зависит от установленных параметров конфигурации.
|
||||
|
||||
Установите модули ядра:
|
||||
|
||||
@ -238,12 +235,12 @@ make modules_install
|
||||
|
||||
## Установка
|
||||
|
||||
После завершения сборки, необходимо выполнить еще несколько шагов. Некоторые
|
||||
После завершения сборки необходимо выполнить еще несколько шагов. Некоторые
|
||||
файлы должны быть скопированы в каталог `/boot`.
|
||||
|
||||
Путь к образу ядра зависит от используемой платформы. Имя файла, указанное ниже, может
|
||||
иметь произвольное наименование, на ваш вкус, но имя файла должно начинаться с `vmlinuz`
|
||||
для обеспечения совместимости автоматической настройки процесса загрузки. При выполнении следующей команды, будет считаться что используется
|
||||
для обеспечения совместимости автоматической настройки процесса загрузки. При выполнении следующей команды будет считаться, что используется
|
||||
архитектура x86:
|
||||
|
||||
<pre class="pre">
|
||||
@ -260,7 +257,7 @@ cp -iv arch/x86/boot/bzImage /boot/vmlinuz-{{ package.version }}-my-kernel
|
||||
cp -iv System.map /boot/System.map-{{ package.version }}
|
||||
</pre>
|
||||
|
||||
Файл конфигурации ядра `.config` полученный в результате настройки `make menuconfig`
|
||||
Файл конфигурации ядра `.config`, полученный в результате настройки `make menuconfig`
|
||||
содержит в себе все опции конфигурации скомпилированного ядра. Хорошей идеей будет
|
||||
оставить этот файл для будующей работы:
|
||||
|
||||
@ -293,7 +290,7 @@ cp -rv Documentation/* /usr/share/doc/linux-{{ package.version }}
|
||||
назначены при распаковке. Обычно это не вызывает проблем для других устанавливаемых
|
||||
пакетов, так как каталог с исходными кодами удаляется после установки пакета. Однако
|
||||
исходный код ядра Linux часто сохраняется в течение длительного времени. Из-за этого существует вероятность того, что идентификатор пользователя, используемый при распаковке,
|
||||
будет назначен другому пользователю. В таком случае, этот пользователь будет иметь доступ на
|
||||
будет назначен другому пользователю. В таком случае этот пользователь будет иметь доступ на
|
||||
запись в этот каталог.
|
||||
|
||||
?> Во многих случаях конфигурация ядра должна быть обновлена для пакетов, которые
|
||||
@ -306,19 +303,19 @@ cp -rv Documentation/* /usr/share/doc/linux-{{ package.version }}
|
||||
chown -R 0:0 /usr/src/linux-{{ package.version }}
|
||||
</pre>
|
||||
|
||||
!> Заголовочные файлы расположенные в системном каталоге `/usr/include` должны
|
||||
!> Заголовочные файлы, расположенные в системном каталоге `/usr/include`, должны
|
||||
всегда быть те, которые использовались при компиляции `Glibc`. Их никогда не следует заменять на чистые
|
||||
заголовочные файлы ядра или любые другие подготовленные заголовочные файлы.
|
||||
|
||||
## Настройка порядка загрузки модулей Linux
|
||||
|
||||
Обычно модули Linux загружаются автоматически, но иногда требуется определенный порядок.
|
||||
Программа, которая загружает модули, `modprobe` или `insmod`, использует файл `/etc/ modprobe.d/usb.conf` как раз для этой цели. Этот файл должен быть создан так, что
|
||||
Обычно модули Linux загружаются автоматически, но иногда требуется определённый порядок.
|
||||
Программа, которая загружает модули, `modprobe` или `insmod`, использует файл `/etc/ modprobe.d/usb.conf` как раз для этой цели. Этот файл должен быть создан так, что,
|
||||
если USB-драйверы (`ehci_hcd`, `ohci_hcd` и `uhci_hcd`) были созданы в виде модулей, то они будут
|
||||
загружены в требуемом порядке: `ehci_hcd` должен быть загружен до `ohci_hcd` и `uhci_hcd` для того,
|
||||
чтобы избежать предупреждений во время загрузки.
|
||||
|
||||
Создайте новый файл `/etc/modprobe.d/usb.conf` выполнив следующую команду:
|
||||
Создайте новый файл `/etc/modprobe.d/usb.conf`, выполнив следующую команду:
|
||||
|
||||
<common-script :name="'modprobe'"></common-script>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<package-script :package="'mpc'" :type="'prepare'"></package-script> - выводит инструкцию по использованию пакета.
|
||||
параметры:
|
||||
name - название пакета из файла packages.json репозитория с пакетами. https://github.com/Linux4Yourself/Linux4Yourself.Book.Packages
|
||||
type - тип инструкции. Посмотрите содержимое каталога пакета, для которого необходимо вывечти инструкцию:
|
||||
type - тип инструкции. Посмотрите содержимое каталога пакета, для которого необходимо вывести инструкцию:
|
||||
Типовые файлы:
|
||||
- prepare - подготовка
|
||||
- patch - применить патч
|
||||
|
@ -1,6 +1,6 @@
|
||||
# О приоритете
|
||||
|
||||
В этом руководстве будет определен приоритет пакетов.
|
||||
В этом руководстве будет определён приоритет пакетов.
|
||||
Он может быть следующим:
|
||||
|
||||
<span>**Необходимый**</span>
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
В этом руководстве используется единица времени, аналогичная такой же как в Linux from scratch - SBU (Standard Build Unit).
|
||||
|
||||
Она равна времени сборки первого пакета. Первым пакетом является `binutils`, время его компиляции в один поток на компьютере с процессором i3-2370M составляет примерно 3 минуты. 3 минуты = 1 SBU. На Вашем ПК значение будет немного другим. Так же, если какой-то пакет компилируется 10 SBU, то, переводя SBU в более привычную единицу, это будет равняться 30 минутам (учитывая то, что 1 SBU = 3 минутам).
|
||||
Она равна времени сборки первого пакета. Первым пакетом является `binutils`, время его компиляции в один поток на компьютере с процессором i3-2370M составляет примерно 3 минуты. 3 минуты = 1 SBU. На Вашем ПК значение будет немного другим. Также, если какой-то пакет компилируется 10 SBU, то, переводя SBU в более привычную единицу, это будет равняться 30 минутам (учитывая то, что 1 SBU = 3 минутам).
|
||||
|
||||
Время на сборку 32-битных версий библиотек не учитывается.
|
||||
|
||||
## Самостоятельное измерение SBU
|
||||
|
||||
Для того, чтобы вычислить время сборки определённого пакета, выполните:
|
||||
Для того чтобы вычислить время сборки определённого пакета, выполните:
|
||||
|
||||
```bash
|
||||
TIMEFORMAT='%1R Elapsed Time - $PROGRAM'
|
||||
|
@ -9,7 +9,7 @@
|
||||
ошибка.
|
||||
|
||||
Запуск тестов необязателен, но рекомендуется, если вам важна надежность системы.
|
||||
Некоторые тесты занимают очень много времени, например тесты для GCC продолжаются около сотни SBU.
|
||||
Некоторые тесты занимают очень много времени, например, тесты для GCC продолжаются около сотни SBU.
|
||||
|
||||
SBU для пакетов будет указан без учета тестов.
|
||||
При кросс-компиляции тесты могут не работать, и выполнять их для пакетов временной системы не рекомендуется.
|
||||
|
@ -29,7 +29,7 @@ _`/dev/null` — специальный файл в системах класс
|
||||
`lin`
|
||||
Это имя созданного пользователя.
|
||||
|
||||
При желании, можно создать пароль для этой учётной записи:
|
||||
При желании можно создать пароль для этой учётной записи:
|
||||
|
||||
```bash
|
||||
passwd lin
|
||||
@ -41,7 +41,7 @@ passwd lin
|
||||
chown -vR lin $LIN
|
||||
```
|
||||
|
||||
Далее, выполним вход как пользователь lin. Это действие можно выполнить в графической оболочке, используя виртуальный терминал, или в обычной пользовательской среде:
|
||||
Далее выполним вход как пользователь lin. Это действие можно выполнить в графической оболочке, используя виртуальный терминал, или в обычной пользовательской среде:
|
||||
|
||||
```bash
|
||||
su - lin
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Основной целевой архитектурой является `x86_64` (64-разрядная).
|
||||
|
||||
С другой стороны, инструкции в этом руководстве также работают, с некоторыми модификациями, с Power PC, ARM и AMD / Intel x86 (32-bit) процессорами.
|
||||
С другой стороны, инструкции в этом руководстве также работают, с некоторыми модификациями, с PowerPC, ARM и AMD / Intel x86 (32-bit) процессорами.
|
||||
|
||||
Чтобы собрать систему, которая должна работать на одном из вышеуказанных процессоров, главным условием является существующая операционная система Linux, например, уже ранее собранная система по инструкциям этого руководства, Ubuntu, Red Hat/Fedora, SuSE, или другой дистрибутив, который нацелен на требуемую архитектуру.
|
||||
|
||||
|
@ -28,7 +28,7 @@ mkdir -pv $LIN/tools
|
||||
mkdir -pv $LIN/usr/lib32
|
||||
```
|
||||
|
||||
А также символическую ссылку на неё
|
||||
А также символическую ссылку на неё:
|
||||
|
||||
```bash
|
||||
ln -sv usr/lib32 $LIN/lib32
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
## Форматирование корневого раздела
|
||||
|
||||
На данный момент, в руководстве поддерживается только файловая система ext4.
|
||||
На данный момент в руководстве поддерживается только файловая система ext4.
|
||||
Рекомендуется создать её на корневом разделе следующей командой (или по-другому, например, с помощью GParted):
|
||||
|
||||
```bash
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Требуемые пакеты и патчи
|
||||
|
||||
На данном этапе все готово для загрузки необходимых пакетов и патчей.
|
||||
На данном этапе всё готово для загрузки необходимых пакетов и патчей.
|
||||
Самый простой способ загрузки всех требуемых пакетов и патчей - воспользоваться файлом <a :href="wgetList">wget-list</a>.
|
||||
|
||||
<pre>
|
||||
@ -13,7 +13,7 @@ wget {{ wgetList }}
|
||||
wget --input-file=wget-list --continue --directory-prefix=$LIN/usr/src
|
||||
</pre>
|
||||
|
||||
При желании, вы можете выполнить проверку пакетов на соответствие контрольным суммам.
|
||||
При желании вы можете выполнить проверку пакетов на соответствие контрольным суммам.
|
||||
|
||||
Загрузите файл <a :href="md5Sums">md5Sums</a>
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
1. Загрузка исходного кода - можно сделать непосредственно перед сборкой, а можно воспользоваться `wget-list` и сразу загрузить все файлы.
|
||||
2. Распаковка исходных кодов. Используйте команду `tar -xf архив.tar.xz`.
|
||||
3. Переход в директорию с недавно распакованным исходным кодом. Используйте `cd`
|
||||
3. Переход в директорию с недавно распакованным исходным кодом. Используйте `cd`.
|
||||
4. Выполнение инструкции.
|
||||
5. Выход из директории с исходным кодом.
|
||||
6. Удаление директории с исходным кодом (данный шаг обязателен при сборке временной системы).
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
Для выполнения данных инструкций понадобится следущее:
|
||||
|
||||
1. Раздел на жестком диске, рекомендуемый размер - более 20 гб, так как для сборки пакетов необходимо много свободного места.
|
||||
2. Если оперативной памяти ПК мало (3 Гб и меньше), то рекомендуется создать раздел/файл подкачки. В крайнем случае, используйте [zram](additional/zram).
|
||||
1. Раздел на жёстком диске, рекомендуемый размер - более 20 гб, так как для сборки пакетов необходимо много свободного места.
|
||||
2. Если оперативной памяти ПК мало (3 Гб и меньше), то рекомендуется создать раздел/файл подкачки. В крайнем случае используйте [zram](additional/zram).
|
||||
|
||||
**Чтобы узнать, что ваша хост-система полностью соответствует всем необходимым требованиям, для дальнейшей работы, выполните следующий набор команд:**
|
||||
**Чтобы узнать, что ваша хост-система полностью соответствует всем необходимым для дальнейшей работы требованиям, выполните следующий набор команд:**
|
||||
|
||||
<common-script :name="'version-check'"></common-script>
|
||||
|
||||
|
@ -68,7 +68,7 @@ NUMA node0 CPU(s): 0-3
|
||||
|
||||
`CPU(s)` - количество ядер вашего процессора
|
||||
|
||||
При желании, добавьте соответствующую переменную окружения:
|
||||
При желании добавьте соответствующую переменную окружения:
|
||||
|
||||
```bash
|
||||
echo "export MAKEFLAGS=\"-jN\" " >> ~/.bashrc
|
||||
@ -86,7 +86,7 @@ echo "export LIN_TGT32=i686-lin-linux-gnu" >> ~/.bashrc
|
||||
|
||||
## Применение изменений
|
||||
|
||||
Для того, чтобы применить изменения выполните:
|
||||
Для того чтобы применить изменения, выполните:
|
||||
|
||||
```bash
|
||||
source ~/.bash_profile
|
||||
@ -94,15 +94,15 @@ source ~/.bash_profile
|
||||
|
||||
## Значения параметров базового bashrc
|
||||
|
||||
`set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash. Это необходимо для того, чтобы новые исполняемые файлы становились доступны немедленно.
|
||||
`set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash. Это необходимо для того чтобы новые исполняемые файлы становились доступны немедленно.
|
||||
|
||||
`umask 022` - Гарантирует, что для новых файлов будет установлены права 644.
|
||||
`umask 022` - Гарантирует, что для новых файлов будут установлены права 644.
|
||||
|
||||
`LIN=/mnt/lin` - Задает путь к корню собираемый системы. `mnt/lin` взят в качестве образца.
|
||||
|
||||
`LC_ALL=C` - Исключает связанные с локализацией ошибки.
|
||||
|
||||
`PATH=/usr/bin if [ ! -L /bin ]; then PATH=/bin:$PATH; fi` - Задает пути поиска исполняемых файлов в хост-системе.
|
||||
`PATH=/usr/bin if [ ! -L /bin ]; then PATH=/bin:$PATH; fi` - Задаёт пути поиска исполняемых файлов в хост-системе.
|
||||
|
||||
`PATH=$LIN/tools/bin:$PATH` - Необходимо для обнаружения исполняемых файлов кросс-компилятора.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
В этом руководстве для обозначения пути к собираемой системе используется переменная $LIN.
|
||||
Эта переменная должна указывать на каталог, в который будет смонтирован корень собираемой ОС.
|
||||
В принципе, может быть любым, однако ниже, для примера, будет использован `/mnt/lin`.
|
||||
В принципе, он может быть любым, однако ниже, для примера, будет использован `/mnt/lin`.
|
||||
|
||||
Установим переменную:
|
||||
|
||||
@ -18,6 +18,6 @@ mkdir -pv $LIN
|
||||
|
||||
Аргумент `-p` указывает создавать родительские директории в случае их отсутствия, а аргумент `-v` выводить сведения о выполнении.
|
||||
|
||||
!> **Если вы вышли из командной оболочки или сменили пользователя, необходимо повторно задать эту переменную.** Для удобства, добавьте строку `export LIN=...` в ~/.bashrc (пользователя, из-под которого будет производиться дальнейшая сборка кросс-компилятора и некоторых дополнительных пакетов временной системы). Это снимет с вас обязанность каждый раз объявлять переменную `LIN`.
|
||||
!> **Если вы вышли из командной оболочки или сменили пользователя, необходимо повторно задать эту переменную.** Для удобства добавьте строку `export LIN=...` в ~/.bashrc (пользователя, из-под которого будет производиться дальнейшая сборка кросс-компилятора и некоторых дополнительных пакетов временной системы). Это снимет с вас обязанность каждый раз объявлять переменную `LIN`.
|
||||
|
||||
!> **Если данная переменная по какой-либо причине не была задана при выполнении дальнейших инструкций, вы можете повредить хост систему. Чтобы проверить, выполните `echo $LIN`. Если вывод будет таким: `/mnt/lin` - значит, всё впорядке.**
|
||||
!> **Если данная переменная по какой-либо причине не была задана при выполнении дальнейших инструкций, вы можете повредить хост систему. Чтобы проверить, выполните `echo $LIN`. Если вывод будет таким: `/mnt/lin` - значит, всё в порядке.**
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Создание файла fstab
|
||||
|
||||
При загрузке системы исходя из данных в файле `/etc/fstab` монтируются различные разделы и диски, в том числе - корневой раздел.
|
||||
При загрузке системы, исходя из данных в файле `/etc/fstab`, монтируются различные разделы и диски, в том числе - корневой раздел.
|
||||
|
||||
`Fstab` (сокр. от англ. file systems table) — один из конфигурационных файлов, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера, описывает, как диск будет использоваться или как будет интегрирован в систему. Файл `/etc/fstab` делает возможным автоматическое монтирование определенных файловых систем, что особенно нужно при загрузке системы. Он содержит ряд строк, описывающих файловые системы, их точки монтирования и другие параметры.
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
- тип файловой системы;
|
||||
- параметры монтирования;
|
||||
- флаг для dump, утилиты создания резервных копий;
|
||||
- Порядок проверки для `fsck` (File System ChecK).
|
||||
- порядок проверки для `fsck` (File System ChecK).
|
||||
|
||||
Здесь всегда есть запись о корневой файловой системе. Раздел swap является специальным, поэтому его не видно в древовидной структуре и в поле точки монтирования для таких разделов всегда содержится ключевое слово swap.
|
||||
Здесь всегда есть запись о корневой файловой системе. Раздел swap является специальным, поэтому его не видно в древовидной структуре, и в поле точки монтирования для таких разделов всегда содержится ключевое слово swap.
|
||||
|
||||
Создайте файл `fstab`:
|
||||
|
||||
@ -37,9 +37,9 @@ echo "/dev/sdY swap swap pri=1 0 0" >> /etc/fs
|
||||
|
||||
Заменив `sdY` на нужное значение.
|
||||
|
||||
При необходимости, можете добавить другие разделы в данный файл, руководствуясь примером выше.
|
||||
При необходимости можете добавить другие разделы в данный файл, руководствуясь примером выше.
|
||||
|
||||
Файловым системам MS-DOS или Windows (vfat, ntfs, smbfs, cifs, iso9660, udf) требуется специальный параметр utf8, чтобы символы, не входящие в ASCII, в именах файлов интерпретировались должным образом. Для языковых стандартов, отличных от UTF-8, значение iocharset должно быть установлено таким же, как набор символов языкового стандарта, настроенного таким образом, чтобы ядро его понимало. Это работает, если соответствующее определение набора символов (находится в ` File systems -> Native Language Support` при настройке ядра) было скомпилировано в ядро или построено как модуль. Однако, если набор символов локали - UTF-8, соответствующий параметр iocharset = utf8 сделает файловую систему чувствительной к регистру. Чтобы исправить это, используйте специальный параметр utf8 вместо iocharset = utf8 для локалей UTF-8. Параметр «codepage» также необходим для файловых систем vfat и smbfs. Он должен быть установлен на номер кодовой страницы, используемый в MS-DOS в вашей стране. Например, чтобы смонтировать USB-накопители, пользователю ru_RU.KOI8-R потребуется следующее в части параметров его строки монтирования в `/etc/fstab`:
|
||||
Файловым системам MS-DOS или Windows (vfat, ntfs, smbfs, cifs, iso9660, udf) требуется специальный параметр utf8, чтобы символы, не входящие в ASCII, в именах файлов интерпретировались должным образом. Для языковых стандартов, отличных от UTF-8, значение iocharset должно быть установлено таким же, как набор символов языкового стандарта, настроенного таким образом, чтобы ядро его понимало. Это работает, если соответствующее определение набора символов (находится в `File systems -> Native Language Support` при настройке ядра) было скомпилировано в ядро или построено как модуль. Однако, если набор символов локали - UTF-8, соответствующий параметр iocharset = utf8 сделает файловую систему чувствительной к регистру. Чтобы исправить это, используйте специальный параметр utf8 вместо iocharset = utf8 для локалей UTF-8. Параметр «codepage» также необходим для файловых систем vfat и smbfs. Он должен быть установлен на номер кодовой страницы, используемый в MS-DOS в вашей стране. Например, чтобы смонтировать USB-накопители, пользователю ru_RU.KOI8-R потребуется следующее в части параметров его строки монтирования в `/etc/fstab`:
|
||||
|
||||
```bash
|
||||
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
|
||||
@ -53,7 +53,7 @@ noauto,user,quiet,showexec,codepage=866,utf8
|
||||
|
||||
Обратите внимание, что использование `iocharset` является значением по умолчанию для `iso8859-1` (что делает файловую систему нечувствительной к регистру), а опция `utf8` указывает ядру преобразовать имена файлов с использованием `UTF-8`, чтобы их можно было интерпретировать в локали UTF-8.
|
||||
|
||||
Можно сделать файловую систему ext4 надежной при сбоях питания для некоторых типов жестких дисков. Для этого добавьте параметр монтирования `barrier=1` в соответствующую запись в `/etc/fstab`. Чтобы проверить, поддерживает ли диск этот параметр, запустите `hdparm` на соответствующем диске:
|
||||
Можно сделать файловую систему ext4 надежной при сбоях питания для некоторых типов жёстких дисков. Для этого добавьте параметр монтирования `barrier=1` в соответствующую запись в `/etc/fstab`. Чтобы проверить, поддерживает ли диск этот параметр, запустите `hdparm` на соответствующем диске:
|
||||
|
||||
```bash
|
||||
hdparm -I /dev/sda | grep NCQ
|
||||
@ -71,13 +71,13 @@ blkid /dev/sdX
|
||||
|
||||
Заменив `sdX` на нужное значение, например, `sda2`.
|
||||
|
||||
Для того, чтобы использовать вместо метки UUID, запись должна иметь следующий вид:
|
||||
Для того чтобы использовать вместо метки UUID, запись должна иметь следующий вид:
|
||||
|
||||
```
|
||||
UUID=93c7b617-7558-4d1b-ab4b-a56880811037 / ext4 defaults 1 1
|
||||
```
|
||||
|
||||
Т.е., вместо метки `/dev/sdX` используется UUID нужного раздела: `UUID="нужное_значение"`. Всё остальное без изменений.
|
||||
Т. е. вместо метки `/dev/sdX` используется UUID нужного раздела: `UUID="нужное_значение"`. Всё остальное без изменений.
|
||||
|
||||
!> После выполнения данных инструкций внимательно проверьте данный файл на наличие ошибок.
|
||||
|
||||
|
@ -38,7 +38,7 @@ EOF
|
||||
|
||||
## Настройка DHCP
|
||||
|
||||
Приведенная ниже команда создает файл базовой конфигурации для настройки IPv4 DHCP:
|
||||
Приведенная ниже команда создаёт файл базовой конфигурации для настройки IPv4 DHCP:
|
||||
|
||||
```bash
|
||||
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
|
||||
@ -81,11 +81,11 @@ DNS=192.168.0.1 8.8.8.8 8.8.4.4
|
||||
|
||||
## Создание файла /etc/resolv.conf
|
||||
|
||||
Если система будет подключена к сети Интернет, ей потребуются некоторые средства разрешения доменных имен (DNS) для преобразования доменных имен в IP-адреса и наоборот. Лучше всего это достигается помещением IP-адреса DNS-сервера, доступного у интернет-провайдера или сетевого администратора, в `/etc/resolv.conf`.
|
||||
Если система будет подключена к сети Интернет, ей потребуются некоторые средства разрешения доменных имен (DNS) для преобразования доменных имён в IP-адреса и наоборот. Лучше всего это достигается помещением IP-адреса DNS-сервера, доступного у интернет-провайдера или сетевого администратора, в `/etc/resolv.conf`.
|
||||
|
||||
### Настройка systemd-resolved
|
||||
|
||||
?> При использовании методов, несовместимых с systemd-resolved для настройки сетевых интерфейсов (например, ppp и т. д.), Или при использовании любого типа локального преобразователя (например, bind, dnsmasq, unbound и т. Д.) Или любого другого программного обеспечения, которое генерирует /etc/resolv.conf (например, программа resolvconf, отличная от той, которая предоставляется systemd), службу systemd-resolved использовать не следует.
|
||||
?> При использовании методов, несовместимых с systemd-resolved для настройки сетевых интерфейсов (например, ppp и т. д.), или при использовании любого типа локального преобразователя (например, bind, dnsmasq, unbound и т. д.) или любого другого программного обеспечения, которое генерирует /etc/resolv.conf (например, программа resolvconf, отличная от той, которая предоставляется systemd), службу systemd-resolved использовать не следует.
|
||||
|
||||
При использовании службы `systemd-resolved` для настройки DNS, будет создан файл `/run/systemd/resolve/resolv.conf`.
|
||||
|
||||
@ -103,9 +103,9 @@ ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
||||
cat > /etc/resolv.conf << "EOF"
|
||||
# Begin /etc/resolv.conf
|
||||
|
||||
domain <Your Domain Name>
|
||||
nameserver <IP address of your primary nameserver>
|
||||
nameserver <IP address of your secondary nameserver>
|
||||
domain <Ваше доменное имя>
|
||||
nameserver <IP-адрес вашего основного сервера имен>
|
||||
nameserver <IP-адрес вашего вторичного сервера имен>
|
||||
|
||||
# End /etc/resolv.conf
|
||||
EOF
|
||||
@ -114,7 +114,7 @@ EOF
|
||||
|
||||
`domain` - можно можно опустить или заменить на `search`
|
||||
|
||||
Замените `<Your Domain Name>` IP-адресом DNS-сервера. Может присутствовать несколько записей (требования предусматривают наличия вторичных серверов для возможности восстановления). Если вам нужен только один DNS-сервер, удалите вторую строку `nameserver` из файла. IP-адрес также может быть маршрутизатором в локальной сети.
|
||||
Замените `<Ваше доменное имя>` IP-адресом DNS-сервера. Может присутствовать несколько записей (требования предусматривают наличия вторичных серверов для возможности восстановления). Если вам нужен только один DNS-сервер, удалите вторую строку `nameserver` из файла. IP-адрес также может быть маршрутизатором в локальной сети.
|
||||
|
||||
В качестве DNS можно указать адреса, предложенные ниже:
|
||||
|
||||
@ -159,7 +159,7 @@ IP_address myhost.example.org aliases
|
||||
|
||||
Корректный локальный IP адрес может быть вида `192.168.1.1`. FQDN, напрмер `mylin.example.org`.
|
||||
|
||||
Даже если не используется сетевая карта, все равно требуется действительное полное доменное имя. Это необходимо для правильной работы определенных программ, таких как MTA (почтоый сервер).
|
||||
Даже если не используется сетевая карта, всё равно требуется действительное полное доменное имя. Это необходимо для правильной работы определенных программ, таких как MTA (почтовый сервер).
|
||||
|
||||
Создайте файл `/etc/hosts`
|
||||
|
||||
@ -185,4 +185,4 @@ EOF
|
||||
|
||||
Запись `::1` является эквивалентом `IPv6 127.0.0.1` и представляет loopback `интерфейс IPv6`.
|
||||
|
||||
`127.0.1.1` - так называемый, «местный» от англ. local, или «локальный хост», по смыслу — этот компьютер, зарезервированная специально для FQDN.
|
||||
`127.0.1.1` - так называемый, «местный» от англ. local, или «локальный хост», по смыслу — этот компьютер, зарезервированный специально для FQDN.
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Настройка системы
|
||||
|
||||
В данном разделе будут даны инструкции по настройке ОС
|
||||
В данном разделе будут даны инструкции по настройке ОС.
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Настройка System V init
|
||||
|
||||
При загрузке `init` читает файл `/etc/inittab`. Создайте его
|
||||
При загрузке `init` читает файл `/etc/inittab`. Создайте его:
|
||||
|
||||
```bash
|
||||
cat > /etc/inittab << "EOF"
|
||||
@ -38,7 +38,7 @@ EOF
|
||||
При загрузке считывается информация из аппаратных часов - CMOS. В них может стоять как местное время, так и универсальное (UTC).
|
||||
Программно нельзя определить, какой часовой пояс используют часы CMOS, однако вы можете выполнить команду `hwclock --localtime --show` и сравнить результат с местным временем. Если он не совпадает - ваши часы скорее всего используют UTC.
|
||||
|
||||
Создайте файл, определяющий использует ли CMOS UTC (Если нет - замените UTC=1 на UTC=0)
|
||||
Создайте файл, определяющий использует ли CMOS UTC (если нет - замените UTC=1 на UTC=0):
|
||||
|
||||
```bash
|
||||
cat > /etc/sysconfig/clock << "EOF"
|
||||
|
Loading…
Reference in New Issue
Block a user