mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-01-24 23:32:18 +08:00
Merge pull request #592 from monosans/monosans-1
Грамматические исправления в предисловии и подготовительных работах
This commit is contained in:
commit
4f7a8c98e7
@ -5,7 +5,7 @@
|
||||
|
||||
<span>**Необходимый**</span>
|
||||
<br/>
|
||||
Невозможно обойтись без данного пакета (хотя можно заменить альтернативой), внимательно отнеситесь к сборке таких пакетов
|
||||
Невозможно обойтись без данного пакета, хотя можно заменить альтернативой. Внимательно отнеситесь к сборке таких пакетов.
|
||||
|
||||
<span>**Важный**</span>
|
||||
<br/>
|
||||
@ -13,4 +13,4 @@
|
||||
|
||||
<span>**Необязательный**</span>
|
||||
<br/>
|
||||
Сборку данного пакета можно пропустить и это не повлияет на работоспособность других пакетов, однако может повлиять на пакеты за её пределами.
|
||||
Сборку данного пакета можно пропустить, и это не повлияет на работоспособность других пакетов, однако может повлиять на пакеты за её пределами.
|
||||
|
@ -15,7 +15,7 @@ TIMEFORMAT='%1R Elapsed Time - $PROGRAM'
|
||||
tar -zxvf $PROGRAM.tar.gz
|
||||
pushd $PROGRAM
|
||||
{ time \
|
||||
{
|
||||
{
|
||||
./configure &&
|
||||
make &&
|
||||
make install
|
||||
@ -27,6 +27,6 @@ popd
|
||||
> Замените `$PROGRAM.tar.gz` на имя нужного пакета, который надо распаковать.
|
||||
|
||||
## Значения новых команд
|
||||
Когда мы измеряем время, необходимое для сборки пакета, мы используем функцию `time`. Время, затраченное на распаковку архива не учитывается. Фигурные скобки группируют команды как для функции определения затраченного времени, так и для перенаправления всего вывода в файл журнала (`../build.log`).
|
||||
Когда мы измеряем время, необходимое для сборки пакета, мы используем функцию `time`. Время, затраченное на распаковку архива, не учитывается. Фигурные скобки группируют команды как для функции определения затраченного времени, так и для перенаправления всего вывода в файл журнала (`../build.log`).
|
||||
|
||||
!> SBU не даёт совсем точных значений, потому что эти значения зависят от многих факторов, включая версию GCC хост-системы. Они приведены здесь, чтобы *примерно* оценить, сколько времени может потребоваться для установки пакета.
|
||||
!> SBU не даёт совсем точных значений, потому что эти значения зависят от многих факторов, включая версию GCC хост-системы. Они приведены здесь, чтобы *примерно* оценить, сколько времени может потребоваться для установки пакета.
|
||||
|
@ -1,6 +1,6 @@
|
||||
# О тестах
|
||||
|
||||
Большинство пакетов предоставляют наборы тестов для проверки их работоспособности после сборки.
|
||||
Большинство пакетов предоставляет наборы тестов для проверки их работоспособности после сборки.
|
||||
|
||||
Выполнить тесты может быть хорошей идеей, поскольку это позволит проверить, что все
|
||||
компоненты были скомпилированы корректно. Успешное прохождение пакетом всех
|
||||
@ -12,4 +12,4 @@
|
||||
Некоторые тесты занимают очень много времени, например тесты для GCC продолжаются около сотни SBU.
|
||||
|
||||
SBU для пакетов будет указан без учета тестов.
|
||||
При кросс-компиляции тесты могут не работать и выполнять их для пакетов временной системы не рекомендуется.
|
||||
При кросс-компиляции тесты могут не работать, и выполнять их для пакетов временной системы не рекомендуется.
|
||||
|
@ -1,6 +1,6 @@
|
||||
# О потоках
|
||||
|
||||
Сборочная система `make` может разбивать сборку на несколько потоков, число которых регулируется флагом `-j`. Рекомендуется использовать число потоков равное количеству потоков процессора или чуть-чуть больше. Задать `-j` можно, добавляя его после каждого ввода `make` или установив переменную:
|
||||
Сборочная система `make` может разбивать сборку на несколько потоков, число которых регулируется флагом `-j`. Рекомендуется использовать число потоков равное количеству потоков процессора или чуть-чуть больше. Задать `-j` можно, добавляя его после каждого ввода `make` или установив переменную окружения:
|
||||
|
||||
```bash
|
||||
export MAKEFLAGS="-jN"
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Создание пользователя LIN
|
||||
|
||||
Когда мы находимся в системе под пользователем ``root``, одна единственная ошибка может привести к повреждению или поломке всей хост-системы.
|
||||
Когда мы находимся в системе под пользователем ``root``, одна единственная ошибка может привести к повреждению или поломке всей хост-системы.
|
||||
|
||||
Следовательно, рекомендуется выполнять сборку пакетов для временного набора инструментов от обычного пользователя, без привилегий.
|
||||
Следовательно, рекомендуется выполнять сборку пакетов для временного набора инструментов от обычного пользователя, без привилегий.
|
||||
|
||||
*Вы можете использовать произвольного пользователя, но для упрощения настройки чистого рабочего окружения создайте нового пользователя с именем ``lin`` как члена группы ``lin`` и используйте этого пользователя на время всего процесса установки временного набора инструментов.*
|
||||
*Вы можете использовать произвольного пользователя, но, для упрощения настройки чистого рабочего окружения, создайте нового пользователя с именем ``lin`` как члена группы ``lin`` и используйте этого пользователя на время всего процесса установки временного набора инструментов.*
|
||||
|
||||
```bash
|
||||
groupadd lin
|
||||
@ -23,7 +23,7 @@ useradd -s /bin/bash -g lin -m -k /dev/null lin
|
||||
Создает домашний каталог для пользователя ``lin``.
|
||||
|
||||
``-k /dev/null``
|
||||
Этот параметр предотвращает возможное копирование файлов из предустановленного набора каталогов (по умолчанию ``/etc/skel``), изменив местоположение ввода на специальное ``null`` устройство.
|
||||
Этот параметр предотвращает возможное копирование файлов из предустановленного набора каталогов (по умолчанию ``/etc/skel``), изменив местоположение ввода на специальное ``null`` устройство.
|
||||
*``/dev/null`` — специальный файл в системах класса UNIX, представляющий собой так называемое «пустое устройство». Запись в него происходит успешно, независимо от объёма «записанной» информации. Чтение из ``/dev/null`` эквивалентно считыванию конца файла (EOF).*
|
||||
|
||||
``lin``
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Целевые архитектуры
|
||||
|
||||
Основной целевой архитектурой является `x86_64` (64-разрядная).
|
||||
Основной целевой архитектурой является `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 компьютере.
|
||||
|
||||
@ -15,15 +15,16 @@
|
||||
### Что такое multilib
|
||||
|
||||
Процессоры ``X86_64`` могут выполнять как скомпилированный для них код, так и скомпилированный для архитектуры ``i386``.
|
||||
Но, 32-битные исполняемые файлы работают только с 32-битными библиотеками (а 64-битные - только с 64-битными библиотеками), поэтому для запуска 32-битного исполняемого файла требуются 32-битные версии библиотек которые он использует.
|
||||
Если в ОС присутствуют библиотеки для нескольких архитектур - её называют multilib системой.
|
||||
Но 32-битные исполняемые файлы работают только с 32-битными библиотеками (а 64-битные - только с 64-битными библиотеками), поэтому для запуска 32-битного исполняемого файла требуются 32-битные версии библиотек, которые он использует.
|
||||
Если в ОС присутствуют библиотеки для нескольких архитектур, её называют multilib системой.
|
||||
|
||||
### Зачем это нужно
|
||||
|
||||
Некоторые программы с закрытым исходным кодом до сих пор имеют только 32-битные версии. Для Linux таких программ не много, а вот для Windows их существует огромное количество. А для того что бы запустить их необходим Wine с поддержкой multilib.
|
||||
Некоторые программы с закрытым исходным кодом до сих пор имеют только 32-битные версии. Для Linux таких программ не много, а вот для Windows их существует огромное количество. А для того чтобы запустить их, необходим Wine с поддержкой multilib.
|
||||
|
||||
### Как это реализовано в руководстве
|
||||
|
||||
В руководстве присутствуют инструкции в конце многих страниц для multilib систем. Поддержка multilib является опциональной. Если Вам она не нужна - не выполняйте эти инструкции.
|
||||
В руководстве в конце многих страниц присутствуют инструкции для multilib систем. Поддержка multilib является опциональной. Если Вам она не нужна, не выполняйте эти инструкции.
|
||||
Поддержка multilib является частичной - инструкции для сборки 32-битных версий библиотек предоставляются только тогда, когда они необходимы для сборки пакета.
|
||||
|
||||
[Подробнее про архитектуры процессора](additional/cpu-arch)
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Создание базовых директорий и символических ссылок
|
||||
|
||||
|
||||
## Создание каталога $LIN/tools
|
||||
|
||||
Все программы, которые будут скомпилированы следующей части, будут установлены в каталог ``$LIN/tools``, чтобы можно было оставить их отдельно от сборки конечной системы. Программы, которые будут скомпилированы - временные инструменты и не будут входить в конечную сборку системы.
|
||||
Все программы, которые будут скомпилированы в следующей части, будут установлены в каталог ``$LIN/tools``, чтобы можно было оставить их отдельно от сборки конечной системы. Программы, которые будут скомпилированы - временные инструменты и не будут входить в конечную сборку системы.
|
||||
|
||||
После использования кросс-компилятора, от него можно избавиться. Использование каталога ``$LIN/tools`` необходимо для того, чтобы не засорять рабочие каталоги хост-системы.
|
||||
|
||||
@ -13,7 +13,7 @@ mkdir -pv $LIN/tools
|
||||
|
||||
## Создание иерархии файловой системы
|
||||
|
||||
Теперь создайте базовую иеархию файловой системы:
|
||||
Теперь создайте базовую иерархию файловой системы:
|
||||
|
||||
<common-script :name="'file-system'"></common-script>
|
||||
|
||||
@ -35,4 +35,4 @@ ln -sv usr/lib32 $LIN/lib32
|
||||
|
||||
<script>
|
||||
new Vue({ el: '#main' })
|
||||
</script>
|
||||
</script>
|
||||
|
@ -9,13 +9,13 @@
|
||||
## Форматирование корневого раздела
|
||||
|
||||
На данный момент, в руководстве поддерживается только файловая система ext4.
|
||||
Рекомендуется создать её на корневом разделе следующей командой (или по-другому, например с помощью GParted):
|
||||
Рекомендуется создать её на корневом разделе следующей командой (или по-другому, например, с помощью GParted):
|
||||
|
||||
```bash
|
||||
mkfs -v -t ext4 /dev/sdX
|
||||
```
|
||||
Где sdX - ваш раздел
|
||||
|
||||
|
||||
## Форматирование EFI раздела
|
||||
|
||||
Если вы используете UEFI на Linux или Windows, то EFI раздел, скорее всего, уже существует.
|
||||
@ -36,9 +36,9 @@ mkfs.vfat -v /dev/sdN
|
||||
|
||||
## Создание раздела подкачки
|
||||
|
||||
При желании, вы можете создать раздел подкачки (swap).
|
||||
Обычно, его размер - 2 гб, но вы можете создать его любого размера.
|
||||
Чтобы отформатировать раздел swap выполните.
|
||||
При желании вы можете создать раздел подкачки (swap).
|
||||
Обычно его размер - 2 гб, но вы можете создать его любого размера.
|
||||
Чтобы отформатировать раздел swap, выполните:
|
||||
|
||||
```bash
|
||||
mkswap /dev/sdY
|
||||
@ -52,6 +52,6 @@ mkswap /dev/sdY
|
||||
## Другие разделы
|
||||
|
||||
При желании вы можете создать другие разделы. Инструкции для них аналогичны инструкции по созданию корневого раздела.
|
||||
Если вы не уверенны, нужно ли создавать еще какой-либо, раздел - делать этого не стоит.
|
||||
Если вы не уверены, нужно ли создавать еще какой-либо раздел, делать этого не стоит.
|
||||
|
||||
?> [Подробнее про разделы](additional/partitions_calalogs?id=Типы-разделов)
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Требуемые пакеты и патчи
|
||||
|
||||
На данном этапе все готово для загрузки необходимых пакетов и патчей.
|
||||
На данном этапе все готово для загрузки необходимых пакетов и патчей.
|
||||
Самый простой способ загрузки всех требуемых пакетов и патчей - воспользоваться файлом <a :href="wgetList">wget-list</a>.
|
||||
|
||||
<pre>
|
||||
wget {{ wgetList }}
|
||||
</pre>
|
||||
|
||||
Далее его можно передать как параметр программе ``wget``.
|
||||
Далее его можно передать как параметр программе ``wget``.
|
||||
|
||||
<pre>
|
||||
wget --input-file=wget-list --continue --directory-prefix=$LIN/usr/src
|
||||
@ -32,10 +32,10 @@ popd
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#main',
|
||||
data: {
|
||||
wgetList: wgetList,
|
||||
data: {
|
||||
wgetList: wgetList,
|
||||
md5Sums: md5Sums },
|
||||
})
|
||||
</script>
|
||||
|
||||
?> Во всех случаях используются обычные версии пакетов, идентичные находящимся на официальных сайтах их разработчиков, однако они были загружены на наш сервер во избежании проблем с загрузкой.
|
||||
?> Во всех случаях используются обычные версии пакетов, идентичные находящимся на официальных сайтах их разработчиков, однако они были загружены на наш сервер во избежание проблем с загрузкой.
|
||||
|
@ -14,7 +14,7 @@ echo $LIN
|
||||
mount -v /dev/sdX $LIN
|
||||
```
|
||||
Где sdX - ваш корневой раздел.
|
||||
|
||||
|
||||
## Монтирование раздела EFI
|
||||
|
||||
Создадим точку монтирования раздела EFI:
|
||||
@ -28,7 +28,7 @@ mkdir -pv $LIN/boot/efi
|
||||
mount -v /dev/sdN $LIN/boot/efi
|
||||
```
|
||||
Где sdN - EFI раздел.
|
||||
|
||||
|
||||
## Другие разделы
|
||||
|
||||
Если вы создали другие разделы, то можете смонтировать их так же как и раздел EFI (предварительно создав точку монтирования).
|
||||
Если вы создали другие разделы, то можете смонтировать их так же, как и раздел EFI (предварительно создав точку монтирования).
|
||||
|
@ -3,7 +3,7 @@
|
||||
Необходимо настроить окружение для недавно созданного пользователя.
|
||||
Во-первых, создадим `.bash_profile`:
|
||||
|
||||
```bash
|
||||
```bash
|
||||
cat > ~/.bash_profile << "EOF"
|
||||
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
|
||||
EOF
|
||||
@ -27,7 +27,7 @@ EOF
|
||||
|
||||
## CFLAGS и CXXFLAGS
|
||||
|
||||
Использовать оптимизацию на данном этапе не стоит, однако вы можете добавить флаг ``-s`` для того, что бы сразу после сборки автоматически удалялись ненужные и отладочные символы, а также `-O2` воизбежании ошибки сборки glibc:
|
||||
Использовать оптимизацию на данном этапе не стоит, однако вы можете добавить флаг ``-s``, чтобы сразу после сборки автоматически удалялись ненужные и отладочные символы, а также `-O2` во избежание ошибки сборки glibc:
|
||||
|
||||
```bash
|
||||
echo "export CFLAGS=\"-s -O2\" " >> ~/.bashrc
|
||||
@ -37,6 +37,7 @@ echo "export CXXFLAGS=\"-s -O2\" " >> ~/.bashrc
|
||||
Это может сэкономить несколько гигабайт места на диске.
|
||||
|
||||
## Bash-completion
|
||||
|
||||
Если вы используете программу `bash-completion`, то можете добавить её поддержку для пользователя `lin`:
|
||||
|
||||
```bash
|
||||
@ -44,8 +45,9 @@ echo " . /etc/bash_completion" >> ~/.bashrc
|
||||
```
|
||||
|
||||
## MAKEFLAGS
|
||||
Для экономии времени на многоядерном процессоре используйте параллельную сборку. Чтобы её включить, надо добавить для ``make`` переменную `-jN`, где ``N`` - число потоков вашего процессора.
|
||||
Это можно сделать двумя способами:
|
||||
|
||||
Для экономии времени на многоядерном процессоре используйте параллельную сборку. Чтобы её включить, надо добавить для ``make`` переменную `-jN`, где ``N`` - число потоков вашего процессора.
|
||||
Это можно сделать двумя способами:
|
||||
|
||||
- Указывать при каждом вызове ``make`` аргумент ``-jN``
|
||||
- Добавить переменую окружения ``MAKEFLAGS``
|
||||
@ -56,7 +58,7 @@ echo " . /etc/bash_completion" >> ~/.bashrc
|
||||
lscpu | grep "CPU(s):"
|
||||
```
|
||||
|
||||
Результат выполнения будет примерно следующий. Значения будут отличаться, в зависимости от характеристик вашего процессора:
|
||||
Результат выполнения будет примерно следующий. Значения будут отличаться в зависимости от характеристик вашего процессора:
|
||||
|
||||
```
|
||||
CPU(s): 4
|
||||
@ -73,6 +75,7 @@ echo "export MAKEFLAGS=\"-jN\" " >> ~/.bashrc
|
||||
```
|
||||
|
||||
## Для MultiLib
|
||||
|
||||
Для MultiLib выполните:
|
||||
|
||||
```bash
|
||||
@ -90,7 +93,7 @@ source ~/.bash_profile
|
||||
|
||||
## Значения параметров базового bashrc
|
||||
|
||||
`set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash, необходимо для того что бы новые исполняемые файлы становились доступны немедленно.
|
||||
`set +h` - Данный параметр отключает сохранение путей к исполняемым файлам в памяти bash. Это необходимо для того, чтобы новые исполняемые файлы становились доступны немедленно.
|
||||
|
||||
`umask 022` - Гарантирует, что для новых файлов будет установлены права 644.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Информация об используемых пакетах
|
||||
|
||||
Как говорилось ранее, одной из целей проекта является сборка системы базового уровня. Она будет включать в себя пакеты необходимые для репликации и распространения, а также относительно небольшой набор программ, с помощью которых можно расширять систему в любом направлении на ваше усмотрение. Это не значит, что она будет максимально компактной.
|
||||
Как говорилось ранее, одной из целей проекта является сборка системы базового уровня. Она будет включать в себя пакеты, необходимые для репликации и распространения, а также относительно небольшой набор программ, с помощью которых можно расширять систему в любом направлении на ваше усмотрение. Это не значит, что она будет максимально компактной.
|
||||
|
||||
Есть пакеты, которые включены, но строго не требуются. В списке, который расположен ниже, имеются описания для каждого пакета.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user