diff options
Diffstat (limited to 'lfs-12.1-sysv/chapter04')
-rw-r--r-- | lfs-12.1-sysv/chapter04/aboutsbus.html | 137 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/abouttestsuites.html | 132 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/addinguser.html | 209 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/chapter04.html | 108 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/creatingminlayout.html | 142 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/introduction.html | 92 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter04/settingenvironment.html | 404 |
7 files changed, 0 insertions, 1224 deletions
diff --git a/lfs-12.1-sysv/chapter04/aboutsbus.html b/lfs-12.1-sysv/chapter04/aboutsbus.html deleted file mode 100644 index 9535fd5..0000000 --- a/lfs-12.1-sysv/chapter04/aboutsbus.html +++ /dev/null @@ -1,137 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.5. О SBU (Стандартная единица времени сборки) - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="settingenvironment.html" title= - "Настройка окружения">Пред.</a> - <p> - Настройка окружения - </p> - </li> - <li class="next"> - <a accesskey="n" href="abouttestsuites.html" title= - "О наборах тестов">След.</a> - <p> - О наборах тестов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-preps-aboutsbus" name="ch-preps-aboutsbus"></a>4.5. О SBU - (Стандартная единица времени сборки) - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - Многие люди хотели бы знать заранее, сколько примерно времени - потребуется для компиляции и установки каждого пакета. Поскольку - Linux From Scratch может быть собран на различных системах, - невозможно дать точную оценку времени. Сборка самого большого пакета - (gcc) займет около 5 минут на быстрых системах, но может занять - несколько дней на более медленных компьютерах! Вместо фактического - времени в книге используется показатель "стандартная единица времени - сборки" (SBU). - </p> - <p> - Показатель SBU рассчитывается следующим образом. Первым пакетом, - который нужно скомпилировать, является binutils в <a class="xref" - href="../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a>. Время, необходимое - для компиляции этого пакета с использованием одного ядра, будет - называться стандартной единицей времени сборки или SBU. Время - компиляции остальных пакетов будет рассчитано относительно этого - времени. - </p> - <p> - Например, рассмотрим пакет, время компиляции которого составляет 4,5 - SBU. Это означает, что если вашей системе потребовалось 10 минут для - компиляции и сборки первого прохода binutils, то для сборки этого - пакета потребуется <span class="emphasis"><em>примерно</em></span> 45 - минут. К счастью, в большинстве случаев, время сборки меньше, чем у - binutils. - </p> - <p> - В целом, величина SBU не совсем точна, поскольку она зависит от - многих факторов, включая версию GCC хост-системы. Она приведены - здесь, чтобы дать оценку того, сколько времени может потребоваться - для сборки пакета, но в некоторых случаях цифры могут отличаться на - десятки минут. - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Когда используется несколько ядер, единицы измерения SBU будут - различаться еще больше, чем обычно. В некоторых случаях make просто - завершится ошибкой. Анализ выходных данных процесса сборки также - будет более сложным, поскольку строки разных потоков будут - чередоваться. Если вы столкнулись с проблемой на этапе сборки, - вернитесь к сборке на одном ядре, чтобы проанализировать сообщения - об ошибках. - </p> - <p> - Представленные здесь значения времени основаны на замерах при - использовании четырех ядер (-j4). Время, указанное в главе 8, также - включает время выполнения регрессионных тестов для пакета, если не - указано иное. - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="settingenvironment.html" title= - "Настройка окружения">Пред.</a> - <p> - Настройка окружения - </p> - </li> - <li class="next"> - <a accesskey="n" href="abouttestsuites.html" title= - "О наборах тестов">След.</a> - <p> - О наборах тестов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/abouttestsuites.html b/lfs-12.1-sysv/chapter04/abouttestsuites.html deleted file mode 100644 index fca4099..0000000 --- a/lfs-12.1-sysv/chapter04/abouttestsuites.html +++ /dev/null @@ -1,132 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.6. О наборах тестов - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="aboutsbus.html" title= - "О SBU (Стандартная единица времени сборки)">Пред.</a> - <p> - О SBU (Стандартная единица времени сборки) - </p> - </li> - <li class="next"> - <a accesskey="n" href="../part3.html" title= - "Сборка кросс-компилятора и набора временных инструментов">След.</a> - <p> - Сборка кросс-компилятора и набора временных инструментов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-preps-abouttestsuites" name= - "ch-preps-abouttestsuites"></a>4.6. О наборах тестов - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - Большинство пакетов предоставляют набор тестов. Запуск набора тестов - для только что собранного пакета — хорошая идея, потому что он может - обеспечить <span class="quote">«<span class="quote">проверку - работоспособности</span>»</span>, указывающую, что все скомпилировано - правильно. Набор тестов, который проходит свой набор проверок, обычно - доказывает, что пакет работает так, как задумал разработчик. Однако - это не гарантирует, что пакет полностью без ошибок. - </p> - <p> - Некоторые наборы тестов более важны, чем другие. Например, наборы - тестов для основных инструментов — GCC, binutils и glibc — имеют - первостепенное значение из-за их центральной роли в правильно - функционирующей системе. Выполнение наборов тестов для GCC и glibc - может занять очень много времени, особенно на медленном оборудовании, - но их выполнение настоятельно рекомендуется. - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Запуск наборов тестов, описанных в <a class="xref" href= - "../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a> и <a class="xref" - href="../chapter06/chapter06.html" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>, - не имеет смысла, поскольку программы компилируются с помощью - кросс-компилятора, они, вероятно, не могут работать на хосте - сборки. - </p> - </div> - <p> - Распространенной проблемой при запуске наборов тестов для binutils и - GCC является нехватка псевдотерминалов (PTY). Это может привести к - большому количеству неудачных тестов. Причин может быть несколько, но - наиболее вероятная причина заключается в том, что в хост-системе - неправильно настроена файловая система <code class= - "systemitem">devpts</code>. Этот вопрос более подробно обсуждается на - странице <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/faq.html#no-ptys">https://mirror.linuxfromscratch.ru/lfs/faq.html#no-ptys</a>. - </p> - <p> - Иногда наборы тестов не работают, по причинам, о которых знают - разработчики и которые они считают некритичными. Просмотрите журналы, - расположенные по адресу <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/">https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/</a>, - чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех - наборов тестов, описанных в книге. - </p> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="aboutsbus.html" title= - "О SBU (Стандартная единица времени сборки)">Пред.</a> - <p> - О SBU (Стандартная единица времени сборки) - </p> - </li> - <li class="next"> - <a accesskey="n" href="../part3.html" title= - "Сборка кросс-компилятора и набора временных инструментов">След.</a> - <p> - Сборка кросс-компилятора и набора временных инструментов - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/addinguser.html b/lfs-12.1-sysv/chapter04/addinguser.html deleted file mode 100644 index 2e49b22..0000000 --- a/lfs-12.1-sysv/chapter04/addinguser.html +++ /dev/null @@ -1,209 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.3. Создание пользователя LFS - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="creatingminlayout.html" title= - "Создание ограниченной иерархии папок в файловой системе LFS">Пред.</a> - <p> - Создание ограниченной иерархии папок в файловой системе LFS - </p> - </li> - <li class="next"> - <a accesskey="n" href="settingenvironment.html" title= - "Настройка окружения">След.</a> - <p> - Настройка окружения - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-preps-addinguser" name="ch-preps-addinguser"></a>4.3. - Создание пользователя LFS - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - При входе в систему под учетной записью <code class= - "systemitem">root</code> допущение одной ошибки может привести к - повреждению или разрушению системы. Поэтому пакеты в следующих двух - главах собираются из-под учетной записи непривилегированного - пользователя. Вы можете использовать свое собственное имя - пользователя, но чтобы упростить настройку рабочей среды, создайте - нового пользователя с именем <code class="systemitem">lfs</code>, - который является членом одноименной группы и выполняйте команды - из-под этой учетной записи в процессе установки. От имени - пользователя <code class="systemitem">root</code> выполните следующие - команды, чтобы добавить нового пользователя: - </p> - <pre class="userinput"><kbd class="command">groupadd lfs -useradd -s /bin/bash -g lfs -m -k /dev/null lfs</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение параметров командной строки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class="parameter"><code>-s - /bin/bash</code></em></span> - </dt> - <dd> - <p> - Устанавливает <span class= - "command"><strong>bash</strong></span> оболочкой по умолчанию - для пользователя <code class="systemitem">lfs</code>. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>-g - lfs</code></em></span> - </dt> - <dd> - <p> - Эта опция добавляет пользователя <code class= - "systemitem">lfs</code> в группу <code class= - "systemitem">lfs</code>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>-m</code></em></span> - </dt> - <dd> - <p> - Создает домашний каталог для пользователя <code class= - "systemitem">lfs</code>. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>-k - /dev/null</code></em></span> - </dt> - <dd> - <p> - Этот параметр предотвращает возможное копирование файлов из - предустановленного набора каталогов (по умолчанию <code class= - "filename">/etc/skel</code>) путем изменения местоположения - ввода на специальное null-устройство. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>lfs</code></em></span> - </dt> - <dd> - <p> - Это имя нового пользователя. - </p> - </dd> - </dl> - </div> - <p> - Если вы хотите войти в систему как <code class= - "systemitem">lfs</code> или переключиться на <code class= - "systemitem">lfs</code> из учетной записи непривилегированного - пользователя (в отличие от переключения на пользователя <code class= - "systemitem">lfs</code> при входе в систему как <code class= - "systemitem">root</code>, для которого не требуется пароль - пользователя <code class="systemitem">lfs</code>), вам необходимо - установить пароль для <code class="systemitem">lfs</code>. Выполните - следующую команду от имени пользователя <code class= - "systemitem">root</code>, чтобы установить пароль: - </p> - <pre class="userinput"><kbd class="command">passwd lfs</kbd></pre> - <p> - Предоставьте пользователю <code class="systemitem">lfs</code> полный - доступ ко всем каталогам в папке <code class="filename">$LFS</code>, - назначив <code class="systemitem">lfs</code> владельцем: - </p> - <pre class="userinput"><kbd class= - "command">chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} -case $(uname -m) in - x86_64) chown -v lfs $LFS/lib64 ;; -esac</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - В некоторых хост-системах следующая команда не выполняется должным - образом и приостанавливает вход пользователя <code class= - "systemitem">lfs</code> в фоновом режиме. Если подсказка "lfs:~$" - не появляется сразу, ввод команды <span class= - "command"><strong>fg</strong></span> устранит проблему. - </p> - </div> - <p> - Затем запустите оболочку, работающую от имени пользователя - <code class="systemitem">lfs</code>. Это можно сделать, войдя в - систему как <code class="systemitem">lfs</code> на виртуальной - консоли или с помощью следующей команды замены/переключения - пользователя: - </p> - <pre class="userinput"><kbd class="command">su - lfs</kbd></pre> - <p> - Аргумент <span class="quote">«<span class="quote"><em class= - "parameter"><code>-</code></em></span>»</span> передает значение - команде <span class="command"><strong>su</strong></span> для запуска - оболочки входа в систему, а не обычной оболочки. Разница между этими - двумя типами оболочек подробно описана в <a class="ulink" href= - "https://man.archlinux.org/man/bash.1">bash(1)</a> и <span class= - "command"><strong>info bash</strong></span>. - </p> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="creatingminlayout.html" title= - "Создание ограниченной иерархии папок в файловой системе LFS">Пред.</a> - <p> - Создание ограниченной иерархии папок в файловой системе LFS - </p> - </li> - <li class="next"> - <a accesskey="n" href="settingenvironment.html" title= - "Настройка окружения">След.</a> - <p> - Настройка окружения - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/chapter04.html b/lfs-12.1-sysv/chapter04/chapter04.html deleted file mode 100644 index 3f9b0c7..0000000 --- a/lfs-12.1-sysv/chapter04/chapter04.html +++ /dev/null @@ -1,108 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - Глава 4. Заключительный этап подготовки - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Часть II. Подготовка к сборке - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="../chapter03/patches.html" title= - "Необходимые патчи">Пред.</a> - <p> - Необходимые патчи - </p> - </li> - <li class="next"> - <a accesskey="n" href="introduction.html" title= - "Введение">След.</a> - <p> - Введение - </p> - </li> - <li class="up"> - <a accesskey="u" href="../part2.html" title= - "Часть II. Подготовка к сборке">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="chapter"> - <a id="chapter-final-preps" name="chapter-final-preps"></a>4. - Заключительный этап подготовки - </h1> - <div class="chapter" lang="ru" xml:lang="ru"> - <div class="toc"> - <h3> - Содержание - </h3> - <ul> - <li class="sect1"> - <a href="introduction.html">Введение</a> - </li> - <li class="sect1"> - <a href="creatingminlayout.html">Создание ограниченной иерархии - папок в файловой системе LFS</a> - </li> - <li class="sect1"> - <a href="addinguser.html">Создание пользователя LFS</a> - </li> - <li class="sect1"> - <a href="settingenvironment.html">Настройка окружения</a> - </li> - <li class="sect1"> - <a href="aboutsbus.html">О SBU (Стандартная единица времени - сборки)</a> - </li> - <li class="sect1"> - <a href="abouttestsuites.html">О наборах тестов</a> - </li> - </ul> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="../chapter03/patches.html" title= - "Необходимые патчи">Пред.</a> - <p> - Необходимые патчи - </p> - </li> - <li class="next"> - <a accesskey="n" href="introduction.html" title= - "Введение">След.</a> - <p> - Введение - </p> - </li> - <li class="up"> - <a accesskey="u" href="../part2.html" title= - "Часть II. Подготовка к сборке">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/creatingminlayout.html b/lfs-12.1-sysv/chapter04/creatingminlayout.html deleted file mode 100644 index 59c1189..0000000 --- a/lfs-12.1-sysv/chapter04/creatingminlayout.html +++ /dev/null @@ -1,142 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.2. Создание ограниченной иерархии папок в файловой системе LFS - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="introduction.html" title= - "Введение">Пред.</a> - <p> - Введение - </p> - </li> - <li class="next"> - <a accesskey="n" href="addinguser.html" title= - "Создание пользователя LFS">След.</a> - <p> - Создание пользователя LFS - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-tools-creatingminlayout" name= - "ch-tools-creatingminlayout"></a>4.2. Создание ограниченной иерархии - папок в файловой системе LFS - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - В этом разделе мы начинаем заполнять файловую систему LFS элементами, - которые будут основой конечной системы Linux. Первым шагом является - создание ограниченной иерархии каталогов, чтобы программы, - скомпилированные в <a class="xref" href="../chapter06/chapter06.html" - title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - (а также glibc и libstdc++ в <a class="xref" href= - "../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a>), могли быть - установлены в их конечном расположении. Это необходимо для того, - чтобы эти временные программы были перезаписаны при сборке - окончательных версий в <a class="xref" href= - "../chapter08/chapter08.html" title= - "Глава 8. Установка базового системного программного обеспечения">Глава 8</a>. - </p> - <p> - Создайте необходимую иерархию каталогов, выполнив следующую команду - от имени <code class="systemitem">root</code>: - </p> - <pre class="userinput"><kbd class= - "command">mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac</kbd></pre> - <p> - Программы в <a class="xref" href="../chapter06/chapter06.html" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - будут скомпилированы с помощью кросс-компилятора (более подробная - информация приведена в разделе <a class="xref" href= - "../partintro/toolchaintechnotes.html" title= - "Технические примечания по сборочным инструментам">Технические - примечания по сборочным инструментам</a>). Чтобы отделить - кросс-компилятор от других программ, он будет установлен в - специальный каталог. Создайте этот каталог с помощью следующей - команды: - </p> - <pre class="userinput"><kbd class= - "command">mkdir -pv $LFS/tools</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Редакторы LFS намеренно решили не использовать каталог <code class= - "filename">/usr/lib64</code>. В процессе сборки предпринимается ряд - шагов, чтобы убедиться, что набор инструментов не будет его - использовать. Если по какой-либо причине этот каталог появится (это - может произойти, если вы допустили ошибку, следуя инструкциям, или - потому что вы установили бинарный пакет, создавший его после сборки - LFS), это может привести к поломке вашей системы. Вы должны быть - уверены, что этого каталога не существует. - </p> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="introduction.html" title= - "Введение">Пред.</a> - <p> - Введение - </p> - </li> - <li class="next"> - <a accesskey="n" href="addinguser.html" title= - "Создание пользователя LFS">След.</a> - <p> - Создание пользователя LFS - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/introduction.html b/lfs-12.1-sysv/chapter04/introduction.html deleted file mode 100644 index c5838f1..0000000 --- a/lfs-12.1-sysv/chapter04/introduction.html +++ /dev/null @@ -1,92 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.1. Введение - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="chapter04.html" title= - "Заключительный этап подготовки">Пред.</a> - <p> - Заключительный этап подготовки - </p> - </li> - <li class="next"> - <a accesskey="n" href="creatingminlayout.html" title= - "Создание ограниченной иерархии папок в файловой системе LFS">След.</a> - <p> - Создание ограниченной иерархии папок в файловой системе LFS - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-preps-introduction" name="ch-preps-introduction"></a>4.1. - Введение - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - В этой главе мы выполним несколько дополнительных настроек для - подготовки к сборке временной системы. Мы создадим несколько - каталогов в <code class="filename">$LFS</code> (в котором установим - временные инструменты), добавим непривилегированного пользователя и - настроим окружение для этого пользователя. Кроме этого, будут даны - пояснения по стандартной единице времени сборки, или <span class= - "quote">«<span class="quote">SBU</span>»</span>, которую мы - используем для измерения времени необходимого для сборки пакетов LFS, - и предоставим некоторую информацию о наборах тестов. - </p> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="chapter04.html" title= - "Заключительный этап подготовки">Пред.</a> - <p> - Заключительный этап подготовки - </p> - </li> - <li class="next"> - <a accesskey="n" href="creatingminlayout.html" title= - "Создание ограниченной иерархии папок в файловой системе LFS">След.</a> - <p> - Создание ограниченной иерархии папок в файловой системе LFS - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> diff --git a/lfs-12.1-sysv/chapter04/settingenvironment.html b/lfs-12.1-sysv/chapter04/settingenvironment.html deleted file mode 100644 index e6a883e..0000000 --- a/lfs-12.1-sysv/chapter04/settingenvironment.html +++ /dev/null @@ -1,404 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 4.4. Настройка окружения - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 4. Заключительный этап подготовки - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="addinguser.html" title= - "Создание пользователя LFS">Пред.</a> - <p> - Создание пользователя LFS - </p> - </li> - <li class="next"> - <a accesskey="n" href="aboutsbus.html" title= - "О SBU (Стандартная единица времени сборки)">След.</a> - <p> - О SBU (Стандартная единица времени сборки) - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-preps-settingenviron" name="ch-preps-settingenviron"></a>4.4. - Настройка окружения - </h1> - <div class="sect1" lang="ru" xml:lang="ru"> - <p> - Настроим хорошо работающее окружение, создав два новых файла запуска - для оболочки <span class="command"><strong>bash</strong></span>. - Войдя в систему как пользователь <code class="systemitem">lfs</code>, - введите следующую команду, чтобы создать новый <code class= - "filename">.bash_profile</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > ~/.bash_profile << "EOF" -<code class= -"literal">exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash</code> -EOF</kbd></pre> - <p> - При входе в систему под учетной записью пользователя <code class= - "systemitem">lfs</code> или при переключении на <code class= - "systemitem">lfs</code>, используя команду <span class= - "command"><strong>su</strong></span> с опцией <span class= - "quote">«<span class="quote"><em class= - "parameter"><code>-</code></em></span>»</span>, начальная оболочка - представляет собой оболочку <span class= - "emphasis"><em>login</em></span>, которая читает данные из - <code class="filename">/etc/profile</code> хоста (который, вероятно, - содержит некоторые настройки и переменные среды), а затем - <code class="filename">.bash_profile</code>. Команда <span class= - "command"><strong>exec env -i.../bin/bash</strong></span> в файле - <code class="filename">.bash_profile</code> заменяет запущенную - оболочку новой, не содержащей переменные среды, за исключением - переменных <code class="envar">HOME</code>, <code class= - "envar">TERM</code>, и <code class="envar">PS1</code>. Это - гарантирует, что никакие нежелательные и потенциально опасные - переменные среды из хост-системы не попадут в среду сборки. - </p> - <p> - Новый экземпляр оболочки представляет собой <span class= - "emphasis"><em>non-login</em></span> оболочку, которая не считывает и - не выполняет содержимое файлов <code class= - "filename">/etc/profile</code> и <code class= - "filename">.bash_profile</code>, а вместо этого выполняет чтение из - файла <code class="filename">.bashrc</code>. Создайте файл - <code class="filename">.bashrc</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > ~/.bashrc << "EOF" -<code class="literal">set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</code> -EOF</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение настроек в <code class= - "filename">.bashrc</code></strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class="parameter"><code>set - +h</code></em></span> - </dt> - <dd> - <p> - Команда <span class="command"><strong>set +h</strong></span> - отключает хэш-функцию <span class= - "command"><strong>bash</strong></span>. Хеширование является - полезной функцией —<span class= - "command"><strong>bash</strong></span> использует хеш-таблицу - для запоминания полного пути к исполняемому файлу, чтобы - избежать многократного поиска одного и того же исполняемого - файла в переменной окружения <code class="envar">PATH</code>. - Однако новые инструменты требуется использовать сразу же после - их установки. Отключение хэш-функции, заставляет оболочку - искать переменную окружения <code class="envar">PATH</code>, - всякий раз, когда программу необходимо запустить. Таким - образом, оболочка найдет вновь скомпилированные инструменты в - <code class="filename">$LFS/tools/bin</code>, как только они - станут доступны, не запоминая предыдущую версию той же - программы, предоставленную хост-дистрибутивом, в <code class= - "filename">/usr/bin</code> или <code class= - "filename">/bin</code>. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>umask - 022</code></em></span> - </dt> - <dd> - <p> - Установка значения пользовательской маски создания файлов - (umask) 022 гарантирует, что вновь созданные файлы и каталоги - доступны для записи только их владельцу, но будут доступны для - чтения и выполнения остальным пользователям (при условии, что - системный вызов <a class="ulink" href= - "https://man.archlinux.org/man/open.2">open(2)</a> использует - режимы по умолчанию, новые файлы получат разрешения 644, а - каталоги 755). - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>LFS=/mnt/lfs</code></em></span> - </dt> - <dd> - <p> - Переменная окружения <code class="envar">LFS</code> должна - указывать на выбранную точку монтирования. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>LC_ALL=POSIX</code></em></span> - </dt> - <dd> - <p> - Переменная <code class="envar">LC_ALL</code> управляет - локализацией определенных программ, и формирует сообщения в - соответствии с локализацией указанной страны. Установка в - <code class="envar">LC_ALL</code> значения <span class= - "quote">«<span class="quote">POSIX</span>»</span> или - <span class="quote">«<span class="quote">C</span>»</span> (они - эквивалентны) гарантирует, что все будет работать должным - образом в среде кросс-компиляции. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>LFS_TGT=$(uname - -m)-lfs-linux-gnu</code></em></span> - </dt> - <dd> - <p> - Переменная <code class="envar">LFS_TGT</code> устанавливает - нестандартное, но совместимое описание компьютера для - использования при создании кросс-компилятора и компоновщика, а - также при кросс-компиляции временного набора инструментов. - Дополнительная информация об этом представлена в <a class= - "xref" href="../partintro/toolchaintechnotes.html" title= - "Технические примечания по сборочным инструментам">Технические - примечания по сборочным инструментам</a>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>PATH=/usr/bin</code></em></span> - </dt> - <dd> - <p> - Многие современные дистрибутивы Linux объединили <code class= - "filename">/bin</code> и <code class= - "filename">/usr/bin</code>. В этом случае стандартной - переменной <code class="envar">PATH</code> необходимо - установить значение <code class="filename">/usr/bin/</code> для - окружения из <a class="xref" href="../chapter06/chapter06.html" - title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>. - Когда это не так, следующая строка добавит <code class= - "filename">/bin</code> к пути. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>if [ ! -L /bin ]; - then PATH=/bin:$PATH; fi</code></em></span> - </dt> - <dd> - <p> - Если <code class="filename">/bin</code> не является - символической ссылкой, то его необходимо добавить в переменную - <code class="envar">PATH</code>. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>PATH=$LFS/tools/bin:$PATH</code></em></span> - </dt> - <dd> - <p> - Поместив <code class="filename">$LFS/tools/bin</code> перед - стандартным <code class="envar">PATH</code>, кросс-компилятор, - установленный в начале <a class="xref" href= - "../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a>, будет - обнаружен оболочкой сразу после его установки. Это, в сочетании - с отключением хеширования, ограничивает риск использования - компилятора хоста вместо кросс-компилятора. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>CONFIG_SITE=$LFS/usr/share/config.site</code></em></span> - </dt> - <dd> - <p> - В <a class="xref" href="../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a> и <a class= - "xref" href="../chapter06/chapter06.html" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>, - если эта переменная не задана, сценарии <span class= - "command"><strong>configure</strong></span> могут попытаться - загрузить элементы конфигурации, специфичные для некоторых - дистрибутивов, из <code class= - "filename">/usr/share/config.site</code> в хост-системе. - Переопределите её, чтобы предотвратить потенциальное влияние - хоста. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>export - ...</code></em></span> - </dt> - <dd> - <p> - Приведенные выше команды установили некоторые переменные, чтобы - сделать их видимыми в любых вложенных оболочках, мы - экспортируем их. - </p> - </dd> - </dl> - </div> - <div class="admon important"> - <img alt="[Важно]" src="../images/important.png" /> - <h3> - Важно - </h3> - <p> - Некоторые коммерческие дистрибутивы добавляют недокументированный - экземпляр <code class="filename">/etc/bash.bashrc</code> для - инициализации <span class="command"><strong>bash</strong></span>. - Этот файл потенциально может изменить среду пользователя - <code class="systemitem">lfs</code> таким образом, что это может - повлиять на сборку важных пакетов LFS. Чтобы убедиться, что - пользовательская среда <code class="systemitem">lfs</code> чиста, - проверьте наличие файла <code class= - "filename">/etc/bash.bashrc</code> и, если он есть, переименуйте - его. От имени пользователя <code class="systemitem">root</code>, - запустите: - </p> - <pre class="userinput"><kbd class= - "command">[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE</kbd></pre> - <p> - Когда пользователь <code class="systemitem">lfs</code> больше не - нужен (в начале <a class="xref" href="../chapter07/chapter07.html" - title= - "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> - Глава 7</a> ) вы можете безопасно восстановить <code class= - "filename">/etc/bash.bashrc</code> (по желанию). - </p> - <p> - Обратите внимание, что пакет LFS Bash, который мы создадим в - <a class="xref" href="../chapter08/bash.html" title= - "8.35. Bash-5.2.21">Раздел 8.35, «Bash-5.2.21»</a>, не - настроен на загрузку или выполнение <code class= - "filename">/etc/bash.bashrc</code>, поэтому этот файл бесполезен в - готовой системе LFS. - </p> - </div> - <p> - Для многих современных систем с несколькими процессорами (или ядрами) - время компиляции пакета можно сократить, выполнив <span class= - "quote">«<span class="quote">параллельную сборку</span>»</span>, либо - установив переменную среды, либо сообщив программе <span class= - "command"><strong>make</strong></span>, сколько ядер задействовать - для сборки. Например, процессор Intel Core i9-13900K имеет 8 ядер P - (производительность) и 16 ядер E (энергоэффективность), ядро P может - одновременно запускать два потока, поэтому каждое ядро P моделируется - ядром Linux как два логических ядра. В результате получается 32 - логических ядра. Очевидный способ задействовать все эти логические - ядра - разрешить <span class="command"><strong>make</strong></span> - создавать до 32 заданий сборки. Это можно сделать, передав параметр - <em class="parameter"><code>-j32</code></em> команде <span class= - "command"><strong>make</strong></span>: - </p> - <pre class="userinput"><kbd class="command">make -j32</kbd></pre> - <p> - Или установите переменную окружения <code class= - "envar">MAKEFLAGS</code>, и ее содержимое будет автоматически - использоваться <span class="command"><strong>make</strong></span> в - качестве параметров командной строки: - </p> - <pre class="userinput"><kbd class= - "command">export MAKEFLAGS=-j32</kbd></pre> - <div class="admon important"> - <img alt="[Важно]" src="../images/important.png" /> - <h3> - Важно - </h3> - <p> - Никогда не передавайте параметр <em class= - "parameter"><code>-j</code></em> без номера в <span class= - "command"><strong>make</strong></span> и не устанавливайте такой - параметр в <code class="envar">MAKEFLAGS</code>. Иначе <span class= - "command"><strong>make</strong></span> будет создавать бесконечные - задания сборки, что вызовет проблемы со стабильностью системы. - </p> - </div> - <p> - Чтобы использовать все логические ядра, доступные для сборки пакетов - в <a class="xref" href="../chapter05/chapter05.html" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a> и <a class="xref" - href="../chapter06/chapter06.html" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>, - укажите параметр <code class="envar">MAKEFLAGS</code> в <code class= - "filename">.bashrc сейчас</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat >> ~/.bashrc << "EOF" -<code class="literal">export MAKEFLAGS=-j<em class= -"replaceable"><code>$(nproc)</code></em></code> -EOF</kbd></pre> - <p> - Замените <em class="replaceable"><code>$(nproc)</code></em> - количеством логических ядер, которые вы хотите использовать, если вы - планируете использовать не все логические ядра. - </p> - <p> - Наконец, чтобы убедиться, что среда полностью подготовлена для сборки - временных инструментов, перечитайте только что созданный профиль - пользователя: - </p> - <pre class="userinput"><kbd class= - "command">source ~/.bash_profile</kbd></pre> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="addinguser.html" title= - "Создание пользователя LFS">Пред.</a> - <p> - Создание пользователя LFS - </p> - </li> - <li class="next"> - <a accesskey="n" href="aboutsbus.html" title= - "О SBU (Стандартная единица времени сборки)">След.</a> - <p> - О SBU (Стандартная единица времени сборки) - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter04.html" title= - "Глава 4. Заключительный этап подготовки">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> |