mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-02-03 15:27:17 +08:00
Merge branch 'release/v.1.0' of https://github.com/Linux4Yourself/Linux4Yourself.Book into release/v.1.0
This commit is contained in:
commit
fbd28ad0ff
@ -4,7 +4,9 @@
|
||||
<img src="https://raw.githubusercontent.com/Linux4Yourself/Linux4Yourself.Design/main/misc/cover.svg" />
|
||||
</div>
|
||||
|
||||
В своём большинстве, книга основана на наработках замечательного проекта Linux From Scratch. Однако, позиционируется как её ответвление. Отличительными особенностями является более широкое раскрытие некоторых важных аспектов и предоставление наиболее исчерпывающией информации по различным приемам создания операционной системы из исходного кода.
|
||||
Lx4U или “Linux для себя” - русскоязычное подробное руководство по созданию Linux-системы, используя лишь исходные тексты необходимого программного обеспечения. Это руководство - самостоятельное ответвление от проекта <a href="https://linuxfromscratch.org">Linux From Scratch</a>.
|
||||
|
||||
На Ваш выбор предлагается использование multilib системы, поддержка EFI и набор дополнительного программного обеспечения для организации комфортной работы. Кроме того, существует расширенное руководство, в котором содержится информация о настройке окружения рабочего стола и программного обеспечения охватывающего различные области применения.
|
||||
|
||||
Но главная идея остается - Вы в центре всего, и Вы решаете каким должна быть Ваша собственная система. А мы просто протягиваем Вам руку помощи.
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
- **Предисловие**
|
||||
- [Предисловие](prologue/foreword)
|
||||
- [**Предисловие**](prologue/foreword)
|
||||
- [От авторов](prologue/from-authors)
|
||||
- [Преимущества](prologue/benefits)
|
||||
- [Прежде чем начать](prologue/before-start)
|
||||
- [Обозначения принятые в книге](prologue/typography)
|
||||
- [Принятые обозначения](prologue/typography)
|
||||
- [Информация об используемых пакетах](prologue/packages)
|
||||
- [Опечатки и неточности](prologue/inaccuracies)
|
||||
|
||||
@ -25,8 +24,9 @@
|
||||
- [**Сборка кросс компилятора**](cross-toolchain/cross-toolchain)
|
||||
- [Binutils](cross-toolchain/binutils)
|
||||
- [GCC](cross-toolchain/gcc)
|
||||
- [**Заголовочные файлы ядра Linux**](build-system/linux-headers)
|
||||
- [**Сборка временной системы**](build-temp-system/tempsystem)
|
||||
- [Заголовки ядра Linux](build-temp-system/linux-headers)
|
||||
|
||||
- [Glibc](build-temp-system/glibc)
|
||||
- [LibstdС++ проход 1](build-temp-system/libstdc)
|
||||
- [M4](build-temp-system/m4)
|
||||
|
@ -35,7 +35,7 @@ python $FILE
|
||||
|
||||
Но так же эту команду используют и для улучшения переносимости скриптов, так как в разных дистрибутивах нужные интерпретаторы могут находиться в разных местах, а вот путь к `env` одинаковый везде.
|
||||
|
||||
Например, в одних дистрибутивах путь к bash `/bin/bash`, а в других: `/usr/bin/bash`. И при компиляции этого интерпретатора он ставится именно в `/usr`, а уже позже его можно перенести в `/bin` (что и реализовано в этой книге, поэтому в вашем дистрибутиве путь классический: `/bin/bash`).
|
||||
Например, в одних дистрибутивах путь к bash `/bin/bash`, а в других: `/usr/bin/bash`. И при компиляции этого интерпретатора он ставится именно в `/usr`, а уже позже его можно перенести в `/bin` (что и реализовано в этом руководстве, поэтому в вашем дистрибутиве путь классический: `/bin/bash`).
|
||||
|
||||
А, например, во FreeBSD `bash` находится по пути `/usr/local/bin/bash`, поэтому использование `env` будет таким:
|
||||
```bash
|
||||
|
@ -71,7 +71,7 @@ Checking for attribute(visibility) support... Yes.
|
||||
```bash
|
||||
./configure --prefix=/usr
|
||||
```
|
||||
В книге так же по мере компиляции пакетов ключи у configure будут меняться. Для новых опуий будет краткое описание.
|
||||
Так же по мере компиляции пакетов ключи у `configure` будут меняться. Для новых опций будет краткое описание.
|
||||
|
||||
Изучив вывод скрипта configure, можно сделать вывод о том, стоит ли далее приступать к сборке пакета. Обычно о критических ошибках сообщается фразами «configure: error». Убедившись, что всё нормально, можно приступать к построению:
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
## Настройка
|
||||
|
||||
?> В extra книге данный пакет следует переустановить после установки ``harfbuzz`` из-за циклической зависимости.
|
||||
?> В руководстве extra, данный пакет следует переустановить после установки ``harfbuzz`` из-за циклической зависимости.
|
||||
|
||||
<package-script :package="'freetype'" :type="'configure'"></package-script>
|
||||
|
||||
|
64
docs/build-system/linux-headers.md
Normal file
64
docs/build-system/linux-headers.md
Normal file
@ -0,0 +1,64 @@
|
||||
# Заголовочные файлы ядра Linux v.{{ package.version }}
|
||||
|
||||
Ссылка для скачивания: <a :href="package.url"><b>{{ package.url }}</b></a>
|
||||
<br />
|
||||
Текущая версия: <b>{{ package.version }}</b>
|
||||
<br />
|
||||
Домашняя страница: <a :href="package.homeUrl"><b>{{ package.homeUrl }}</b></a>
|
||||
<br />
|
||||
Важность: <b>Необходимый</b>
|
||||
<br />
|
||||
Размер архива: <b>{{ package.size }} Mb</b>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#main',
|
||||
data: { package: {} },
|
||||
mounted: function () {
|
||||
this.getPackage('linux');
|
||||
},
|
||||
methods: {
|
||||
getPackage: function(name) {
|
||||
getPackage(name)
|
||||
.then(response => this.package = response);
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
Файлы заголовков определяют интерфейс: они определяют способ определения функций в исходном файле. Они используются таким образом, чтобы компилятор мог проверить правильность использования функции в качестве сигнатуры функции (возвращаемое значение и параметры) в файле заголовка. Для этой задачи фактическая реализация функции не требуется.
|
||||
|
||||
Когда вы компилируете драйвер устройства как модуль ядра, вам необходимы установленные заголовочные файлы ядра. Также они требуются, если вы собираете пользовательское приложение, которое взаимодействует напрямую с ядром.
|
||||
|
||||
!> Версия заголовочных файлов должна соответствовать версии устанавливаемого ядра.
|
||||
|
||||
## Сборка
|
||||
|
||||
?> **Данный пакет является частью архива с ядром Linux**
|
||||
|
||||
Убедитесь что в архив не включены файлы которые могут помешать сборке.
|
||||
```bash
|
||||
make mrproper
|
||||
```
|
||||
|
||||
Эта команда выполнит очистку дерева исходных текстов. Разработчики ядра рекомендуют, чтобы эта команда выполнялась перед каждым процессом компиляции.
|
||||
|
||||
### Подготовьте заголовки для использования:
|
||||
|
||||
```bash
|
||||
make headers
|
||||
```
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
find usr/include -name '.*' -delete
|
||||
rm usr/include/Makefile
|
||||
cp -rv usr/include $LIN/usr
|
||||
```
|
||||
|
||||
!> Заголовочные файлы расположенные в системном каталоге `/usr/include` должны всегда быть те, которые использовались при компиляции <a href="#/build-system/glibc">`Glibc`</a>. Их никогда не следует заменять на чистые заголовочные файлы ядра или любые другие подготовленные заголовочные файлы.
|
||||
|
||||
### Установленные файлы
|
||||
|
||||
Данный пакет устанавливает множество заголовочных файлов, в частности ` /usr/include/asm/*.h, /usr/include/asm-generic/*.h, /usr/include/drm/*.h, /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, /usr/include/video/*.h, and /usr/include/xen/*.h`
|
@ -12,7 +12,7 @@
|
||||
## Тестирование
|
||||
<package-script :package="'python'" :type="'test'"></package-script>
|
||||
|
||||
!> На данном этапе, тестирование Python не рекомендуется производить. Тесты могут зависнуть. При желании, проведите тесты при переустановке пакета Python, но уже в Extra-книге.
|
||||
!> На данном этапе, тестирование Python не рекомендуется производить. Тесты могут зависнуть. При желании, проведите тесты при переустановке пакета Python, но уже в руководстве ``Extra``.
|
||||
|
||||
## Установленные файлы
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
## Тестирование
|
||||
|
||||
!> Тестирование пакета от имени пользователя `root` может сломать Вашу систему. Для того, чтобы этого не случилось, производите тесты от имени непривилегированного пользователя. Для запуска тестов параметр `CONFIG_SCSI_DEBUG` для ядра должен быть доступен в текущей системе и должен быть собран в виде модуля. Так же должны быть установлены некоторые другие пакеты из extra книги. При желании, этот тест может быть запущен после перезагрузки в завершенную систему LX4: ``bash tests/run.sh --srcdir=$PWD --builddir=$PWD``
|
||||
!> Тестирование пакета от имени пользователя `root` может сломать Вашу систему. Для того, чтобы этого не случилось, производите тесты от имени непривилегированного пользователя. Для запуска тестов параметр `CONFIG_SCSI_DEBUG` для ядра должен быть доступен в текущей системе и должен быть собран в виде модуля. Так же должны быть установлены некоторые другие пакеты из руководства extra. При желании, этот тест может быть запущен после перезагрузки в завершенную систему LX4: ``bash tests/run.sh --srcdir=$PWD --builddir=$PWD``
|
||||
|
||||
<package-script :package="'util-linux'" :type="'test'"></package-script>
|
||||
|
||||
|
@ -1,57 +0,0 @@
|
||||
# Заголовки ядра Linux v.{{ package.version }}
|
||||
Ссылка для скачивания: <a :href="package.url"><b>{{ package.url }}</b></a>
|
||||
<br />
|
||||
Текущая версия: <b>{{ package.version }}</b>
|
||||
<br />
|
||||
Домашняя страница: <a :href="package.homeUrl"><b>{{ package.homeUrl }}</b></a>
|
||||
<br />
|
||||
Важность: <b>Необходимый</b>
|
||||
<br />
|
||||
Размер архива: <b>{{ package.size }} Mb</b>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#main',
|
||||
data: { package: {} },
|
||||
mounted: function () {
|
||||
this.getPackage('linux');
|
||||
},
|
||||
methods: {
|
||||
getPackage: function(name) {
|
||||
getPackage(name)
|
||||
.then(response => this.package = response);
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
## Сборка
|
||||
|
||||
!> **Данный пакет является частью архива с ядром Linux**
|
||||
|
||||
!> **Данный пакет устанавливается на свое окончательное место и не будет переустановлен впоследствии**
|
||||
|
||||
Убедитесь что в архив не включены файлы которые могут помешать сборке.
|
||||
```bash
|
||||
make mrproper
|
||||
```
|
||||
|
||||
Эта команда выполнит более интенсивную очистку дерева исходных текстов. Иногда она является необходимой.
|
||||
|
||||
### Подготовьте заголовки для использования:
|
||||
|
||||
```bash
|
||||
make headers
|
||||
```
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
find usr/include -name '.*' -delete
|
||||
rm usr/include/Makefile
|
||||
cp -rv usr/include $LIN/usr
|
||||
```
|
||||
|
||||
### Установленные файлы
|
||||
|
||||
Данный пакет устанавливает множество заголовочных файлов, в частности ` /usr/include/asm/*.h, /usr/include/asm-generic/*.h, /usr/include/drm/*.h, /usr/include/linux/*.h, /usr/include/misc/*.h, /usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, /usr/include/video/*.h, and /usr/include/xen/*.h`
|
@ -8,5 +8,4 @@
|
||||
|
||||
!> Следует обратить особое внимание, что все инструкции в разделе, должны выполняться от имени пользователя ``lin``, который был создан ранее. Внимательно проверьте настройку окружения данного пользователя, проверьте, выполнены ли инструкции, указанные в главе [Настройка окружения](prepare/set-env)
|
||||
|
||||
|
||||
?> Все установленные здесь пакеты (кроме заголовков ядра) будут переустановлены впоследствии.
|
||||
?> Все установленные здесь пакеты будут переустановлены впоследствии.
|
||||
|
@ -11,7 +11,7 @@ window.$docsify = {
|
||||
maxLevel: 2,
|
||||
subMaxLevel: 3,
|
||||
auto2top: true,
|
||||
homepage: './prologue/foreword.md',
|
||||
homepage: './index.md',
|
||||
autoHeader: true,
|
||||
executeScript: true,
|
||||
mergeNavbar: true,
|
||||
|
12
docs/index.md
Normal file
12
docs/index.md
Normal file
@ -0,0 +1,12 @@
|
||||
<div style="text-align:center; margin: 30px 0">
|
||||
<img src="https://raw.githubusercontent.com/Linux4Yourself/Linux4Yourself.Design/main/misc/cover.svg" />
|
||||
</div>
|
||||
|
||||
Lx4U или “Linux для себя” - русскоязычное подробное руководство по созданию Linux-системы, используя лишь исходные тексты необходимого программного обеспечения. Это руководство - самостоятельное ответвление от проекта <a href="https://linuxfromscratch.org">Linux From Scratch</a>.
|
||||
|
||||
На Ваш выбор предлагается использование multilib системы, поддержка EFI и набор дополнительного программного обеспечения для организации комфортной работы. Кроме того, существует расширенное руководство, в котором содержится информация о настройке окружения рабочего стола и программного обеспечения охватывающего различные области применения.
|
||||
|
||||
|
||||
Но главная идея остается - Вы в центре всего, и Вы решаете каким должна быть Ваша собственная система. А мы просто протягиваем Вам руку помощи.
|
||||
|
||||
Начните собственное путешествие в мир Linux прямо сейчас!
|
@ -1,6 +1,6 @@
|
||||
# О приоритете
|
||||
|
||||
В данной книге будет указываться приоритет пакетов.
|
||||
В этом руководстве будет определен приоритет пакетов.
|
||||
Он может быть следующим:
|
||||
|
||||
<span>**Необходимый**</span>
|
||||
@ -13,4 +13,4 @@
|
||||
|
||||
<span>**Необязательный**</span>
|
||||
<br/>
|
||||
Сборку данного пакета можно пропустить и это не повлияет на пакеты из данной книги, однако может повлиять на пакеты за её пределами.
|
||||
Сборку данного пакета можно пропустить и это не повлияет на работоспособность других пакетов, однако может повлиять на пакеты за её пределами.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Время сборки пакетов во многом зависит от мощности компьютера.
|
||||
|
||||
В данной книге используется единица времени, аналогичная такой же в книге Linux from scratch - SBU (Standart Build Unit).
|
||||
В этом руководстве используется единица времени, аналогичная такой же как в Linux from scratch - SBU (Standard Build Unit).
|
||||
|
||||
Она равна времени сборки первого пакета. Первым пакетом является `binutils`, время его компиляции в один поток на компьютере с процессором i3-2370M составляет примерно 3 минуты. 3 минуты = 1 SBU. На Вашем ПК значение будет немного другим. Так же, если какой-то пакет компилируется 10 SBU, то, переводя SBU в более привычную единицу, это будет равняться 30 минутам (учитывая то, что 1 SBU = 3 минутам).
|
||||
|
||||
|
@ -1,10 +1,15 @@
|
||||
# О тестах
|
||||
|
||||
Многие пакеты предоставляют наборы тестов для проверки их работоспособности после сборки.
|
||||
Запустить тесты обычно можно, выполнив `make check` или `make test`.
|
||||
Большинство пакетов предоставляют наборы тестов для проверки их работоспособности после сборки.
|
||||
|
||||
Запуск их необязателен, но рекомендуется, если вам важна надежность системы.
|
||||
Выполнить тесты может быть хорошей идеей, поскольку это позволит проверить, что все
|
||||
компоненты были скомпилированы корректно. Успешное прохождение пакетом всех
|
||||
тестов обычно гарантирует, что пакет будет работать именно так, как задумано
|
||||
разработчиком. Если тесты провалены, значит в пакете может содержаться
|
||||
ошибка.
|
||||
|
||||
Запуск тестов необязателен, но рекомендуется, если вам важна надежность системы.
|
||||
Некоторые тесты занимают очень много времени, например тесты для GCC продолжаются около сотни SBU.
|
||||
|
||||
SBU для пакетов в книге будет указан без учета тестов.
|
||||
SBU для пакетов будет указан без учета тестов.
|
||||
При кросс-компиляции тесты могут не работать и выполнять их для пакетов временной системы не рекомендуется.
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
Основной целевой архитектурой является `x86_64` (64-разрядная).
|
||||
|
||||
С другой стороны, инструкции в этой книге также работают, с некоторыми модификациями, с Power PC, ARM и AMD / Intel x86 (32-bit) процессорами.
|
||||
С другой стороны, инструкции в этом руководстве также работают, с некоторыми модификациями, с Power PC, ARM и AMD / Intel x86 (32-bit) процессорами.
|
||||
|
||||
Чтобы собрать систему, которая должна работать на одном из вышеуказанных процессоров, главным условием является существующая операционная система Linux, например уже ранее собранная система по инструкциям этой книги, Ubuntu, Red Hat/Fedora, SuSE, или другой дистрибутив, который нацелен на требуемую архитектуру.
|
||||
Чтобы собрать систему, которая должна работать на одном из вышеуказанных процессоров, главным условием является существующая операционная система Linux, например уже ранее собранная система по инструкциям этого руководства, Ubuntu, Red Hat/Fedora, SuSE, или другой дистрибутив, который нацелен на требуемую архитектуру.
|
||||
|
||||
Также обратите внимание, что 32-разрядный дистрибутив может быть установлен и использоваться как хост-система на 64-разрядном AMD / Intel компьютере.
|
||||
|
||||
## О поддержке multilib
|
||||
|
||||
В данной книге присутствует частичная поддержка multilib.
|
||||
В этом руководстве присутствует частичная поддержка multilib.
|
||||
|
||||
### Что такое multilib
|
||||
|
||||
@ -21,9 +21,9 @@
|
||||
### Зачем это нужно
|
||||
|
||||
Некоторые программы с закрытым исходным кодом до сих пор имеют только 32-битные версии. Для Linux таких программ не много, а вот для Windows их существует огромное количество. А для того что бы запустить их необходим Wine с поддержкой multilib.
|
||||
### Как это реализовано в книге
|
||||
### Как это реализовано в руководстве
|
||||
|
||||
В книге присутствуют инструкции в конце многих страниц для multilib систем. Поддержка multilib является опциональной - если Вам она не нужна - не выполняйте эти инструкции.
|
||||
В руководстве присутствуют инструкции в конце многих страниц для multilib систем. Поддержка multilib является опциональной. Если Вам она не нужна - не выполняйте эти инструкции.
|
||||
Поддержка multilib является частичной - инструкции для сборки 32-битных версий библиотек предоставляются только тогда, когда они необходимы для сборки пакета.
|
||||
|
||||
[Подробнее про архитектуры процессора](additional/cpu-arch)
|
||||
|
@ -8,8 +8,9 @@
|
||||
|
||||
## Форматирование корневого раздела
|
||||
|
||||
На данный момент, в книге поддерживается только файловая система ext4.
|
||||
Рекомендуется создать её на корневом разделе следующей командой (или по-другому, например с помощью GParted):
|
||||
На данный момент, в руководстве поддерживается только файловая система ext4.
|
||||
Рекомендуется создать её на корневом разделе следующей командой (или по-другому, например с помощью GParted):
|
||||
|
||||
```bash
|
||||
mkfs -v -t ext4 /dev/sdX
|
||||
```
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Общая инструкция по сборке пакетов
|
||||
|
||||
Сборка всех пакетов в этой книге производиться следующим образом:
|
||||
1. Загрузка исходного кода - можно сделать непосредственно перед сборкой, а можно воспользоваться wget-list и сразу загрузить все исходные коды.
|
||||
Сборка всех пакетов в этом руководстве выполняется следующим образом:
|
||||
1. Загрузка исходного кода - можно сделать непосредственно перед сборкой, а можно воспользоваться `wget-list` и сразу загрузить все файлы.
|
||||
2. Распаковка исходных кодов. Используйте команду `tar -xf архив.tar.xz`.
|
||||
3. Переход в директорию с недавно распакованным исходным кодом. Используйте `cd`
|
||||
4. Выполнение инструкции, данной в книге.
|
||||
4. Выполнение инструкции.
|
||||
5. Выход из директории с исходным кодом.
|
||||
6. Удаление директории с исходным кодом (данный шаг обязателен при сборке временной системы).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Установка переменной $LIN
|
||||
|
||||
В данной книге для обозначения пути к собираемой системе используется переменная $LIN.
|
||||
В этом руководстве для обозначения пути к собираемой системе используется переменная $LIN.
|
||||
Эта переменная должна указывать на каталог, в который будет смонтирован корень собираемой ОС.
|
||||
В принципе, может быть любым, однако ниже, для примера, будет использован `/mnt/lin`.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Преимущества
|
||||
|
||||
Одна из главных целей проекта - образовательная. Дать понимание как работает Linux изнутри. Создание такой системы поможет узнать, как всё работает вместе и как каждый компонент системы взаимодействует с другим. Немаловажно, что книга даёт опыт и, как следствие, способность настроить систему Linux в соответствии с Вашими потребностями.
|
||||
Одна из главных целей проекта - образовательная. Дать понимание как работает Linux изнутри. Создание такой системы поможет узнать, как всё работает вместе и как каждый компонент системы взаимодействует с другим. Немаловажно, что руководство даёт опыт и, как следствие, способность настроить Linux систему в соответствии с Вашими потребностями.
|
||||
|
||||
Другое ключевое преимущество - предоставление более глубокого контроля, не полагаясь на иную реализацию Linux. Вы можете диктовать каждый аспект своей системы.
|
||||
|
||||
|
@ -6,8 +6,6 @@ Linux распахивает дверь в гигантский мир откр
|
||||
|
||||
Нужна ОС попроще? Для игр? А, возможно, нужен мультимедийный дистрибутив для комфортного просмотра и прослушивания медиа контента?
|
||||
|
||||
Эта книга обеспечит Вас необходимыми знаниями чтобы создать свою собственную Linux систему с самого начала.
|
||||
|
||||
Используя это руководство, вы получите работающую систему на Ваш вкус. Вы всё контролируете, а мы просто протягиваем Вам руку помощи.
|
||||
|
||||
Начните собственное путешествие в мир Linux прямо сейчас!
|
||||
|
@ -1,12 +1,8 @@
|
||||
# От авторов
|
||||
|
||||
В своём большинстве, книга основана на наработках замечательного проекта [Linux From Scratch](https://linuxfromscratch.ru). Однако, позиционируется как её ответвление. Отличительными особенностями является более широкое раскрытие некоторых важных аспектов и предоставление наиболее исчерпывающей информации по различным приемам создания операционной системы из исходного кода.
|
||||
|
||||
Но главная идея остается - Вы в центре всего, и Вы решаете каким должна быть Ваша собственная система. А мы просто протягиваем Вам руку помощи.
|
||||
|
||||
**Уважаемый читатель!**
|
||||
|
||||
Мы ценим, что вы читаете эту книгу. Мы искренне надеемся что она принесёт Вам как образовательную пользу, так и практическую.
|
||||
Мы ценим, что Вы читаете это руководство. Мы искренне надеемся что она принесёт Вам как образовательную пользу, так и практическую.
|
||||
|
||||
Если у Вас возникли вопросы, проблемы, или вы хотите внести свой вклад в развитие этого проекта - пожалуйста, оставьте запрос в нашем официальном репозитории по адресу **https://github.com/Linux4Yourself/Linux4Yourself.Book**.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Обозначения принятые в книге
|
||||
# Принятые обозначения
|
||||
|
||||
В этой книге используются следующие типографские обозначения:
|
||||
В руководстве используются следующие обозначения:
|
||||
|
||||
```bash
|
||||
./configure --prefix=/usr
|
||||
|
Loading…
Reference in New Issue
Block a user