diff options
Diffstat (limited to 'lfs-12.2-sysv/chapter07')
-rw-r--r-- | lfs-12.2-sysv/chapter07/Python.html | 186 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/bison.html | 142 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/changingowner.html | 119 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/chapter07.html | 134 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/chroot.html | 170 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/cleanup.html | 285 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/createfiles.html | 266 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/creatingdirs.html | 173 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/gettext.html | 153 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/introduction.html | 115 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/kernfs.html | 207 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/perl.html | 186 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/texinfo.html | 125 | ||||
-rw-r--r-- | lfs-12.2-sysv/chapter07/util-linux.html | 214 |
14 files changed, 2475 insertions, 0 deletions
diff --git a/lfs-12.2-sysv/chapter07/Python.html b/lfs-12.2-sysv/chapter07/Python.html new file mode 100644 index 0000000..5912260 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/Python.html @@ -0,0 +1,186 @@ +<!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> + 7.10. Python-3.12.5 + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="perl.html" title="Perl-5.40.0">Пред.</a> + <p> + Perl-5.40.0 + </p> + </li> + <li class="next"> + <a accesskey="n" href="texinfo.html" title="Texinfo-7.1">След.</a> + <p> + Texinfo-7.1 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-Python" name="ch-tools-Python"></a>7.10. Python-3.12.5 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Python 3 содержит среду разработчика Python. Его можно + использовать для объектно-ориентированного программирования, + написания скриптов, прототипирования больших программ и разработка + целых приложений. Python — это интерпретируемый язык + программирования. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.4 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">603 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.10.1. Установка пакета Python + </h2> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Существует два пакета, имена которых начинаются с префикса + <span class="quote">«<span class="quote">python</span>»</span>. + Сейчас необходимо распаковать файл <code class= + "filename">Python-3.12.5.tar.xz</code> (обратите внимание на + заглавную первую букву). + </p> + </div> + <p> + Подготовка Python к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr \ + --enable-shared \ + --without-ensurepip</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров настройки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--enable-shared</code></em></span> + </dt> + <dd> + <p> + Этот параметр отключает установку статичных библиотек. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-ensurepip</code></em></span> + </dt> + <dd> + <p> + Этот параметр отключает установщик пакетов Python, который на + данном этапе не нужен. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Некоторые модули Python 3 не могут быть собраны сейчас, потому + что зависимости еще не установлены. Для модуля <code class= + "filename">ssl</code> выводится сообщение <code class= + "computeroutput">Python требует OpenSSL 1.1.1 или новее</code>. + Сообщение следует проигнорировать. Просто убедитесь, что команда + <span class="command"><strong>make</strong></span> верхнего + уровня не завершилась ошибкой. Дополнительные модули сейчас не + нужны, и они будут собраны в <a class="xref" href= + "../chapter08/chapter08.html" title= + "Глава 8. Установка базового системного программного обеспечения"> + Глава 8</a>. + </p> + </div> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/Python.html#contents-python" title= + "8.52.2. Содержимое пакета Python 3">Раздел 8.52.2, + «Содержимое пакета Python 3.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="perl.html" title="Perl-5.40.0">Пред.</a> + <p> + Perl-5.40.0 + </p> + </li> + <li class="next"> + <a accesskey="n" href="texinfo.html" title="Texinfo-7.1">След.</a> + <p> + Texinfo-7.1 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/bison.html b/lfs-12.2-sysv/chapter07/bison.html new file mode 100644 index 0000000..ae67c9a --- /dev/null +++ b/lfs-12.2-sysv/chapter07/bison.html @@ -0,0 +1,142 @@ +<!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> + 7.8. Bison-3.8.2 + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="gettext.html" title= + "Gettext-0.22.5">Пред.</a> + <p> + Gettext-0.22.5 + </p> + </li> + <li class="next"> + <a accesskey="n" href="perl.html" title="Perl-5.40.0">След.</a> + <p> + Perl-5.40.0 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-bison" name="ch-tools-bison"></a>7.8. Bison-3.8.2 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Bison содержит генератор синтаксического анализа. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.2 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">57 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.8.1. Установка пакета Bison + </h2> + <p> + Подготовьте Bison к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr \ + --docdir=/usr/share/doc/bison-3.8.2</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение нового параметра конфигурации:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--docdir=/usr/share/doc/bison-3.8.2</code></em></span> + </dt> + <dd> + <p> + Этот параметр указывает системе сборки установить + документацию к bison в каталог с версией пакета. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/bison.html#contents-bison" title= + "8.34.2. Содержимое пакета Bison">Раздел 8.34.2, «Содержимое + пакета Bison.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="gettext.html" title= + "Gettext-0.22.5">Пред.</a> + <p> + Gettext-0.22.5 + </p> + </li> + <li class="next"> + <a accesskey="n" href="perl.html" title="Perl-5.40.0">След.</a> + <p> + Perl-5.40.0 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/changingowner.html b/lfs-12.2-sysv/chapter07/changingowner.html new file mode 100644 index 0000000..f9a30fc --- /dev/null +++ b/lfs-12.2-sysv/chapter07/changingowner.html @@ -0,0 +1,119 @@ +<!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> + 7.2. Смена владельца + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="introduction.html" title= + "Введение">Пред.</a> + <p> + Введение + </p> + </li> + <li class="next"> + <a accesskey="n" href="kernfs.html" title= + "Подготовка виртуальных файловых систем ядра">След.</a> + <p> + Подготовка виртуальных файловых систем ядра + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-changingowner" name="ch-tools-changingowner"></a>7.2. + Смена владельца + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Команды, приведенные в оставшейся части книги, должны выполняться + от имени пользователя <code class="systemitem">root</code>, а не + <code class="systemitem">lfs</code>. Дважды проверьте, что + переменная <code class="envar">$LFS</code> установлена в переменных + окружения пользователя <code class="systemitem">root</code>. + </p> + </div> + <p> + В настоящее время вся иерархия каталогов в <code class= + "filename">$LFS</code> принадлежит пользователю <code class= + "systemitem">lfs</code>, существующему только на хост-системе. Если + права на файлы и каталоги внутри <code class="filename">$LFS</code> + оставить как есть, то они будут принадлежать ID пользователя без + существующей учетной записи. Это опасно, так как созданная позже + учетная запись, может получить такой же ID пользователя и стать + владельцем всех файлов в <code class="filename">$LFS</code>, тем + самым делая эти файлы уязвимыми для возможных злонамеренных + манипуляций. + </p> + <p> + Для решения проблемы измените владельца каталогов <code class= + "filename">$LFS/*</code> на пользователя <code class= + "systemitem">root</code>, выполнив следующую команду: + </p> + <pre class="userinput"><kbd class= + "command">chown --from lfs -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} +case $(uname -m) in + x86_64) chown --from lfs -R root:root $LFS/lib64 ;; +esac</kbd></pre> + </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="kernfs.html" title= + "Подготовка виртуальных файловых систем ядра">След.</a> + <p> + Подготовка виртуальных файловых систем ядра + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/chapter07.html b/lfs-12.2-sysv/chapter07/chapter07.html new file mode 100644 index 0000000..16d075b --- /dev/null +++ b/lfs-12.2-sysv/chapter07/chapter07.html @@ -0,0 +1,134 @@ +<!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> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Часть III. Сборка кросс-компилятора и набора временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="../chapter06/gcc-pass2.html" title= + "GCC-14.2.0 - Проход 2">Пред.</a> + <p> + GCC-14.2.0 - Проход 2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="introduction.html" title= + "Введение">След.</a> + <p> + Введение + </p> + </li> + <li class="up"> + <a accesskey="u" href="../part3.html" title= + "Часть III. Сборка кросс-компилятора и набора временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="chapter"> + <a id="chapter-chroot-temporary-tools" name= + "chapter-chroot-temporary-tools"></a>7. Вход в окружение Chroot и + создание дополнительных временных инструментов + </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="changingowner.html">Смена владельца</a> + </li> + <li class="sect1"> + <a href="kernfs.html">Подготовка виртуальных файловых систем + ядра</a> + </li> + <li class="sect1"> + <a href="chroot.html">Вход в окружение Chroot</a> + </li> + <li class="sect1"> + <a href="creatingdirs.html">Создание каталогов</a> + </li> + <li class="sect1"> + <a href="createfiles.html">Создание основных файлов и + символических ссылок</a> + </li> + <li class="sect1"> + <a href="gettext.html">Gettext-0.22.5</a> + </li> + <li class="sect1"> + <a href="bison.html">Bison-3.8.2</a> + </li> + <li class="sect1"> + <a href="perl.html">Perl-5.40.0</a> + </li> + <li class="sect1"> + <a href="Python.html">Python-3.12.5</a> + </li> + <li class="sect1"> + <a href="texinfo.html">Texinfo-7.1</a> + </li> + <li class="sect1"> + <a href="util-linux.html">Util-linux-2.40.2</a> + </li> + <li class="sect1"> + <a href="cleanup.html">Очистка и сохранение временной системы</a> + </li> + </ul> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="../chapter06/gcc-pass2.html" title= + "GCC-14.2.0 - Проход 2">Пред.</a> + <p> + GCC-14.2.0 - Проход 2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="introduction.html" title= + "Введение">След.</a> + <p> + Введение + </p> + </li> + <li class="up"> + <a accesskey="u" href="../part3.html" title= + "Часть III. Сборка кросс-компилятора и набора временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/chroot.html b/lfs-12.2-sysv/chapter07/chroot.html new file mode 100644 index 0000000..e02272c --- /dev/null +++ b/lfs-12.2-sysv/chapter07/chroot.html @@ -0,0 +1,170 @@ +<!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> + 7.4. Вход в окружение Chroot + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="kernfs.html" title= + "Подготовка виртуальных файловых систем ядра">Пред.</a> + <p> + Подготовка виртуальных файловых систем ядра + </p> + </li> + <li class="next"> + <a accesskey="n" href="creatingdirs.html" title= + "Создание каталогов">След.</a> + <p> + Создание каталогов + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-chroot" name="ch-tools-chroot"></a>7.4. Вход в + окружение Chroot + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + Теперь, когда все пакеты, необходимые для сборки остальных + инструментов установлены в системе, пришло время войти в окружение + chroot и завершить установку временных инструментов. Эта среда также + будет использоваться для установки конечной системы. От имени + пользователя <code class="systemitem">root</code> выполните следующую + команду для входа в chroot, в которой на данный момент нет ничего, + кроме временных инструментов: + </p> + <pre class="userinput"><kbd class= + "command">chroot "$LFS" /usr/bin/env -i \ + HOME=/root \ + TERM="$TERM" \ + PS1='(lfs chroot) \u:\w\$ ' \ + PATH=/usr/bin:/usr/sbin \ + MAKEFLAGS="-j<em class="replaceable"><code>$(nproc)</code></em>" \ + TESTSUITEFLAGS="-j<em class="replaceable"><code>$(nproc)</code></em>" \ + /bin/bash --login</kbd></pre> + <p> + Если вы не хотите использовать все доступные логические ядра, + замените параметр <em class="replaceable"><code>$(nproc)</code></em> + количеством логических ядер, которые вы хотите использовать для + сборки пакетов в этой и последующих главах. На наборы тестов + некоторых пакетов (в частности Autoconf, Libtool и Tar) в <a class= + "xref" href="../chapter08/chapter08.html" title= + "Глава 8. Установка базового системного программного обеспечения">Глава 8</a> + не влияет установка переменной <code class="envar">MAKEFLAGS</code>, + вместо этого они используют переменную среды <code class= + "envar">TESTSUITEFLAGS</code>. Мы также установили её здесь для + запуска тестов с поддержкой нескольких ядер. + </p> + <p> + Параметр <em class="parameter"><code>-i</code></em> команды + <span class="command"><strong>env</strong></span>, очистит все + переменные в среде chroot. После этого переменные <code class= + "envar">HOME</code>, <code class="envar">TERM</code>, <code class= + "envar">PS1</code> и <code class="envar">PATH</code> будут + установлены заново. Конструкция <em class= + "parameter"><code>TERM=$TERM</code></em> установит переменную TERM + внутри chroot в то же значение, что и вне chroot. Эта переменная + необходима для корректной работы таких программ как <span class= + "command"><strong>vim</strong></span> и <span class= + "command"><strong>less</strong></span>. Если понадобятся другие + переменные окружения, такие как <code class="envar">CFLAGS</code> или + <code class="envar">CXXFLAGS</code>, то это подходящее место для их + установки. + </p> + <p> + С этого момента больше нет необходимости использовать переменную + <code class="envar">LFS</code>, поскольку вся работа будет ограничена + файловой системой LFS; команда <span class= + "command"><strong>chroot</strong></span> запускает оболочку Bash с + корневым каталогом (<code class="filename">/</code>), установленным в + <code class="filename">$LFS</code>. + </p> + <p> + Обратите внимание, что каталог <code class= + "filename">/tools/bin</code> не указан в переменной окружения + <code class="envar">PATH</code>. Это означает, что кросс-тулчейн + больше не будет использоваться. + </p> + <p> + Также обратите внимание, что в командной строке <span class= + "command"><strong>bash</strong></span> будет указано <code class= + "computeroutput">I have no name!</code>. Это нормально, поскольку + файл <code class="filename">/etc/passwd</code> еще не создан. + </p> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Важно, чтобы все команды в оставшейся части этой главы и следующих + главах выполнялись из среды chroot. Если вы покидаете эту среду по + какой-либо причине (например, при перезагрузке), убедитесь, что + файловые системы виртуального ядра смонтированы, как описано в + <a class="xref" href="kernfs.html#ch-tools-bindmount" title= + "7.3.1. Монтирование и заполнение /dev">Раздел 7.3.1, + «Монтирование и заполнение /dev»</a> и <a class="xref" href= + "kernfs.html#ch-tools-kernfsmount" title= + "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел 7.3.2, + «Монтирование виртуальных файловых систем ядра»</a>, а затем + войдите в среду chroot для продолжения установки. + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="kernfs.html" title= + "Подготовка виртуальных файловых систем ядра">Пред.</a> + <p> + Подготовка виртуальных файловых систем ядра + </p> + </li> + <li class="next"> + <a accesskey="n" href="creatingdirs.html" title= + "Создание каталогов">След.</a> + <p> + Создание каталогов + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/cleanup.html b/lfs-12.2-sysv/chapter07/cleanup.html new file mode 100644 index 0000000..cc8c9c1 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/cleanup.html @@ -0,0 +1,285 @@ +<!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> + 7.13. Очистка и сохранение временной системы + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="util-linux.html" title= + "Util-linux-2.40.2">Пред.</a> + <p> + Util-linux-2.40.2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="../part4.html" title= + "Сборка системы LFS">След.</a> + <p> + Сборка системы LFS + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-cleanup" name="ch-tools-cleanup"></a>7.13. Очистка и + сохранение временной системы + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.13.1. Очистка + </h2> + <p> + Во-первых, удалите установленную документацию, чтобы предотвратить + ее попадание в конечную систему и сэкономить около 35 МБ места: + </p> + <pre class="userinput"><kbd class= + "command">rm -rf /usr/share/{info,man,doc}/*</kbd></pre> + <p> + Во-вторых, в современных системах Linux файлы .la библиотеки + libtool полезны только для libltdl. Никакие библиотеки в LFS не + загружаются с помощью libltdl. Известно, что некоторые файлы .la + могут привести к сбою во время сборки пакетов BLFS. Удалите эти + файлы сейчас: + </p> + <pre class="userinput"><kbd class= + "command">find /usr/{lib,libexec} -name \*.la -delete</kbd></pre> + <p> + Сейчас размер системы составляет около 3 ГБ, однако каталог /tools + больше не понадобится. Удалите его, чтобы освободить около 1 ГБ + дискового пространства: + </p> + <pre class="userinput"><kbd class="command">rm -rf /tools</kbd></pre> + </div> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.13.2. Резервное копирование + </h2> + <p> + На данный момент основные программы и библиотеки собраны, и ваша + система LFS находится в хорошем состоянии. Можно создать резервную + копию вашей системы для последующего повторного использования. В + случае фатальных сбоев в следующих главах часто оказывается, что + удалить все и начать заново (более осторожно) — лучший вариант + восстановления. К сожалению, все временные файлы также будут + удалены. Чтобы не тратить лишнее время на повторную сборку того, + что было успешно собрано, полезно создать резервную копию текущей + системы LFS. + </p> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Все остальные шаги в этом разделе являются необязательными. Тем + не менее, как только вы начнете устанавливать пакеты в <a class= + "xref" href="../chapter08/chapter08.html" title= + "Глава 8. Установка базового системного программного обеспечения"> + Глава 8</a>, временные файлы будут перезаписаны. Поэтому + рекомендуется создание резервной копии текущей системы, как + описано ниже. + </p> + </div> + <p> + Следующие шаги выполняются вне среды chroot. Это означает, что + прежде чем продолжить вы должны покинуть среду chroot. Причиной + этого является то, что необходимо получить доступ к расположению + файловой системы за пределами среды chroot для хранения/чтения + архива резервных копий, который не должен размещаться в иерархии + <code class="filename">$LFS</code>. + </p> + <p> + Если вы решили сделать резервную копию, покиньте среду chroot: + </p> + <pre class="userinput"><kbd class="command">exit</kbd></pre> + <div class="admon important"> + <img alt="[Важно]" src="../images/important.png" /> + <h3> + Важно + </h3> + <p> + Все следующие инструкции выполняются пользователем <code class= + "systemitem">root</code> в вашей хост-системе. Будьте особенно + внимательны к командам, которые вы собираетесь запускать, + поскольку ошибки, допущенные здесь, могут изменить вашу + хост-систему. Имейте в виду, что переменная окружения + <code class="envar">LFS</code> по умолчанию установлена для + пользователя <code class="systemitem">lfs</code>, но может не + быть установлена для <code class="systemitem">root</code>. + </p> + <p> + Всякий раз, когда команды должны выполняться от <code class= + "systemitem">root</code>, убедитесь, что вы установили переменную + <code class="envar">LFS</code>. + </p> + <p> + Это обсуждалось в <a class="xref" href= + "../chapter02/aboutlfs.html" title= + "2.6. Установка переменной $LFS">Раздел 2.6, «Установка + переменной $LFS»</a>. + </p> + </div> + <p> + Перед созданием резервной копии размонтируйте виртуальные файловые + системы: + </p> + <pre class="userinput"><kbd class= + "command">mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm +umount $LFS/dev/pts +umount $LFS/{sys,proc,run,dev}</kbd></pre> + <p> + Убедитесь, что у вас есть как минимум 1 ГБ свободного места на + диске (исходные tar-архивы будут включены в архив резервных копий) + в файловой системе, содержащей каталог, в котором вы создаете архив + резервных копий. + </p> + <p> + Обратите внимание, что в приведенных ниже инструкциях указан + домашний каталог пользователя <code class="systemitem">root</code> + хост-системы, который обычно находится в корневой файловой системе. + Замените <code class="envar">$HOME</code> каталогом на ваш выбор, + если вы не хотите, чтобы резервная копия хранилась в домашнем + каталоге пользователя <code class="systemitem">root</code>. + </p> + <p> + Создайте архив резервной копии, выполнив следующую команду: + </p> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Поскольку архив резервной копии сжимается, процесс занимает + довольно много времени (более 10 минут) даже на достаточно + быстрой системе. + </p> + </div> + <pre class="userinput"><kbd class="command">cd $LFS +tar -cJpf $HOME/lfs-temp-tools-12.2.tar.xz .</kbd></pre> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Если вы переходите к главе 8, не забудьте повторно войти в среду + chroot, как описано в разделе <span class="quote">«<span class= + "quote">Важно</span>»</span> ниже. + </p> + </div> + </div> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.13.3. Восстановление + </h2> + <p> + В случае, если были допущены какие-либо ошибки и вам нужно начать + все сначала, вы можете использовать эту резервную копию для + восстановления системы и сэкономить время на восстановление. + Поскольку исходники находятся в папке <code class= + "filename">$LFS</code>, они также включены в архив резервной копии, + поэтому их не нужно загружать повторно. Убедившись, что переменная + <code class="envar">$LFS</code> настроена правильно, вы можете + восстановить резервную копию, выполнив следующие команды: + </p> + <div class="admon warning"> + <img alt="[Предупреждение]" src="../images/warning.png" /> + <h3> + Предупреждение + </h3> + <p> + Следующие команды чрезвычайно опасны. Если вы запустите команду + <span class="command"><strong>rm -rf ./*</strong></span> от имени + пользователя <code class="systemitem">root</code> и не перейдете + в каталог $LFS или переменная окружения <code class= + "envar">LFS</code> не будет установлена для пользователя + <code class="systemitem">root</code>, это уничтожит всю вашу + хост-систему. ВЫ ПРЕДУПРЕЖДЕНЫ. + </p> + </div> + <pre class="screen"><code class="computeroutput">cd $LFS +rm -rf ./* +tar -xpf $HOME/lfs-temp-tools-12.2.tar.xz</code></pre> + <p> + Еще раз проверьте, правильно ли настроено окружение, и продолжайте + сборку остальной части системы. + </p> + <div class="admon important"> + <img alt="[Важно]" src="../images/important.png" /> + <h3> + Важно + </h3> + <p> + Если вы покинули среду chroot, чтобы создать резервную копию или + перезапустить сборку с помощью восстановления, не забудьте + проверить, что виртуальные файловые системы все еще смонтированы + (<span class="command"><strong>findmnt | grep + $LFS</strong></span>). Если они не смонтированы, перемонтируйте + их сейчас, как описано в <a class="xref" href="kernfs.html" + title="7.3. Подготовка виртуальных файловых систем ядра">Раздел 7.3, + «Подготовка виртуальных файловых систем ядра»</a>, и повторно + войдите в среду chroot (см. <a class="xref" href="chroot.html" + title="7.4. Вход в окружение Chroot">Раздел 7.4, «Вход в + окружение Chroot»</a>), прежде чем продолжить. + </p> + </div> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="util-linux.html" title= + "Util-linux-2.40.2">Пред.</a> + <p> + Util-linux-2.40.2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="../part4.html" title= + "Сборка системы LFS">След.</a> + <p> + Сборка системы LFS + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/createfiles.html b/lfs-12.2-sysv/chapter07/createfiles.html new file mode 100644 index 0000000..588c103 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/createfiles.html @@ -0,0 +1,266 @@ +<!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> + 7.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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="creatingdirs.html" title= + "Создание каталогов">Пред.</a> + <p> + Создание каталогов + </p> + </li> + <li class="next"> + <a accesskey="n" href="gettext.html" title= + "Gettext-0.22.5">След.</a> + <p> + Gettext-0.22.5 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-createfiles" name="ch-tools-createfiles"></a>7.6. + Создание основных файлов и символических ссылок + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + Исторически сложилось, что Linux хранит список примонтированных + файловых систем в файле <code class="filename">/etc/mtab</code>. + Современные ядра хранят этот список внутри себя и предоставляют его + пользователю через файловую систему <code class= + "filename">/proc</code>. Чтобы удовлетворять требованиям утилит, + которые ожидают наличия <code class="filename">/etc/mtab</code>, + создайте следующую символическую ссылку: + </p> + <pre class="userinput"><kbd class= + "command">ln -sv /proc/self/mounts /etc/mtab</kbd></pre> + <p> + Создайте файл <code class="filename">/etc/hosts</code>, на который + будут ссылаться некоторые наборы тестов, а также один из файлов + конфигурации Perl: + </p> + <pre class="userinput"><kbd class= + "command">cat > /etc/hosts << EOF +<code class="literal">127.0.0.1 localhost $(hostname) +::1 localhost</code> +EOF</kbd></pre> + <p> + Чтобы пользователь <code class="systemitem">root</code> мог войти в + систему и распознавался системой, в файлах <code class= + "filename">/etc/passwd</code> и <code class= + "filename">/etc/group</code> должны быть соответствующие записи. + </p> + <p> + Создайте файл <code class="filename">/etc/passwd</code> выполнив + следующую команду: + </p> + <pre class="userinput"><kbd class= + "command">cat > /etc/passwd << "EOF" +<code class="literal">root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/dev/null:/usr/bin/false +daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false +messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false +uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false +nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false</code> +EOF</kbd></pre> + <p> + Пароль пользователя <code class="systemitem">root</code> будет задан + позднее. + </p> + <p> + Создайте файл <code class="filename">/etc/group</code>, выполнив + следующую команду: + </p> + <pre class="userinput"><kbd class= + "command">cat > /etc/group << "EOF" +<code class="literal">root:x:0: +bin:x:1:daemon +sys:x:2: +kmem:x:3: +tape:x:4: +tty:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +dialout:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +cdrom:x:15: +adm:x:16: +messagebus:x:18: +input:x:24: +mail:x:34: +kvm:x:61: +uuidd:x:80: +wheel:x:97: +users:x:999: +nogroup:x:65534:</code> +EOF</kbd></pre> + <p> + Созданные группы не являются частью какого-либо стандарта — это + группы, определяемые частично требованиями конфигурации Udev в главе + 9, а частично общими соглашениями, используемыми в ряде существующих + дистрибутивов Linux. Кроме того, некоторые наборы тестов зависят от + конкретных пользователей или групп. Спецификация LSB (доступна по + адресу <a class="ulink" href= + "https://refspecs.linuxfoundation.org/lsb.shtml">https://refspecs.linuxfoundation.org/lsb.shtml</a>) + рекомендует, чтобы, помимо группы <code class= + "systemitem">root</code> с идентификатор (GID) 0 присутствовала + группа <code class="systemitem">bin</code> с GID 1. GID 5 широко + используется для группы <code class="systemitem">tty</code>, число 5 + также используется в <span class="phrase"><code class= + "filename">/etc/fstab</code></span> для файловой системы <code class= + "systemitem">devpts</code>. Все остальные имена групп и GID могут + свободно выбираться системным администратором, так как хорошо + написанные программы не зависят от номеров GID, а чаще используют + название группы. + </p> + <p> + Идентификатор 65534 используется ядром для NFS и отдельных + пользовательских пространств имен для несопоставленных пользователей + и групп (они существуют на сервере NFS или родительском пространстве + имен пользователя, но <span class="quote">«<span class="quote">не + существует</span>»</span> на локальном компьютере или в отдельном + пространстве имен). Мы присваиваем <code class= + "systemitem">nobody</code> и <code class="systemitem">nogroup</code> + для того, чтобы избежать несопоставленных идентификаторов. Другие + дистрибутивы могут обрабатывать этот идентификатор по-разному, + поэтому любая переносимая программа не должна зависеть от этого + присвоения. + </p> + <p> + Для некоторых пакетов требуется локаль. + </p> + <pre class="userinput"><kbd class= + "command">localedef -i C -f UTF-8 C.UTF-8</kbd></pre> + <p> + Для некоторых тестов в <a class="xref" href= + "../chapter08/chapter08.html" title= + "Глава 8. Установка базового системного программного обеспечения">Глава 8</a> + требуется обычный пользователь. Добавим такого пользователя здесь и + удалим эту учетную запись в конце главы. + </p> + <pre class="userinput"><kbd class= + "command">echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd +echo "tester:x:101:" >> /etc/group +install -o tester -d /home/tester</kbd></pre> + <p> + Чтобы удалить приглашение <span class="quote">«<span class="quote">I + have no name!</span>»</span>, запустите новую оболочку. Поскольку + файлы <code class="filename">/etc/passwd</code> и <code class= + "filename">/etc/group</code> были созданы, разрешение имен + пользователей и групп теперь будет работать: + </p> + <pre class="userinput"><kbd class= + "command">exec /usr/bin/bash --login</kbd></pre> + <p> + Программы <span class="command"><strong>login</strong></span>, + <span class="command"><strong>agetty</strong></span>, <span class= + "command"><strong>init</strong></span> (и другие) используют ряд + журналов для записи такой информации, как кто и когда входил в + систему. Однако эти программы не будут записывать данные в журналы, + если они еще не существуют. Инициализируйте журналы и предоставьте им + соответствующие разрешения: + </p> + <pre class="userinput"><kbd class= + "command">touch /var/log/{btmp,lastlog,faillog,wtmp} +chgrp -v utmp /var/log/lastlog +chmod -v 664 /var/log/lastlog +chmod -v 600 /var/log/btmp</kbd></pre> + <p> + В файл <code class="filename">/var/log/wtmp</code> записываются все + входы и выходы из системы. В файл <code class= + "filename">/var/log/lastlog</code> записывается время последнего + входа каждого пользователя в систему. В файл <code class= + "filename">/var/log/faillog</code> записываются неудачные попытки + входа в систему. В файл <code class="filename">/var/log/btmp</code> + также записываются неудачные попытки входа в систему. + </p> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + В файл <code class="filename">/run/utmp</code> записываются + пользователи, которые в данный момент вошли в систему. Он создаётся + динамически, в процессе выполнения сценариев загрузки. + </p> + </div> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Файлы <span class="phrase"><code class= + "filename">utmp</code>,</span> <code class="filename">wtmp</code>, + <code class="filename">btmp</code> и <code class= + "filename">lastlog</code> используют для временных меток + 32-разрядные целые числа, значения счетчика достигнет максимума (2 + 147 483 647) 19 января 2038 года ("проблема 2038 года"). Многие + пакеты перестали их использовать, другие же, собираются прекратить + их использование. Вероятно, лучше считать их устаревшими. + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="creatingdirs.html" title= + "Создание каталогов">Пред.</a> + <p> + Создание каталогов + </p> + </li> + <li class="next"> + <a accesskey="n" href="gettext.html" title= + "Gettext-0.22.5">След.</a> + <p> + Gettext-0.22.5 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/creatingdirs.html b/lfs-12.2-sysv/chapter07/creatingdirs.html new file mode 100644 index 0000000..6bf9fdf --- /dev/null +++ b/lfs-12.2-sysv/chapter07/creatingdirs.html @@ -0,0 +1,173 @@ +<!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> + 7.5. Создание каталогов + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="chroot.html" title= + "Вход в окружение Chroot">Пред.</a> + <p> + Вход в окружение Chroot + </p> + </li> + <li class="next"> + <a accesskey="n" href="createfiles.html" title= + "Создание основных файлов и символических ссылок">След.</a> + <p> + Создание основных файлов и символических ссылок + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-creatingdirs" name="ch-tools-creatingdirs"></a>7.5. + Создание каталогов + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + Пришло время создать полную структуру каталогов в файловой системе + LFS. + </p> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Некоторые из каталогов, упомянутых в этом разделе, возможно, уже + были созданы ранее с помощью явных инструкций или при установке + некоторых пакетов. Они повторяются ниже для полноты картины. + </p> + </div> + <p> + Создайте несколько каталогов, которые не входили в ограниченный + набор, используемый в предыдущих главах, выполнив следующую команду: + </p> + <pre class="userinput"><kbd class= + "command">mkdir -pv /{boot,home,mnt,opt,srv}</kbd></pre> + <p> + Создайте необходимые подкаталоги, выполнив следующие команды: + </p> + <pre class="userinput"><kbd class= + "command">mkdir -pv /etc/{opt,sysconfig} +mkdir -pv /lib/firmware +mkdir -pv /media/{floppy,cdrom} +mkdir -pv /usr/{,local/}{include,src} +mkdir -pv /usr/lib/locale +mkdir -pv /usr/local/{bin,lib,sbin} +mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} +mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} +mkdir -pv /usr/{,local/}share/man/man{1..8} +mkdir -pv /var/{cache,local,log,mail,opt,spool} +mkdir -pv /var/lib/{color,misc,locate} + +ln -sfv /run /var/run +ln -sfv /run/lock /var/lock + +install -dv -m 0750 /root +install -dv -m 1777 /tmp /var/tmp</kbd></pre> + <p> + По умолчанию каталоги создаются с правами 755, но это нежелательно + делать для всех каталогов. В приведенных выше командах вносятся два + изменения — одно в домашний каталог пользователя <code class= + "systemitem">root</code>, а другое в каталоги для временных файлов. + </p> + <p> + Первое изменение гарантирует, что никто не сможет войти в каталог + <code class="filename">/root</code> — точно так же, как обычный + пользователь сделал бы это со своим собственным домашним каталогом. + Второе изменение гарантирует, что любой пользователь может писать в + каталоги <code class="filename">/tmp</code> и <code class= + "filename">/var/tmp</code>, но не может удалять из них файлы другого + пользователя. Последнее запрещено так называемым <span class= + "quote">«<span class="quote">sticky bit (липким + битом)</span>»</span>, старшим битом (1) в битовой маске 1777 + </p> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.5.1. Примечание о соответствии требованиям FHS + </h2> + <p> + Это дерево каталогов основано на стандарте иерархии файловой + системы (FHS) (доступен по адресу <a class="ulink" href= + "https://refspecs.linuxfoundation.org/fhs.shtml">https://refspecs.linuxfoundation.org/fhs.shtml</a>). + FHS также указывает, что наличие некоторых каталогов необязательно, + например, <code class="filename">/usr/local/games</code> и + <code class="filename">/usr/share/games</code>. В LFS мы создаем + только те каталоги, которые действительно необходимы. Однако, не + стесняйтесь создавать дополнительные каталоги, если хотите. + </p> + <div class="admon warning"> + <img alt="[Предупреждение]" src="../images/warning.png" /> + <h3> + Предупреждение + </h3> + <p> + FHS не требует наличия каталога <code class= + "filename">/usr/lib64</code>, и редакторы LFS решили его не + использовать. Чтобы инструкции в LFS и BLFS работали корректно, + крайне важно, чтобы этот каталог не существовал. Время от времени + вам следует проверять, что он не существует, потому что его легко + создать непреднамеренно, и это, вероятно, приведет к поломке + вашей системы. + </p> + </div> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="chroot.html" title= + "Вход в окружение Chroot">Пред.</a> + <p> + Вход в окружение Chroot + </p> + </li> + <li class="next"> + <a accesskey="n" href="createfiles.html" title= + "Создание основных файлов и символических ссылок">След.</a> + <p> + Создание основных файлов и символических ссылок + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/gettext.html b/lfs-12.2-sysv/chapter07/gettext.html new file mode 100644 index 0000000..b57e580 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/gettext.html @@ -0,0 +1,153 @@ +<!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> + 7.7. Gettext-0.22.5 + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="createfiles.html" title= + "Создание основных файлов и символических ссылок">Пред.</a> + <p> + Создание основных файлов и символических ссылок + </p> + </li> + <li class="next"> + <a accesskey="n" href="bison.html" title="Bison-3.8.2">След.</a> + <p> + Bison-3.8.2 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-gettext" name="ch-tools-gettext"></a>7.7. + Gettext-0.22.5 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Gettext содержит утилиты для интернационализации и + локализации. Они позволяют компилировать программы с поддержкой NLS + (Native Language Support), позволяя им выводить сообщения на родном + языке пользователя. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">1.1 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">321 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.7.1. Установка пакета Gettext + </h2> + <p> + Для временного набора инструментов нам нужно установить только три + программы из пакета Gettext. + </p> + <p> + Подготовьте Gettext к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --disable-shared</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров настройки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--disable-shared</code></em></span> + </dt> + <dd> + <p> + В настоящее время нам не нужно устанавливать какие-либо общие + библиотеки Gettext, поэтому нет необходимости их собирать. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите программы <span class= + "command"><strong>msgfmt</strong></span>, <span class= + "command"><strong>msgmerge</strong></span>, и <span class= + "command"><strong>xgettext</strong></span> programs: + </p> + <pre class="userinput"><kbd class= + "command">cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/gettext.html#contents-gettext" title= + "8.33.2. Содержимое пакета Gettext">Раздел 8.33.2, «Содержимое + пакета Gettext.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="createfiles.html" title= + "Создание основных файлов и символических ссылок">Пред.</a> + <p> + Создание основных файлов и символических ссылок + </p> + </li> + <li class="next"> + <a accesskey="n" href="bison.html" title="Bison-3.8.2">След.</a> + <p> + Bison-3.8.2 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/introduction.html b/lfs-12.2-sysv/chapter07/introduction.html new file mode 100644 index 0000000..a93eaf4 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/introduction.html @@ -0,0 +1,115 @@ +<!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> + 7.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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="chapter07.html" title= + "Вход в окружение Chroot и создание дополнительных временных инструментов"> + Пред.</a> + <p> + Вход в окружение Chroot и создание дополнительных временных + инструментов + </p> + </li> + <li class="next"> + <a accesskey="n" href="changingowner.html" title= + "Смена владельца">След.</a> + <p> + Смена владельца + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-introduction-chroot" name= + "ch-tools-introduction-chroot"></a>7.1. Введение + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + В этой главе рассказывается, как собрать последние недостающие части + временной системы: инструменты, необходимые для сборки различных + пакетов. Теперь, когда все циклические зависимости устранены, для + сборки можно использовать среду <span class="quote">«<span class= + "quote">chroot</span>»</span>, полностью изолированную от + операционной системы хоста (за исключением работающего ядра). + </p> + <p> + Для правильной работы изолированной среды необходимо установить связь + с работающим ядром. Это делается с помощью так называемых + <span class="emphasis"><em>виртуальных файловых систем + ядра</em></span>, которые будут смонтированы перед входом в среду + chroot. Вы можете проверить, смонтированы ли они, выполнив команду + <span class="command"><strong>findmnt</strong></span>. + </p> + <p> + До <a class="xref" href="chroot.html" title= + "7.4. Вход в окружение Chroot">Раздел 7.4, «Вход в окружение + Chroot»</a> команды должны выполняться от имени <code class= + "systemitem">root</code> с установленной переменной <code class= + "envar">LFS</code>. После входа в chroot все команды выполняются от + имени <code class="systemitem">root</code>, к счастью, без доступа к + операционной системе компьютера, на котором вы собираете LFS. В любом + случае будьте осторожны, так как неверными командами легко разрушить + всю систему LFS. + </p> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="chapter07.html" title= + "Вход в окружение Chroot и создание дополнительных временных инструментов"> + Пред.</a> + <p> + Вход в окружение Chroot и создание дополнительных временных + инструментов + </p> + </li> + <li class="next"> + <a accesskey="n" href="changingowner.html" title= + "Смена владельца">След.</a> + <p> + Смена владельца + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/kernfs.html b/lfs-12.2-sysv/chapter07/kernfs.html new file mode 100644 index 0000000..8023295 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/kernfs.html @@ -0,0 +1,207 @@ +<!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> + 7.3. Подготовка виртуальных файловых систем ядра + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="changingowner.html" title= + "Смена владельца">Пред.</a> + <p> + Смена владельца + </p> + </li> + <li class="next"> + <a accesskey="n" href="chroot.html" title= + "Вход в окружение Chroot">След.</a> + <p> + Вход в окружение Chroot + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-kernfs" name="ch-tools-kernfs"></a>7.3. Подготовка + виртуальных файловых систем ядра + </h1> + <div class="sect1" lang="ru" xml:lang="ru"> + <p> + Приложения, работающие в пользовательском пространстве, используют + различные файловые системы, созданные ядром, для взаимодействия с + самим ядром. Эти файловые системы являются виртуальными: для них не + используется дисковое пространство. Содержимое файловых систем + находится в памяти. Эти файловые системы должны быть смонтированы в + дереве каталогов $LFS, чтобы приложения могли найти их в среде + <span class="command"><strong>chroot</strong></span>. + </p> + <p> + Начните с создания каталогов, в которые будут смонтированы эти + виртуальные файловые системы: + </p> + <pre class="userinput"><kbd class= + "command">mkdir -pv $LFS/{dev,proc,sys,run}</kbd></pre> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + <a id="ch-tools-bindmount" name="ch-tools-bindmount"></a>7.3.1. + Монтирование и заполнение /dev + </h2> + <p> + Во время обычной загрузки ядро автоматически монтирует файловую + систему <code class="systemitem">devtmpfs</code> в каталог + <code class="filename">/dev</code>; ядро создает узлы устройств в + этой виртуальной файловой системе в процессе загрузки или при + первом обнаружении устройства, или доступе к нему. Демон udev может + изменять владельца или разрешения узлов устройств, созданных ядром, + или создавать новые узлы устройств или символические ссылки, чтобы + облегчить работу разработчиков дистрибутива или системных + администраторов. (Подробности смотрите в <a class="xref" href= + "../chapter09/udev.html#ch-config-udev-device-node-creation" title= + "9.3.2.2. Создание узла устройства">Раздел 9.3.2.2, «Создание + узла устройства»</a>.) Если ядро хоста поддерживает <code class= + "systemitem">devtmpfs</code>, мы можем просто смонтировать + <code class="systemitem">devtmpfs</code> в <code class= + "filename">$LFS/dev</code> и положиться на ядро для его заполнения. + </p> + <p> + Но в некоторых ядрах хоста отсутствует поддержка <code class= + "systemitem">devtmpfs</code>, эти хост-дистрибутивы используют + разные методы для создания содержимого <code class= + "filename">/dev</code>. Таким образом, единственный независимый от + хоста способ заполнить каталог <code class= + "filename">$LFS/dev</code> - это привязка к каталогу <code class= + "filename">/dev</code> хост-системы. Связное монтирование - это + особый тип монтирования, который делает дерево каталога или файл + видимым в каком-либо другом месте. Для этого используйте следующую + команду: + </p> + <pre class="userinput"><kbd class= + "command">mount -v --bind /dev $LFS/dev</kbd></pre> + </div> + <div class="sect2" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + <a id="ch-tools-kernfsmount" name="ch-tools-kernfsmount"></a>7.3.2. + Монтирование виртуальных файловых систем ядра + </h2> + <p> + Теперь смонтируйте оставшиеся виртуальные файловые системы: + </p> + <pre class="userinput"><kbd class= + "command">mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts +mount -vt proc proc $LFS/proc +mount -vt sysfs sysfs $LFS/sys +mount -vt tmpfs tmpfs $LFS/run</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров монтирования для devpts:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>gid=5</code></em></span> + </dt> + <dd> + <p> + Этот параметр гарантирует, что все узлы устройств, созданные + devpts, принадлежат группе с идентификатором 5. Это + идентификатор, который мы будем использовать позже для группы + <code class="systemitem">tty</code>. Мы используем + идентификатор группы вместо имени, поскольку хост-система + может использовать другой идентификатор для своей группы + <code class="systemitem">tty</code>. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>mode=0620</code></em></span> + </dt> + <dd> + <p> + Этот параметр гарантирует, что все узлы устройств, созданные + devpts, будут иметь права 0620 (доступен для чтения и записи + пользователем, доступен для записи группе). Вместе с + вышеуказанной опцией это гарантирует, что devpts создаст узлы + устройств, соответствующие требованиям grantpt(), а это + означает, что вспомогательный файл Glibc <span class= + "command"><strong>pt_chown</strong></span> (который не + установлен по умолчанию) не требуется. + </p> + </dd> + </dl> + </div> + <p> + В некоторых хост-системах <code class="filename">/dev/shm</code> + является символической ссылкой на каталог <code class= + "filename">/run/shm</code>. /run tmpfs был смонтирован выше, + поэтому сейчас необходимо только создать каталог с правильными + разрешениями. + </p> + <p> + В других хост-системах <code class="filename">/dev/shm</code> + является точкой монтирования для tmpfs. В этом случае монтирование + /dev приведет только к созданию /dev/shm как каталога в среде + chroot. В этой ситуации мы должны явно смонтировать tmpfs: + </p> + <pre class="userinput"><kbd class= + "command">if [ -h $LFS/dev/shm ]; then + install -v -d -m 1777 $LFS$(realpath /dev/shm) +else + mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm +fi</kbd></pre> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="changingowner.html" title= + "Смена владельца">Пред.</a> + <p> + Смена владельца + </p> + </li> + <li class="next"> + <a accesskey="n" href="chroot.html" title= + "Вход в окружение Chroot">След.</a> + <p> + Вход в окружение Chroot + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/perl.html b/lfs-12.2-sysv/chapter07/perl.html new file mode 100644 index 0000000..59aa8c1 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/perl.html @@ -0,0 +1,186 @@ +<!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> + 7.9. Perl-5.40.0 + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="bison.html" title="Bison-3.8.2">Пред.</a> + <p> + Bison-3.8.2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="Python.html" title="Python-3.12.5">След.</a> + <p> + Python-3.12.5 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-perl" name="ch-tools-perl"></a>7.9. Perl-5.40.0 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Perl содержит практический язык для извлечения данных и + составления отчётов (Practical Extraction and Report Language). + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.6 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">285 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.9.1. Установка пакета Perl + </h2> + <p> + Подготовьте Perl к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">sh Configure -des \ + -D prefix=/usr \ + -D vendorprefix=/usr \ + -D useshrplib \ + -D privlib=/usr/lib/perl5/5.40/core_perl \ + -D archlib=/usr/lib/perl5/5.40/core_perl \ + -D sitelib=/usr/lib/perl5/5.40/site_perl \ + -D sitearch=/usr/lib/perl5/5.40/site_perl \ + -D vendorlib=/usr/lib/perl5/5.40/vendor_perl \ + -D vendorarch=/usr/lib/perl5/5.40/vendor_perl</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение новых опций Configure:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>-des</code></em></span> + </dt> + <dd> + <p> + Это комбинация из трех параметров: -d использует значения по + умолчанию для всех элементов; -e обеспечивает выполнение всех + задач; -s отключает несущественные выходные данные. + </p> + </dd> + <dt> + <span class="term"><em class="parameter"><code>-D + vendorprefix=/usr</code></em></span> + </dt> + <dd> + <p> + Параметр гарантирует, что <span class= + "command"><strong>perl</strong></span> знает, как указать + пакетам, где они должны устанавливать свои модули Perl. + </p> + </dd> + <dt> + <span class="term"><em class="parameter"><code>-D + useshrplib</code></em></span> + </dt> + <dd> + <p> + Собрать библиотеку libperl, необходимую некоторым модулям + Perl, как общую библиотеку вместо статической. + </p> + </dd> + <dt> + <span class="term"><em class="parameter"><code>-D privlib,-D + archlib,-D sitelib,...</code></em></span> + </dt> + <dd> + <p> + Эти настройки определяют, где Perl ищет установленные модули. + Редакторы LFS решили поместить их в структуру каталогов, + основанную на MAJOR.MINOR версии Perl (5.40), что позволяет + обновлять Perl до более новых уровней исправлений (уровень + исправления - это последняя разделенная точками часть в + строке полной версии, например 5.40.0) без необходимости + переустанавливать все модули. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/perl.html#contents-perl" title= + "8.43.2. Содержимое пакета Perl">Раздел 8.43.2, «Содержимое + пакета Perl.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="bison.html" title="Bison-3.8.2">Пред.</a> + <p> + Bison-3.8.2 + </p> + </li> + <li class="next"> + <a accesskey="n" href="Python.html" title="Python-3.12.5">След.</a> + <p> + Python-3.12.5 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/texinfo.html b/lfs-12.2-sysv/chapter07/texinfo.html new file mode 100644 index 0000000..b758490 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/texinfo.html @@ -0,0 +1,125 @@ +<!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> + 7.11. Texinfo-7.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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="Python.html" title="Python-3.12.5">Пред.</a> + <p> + Python-3.12.5 + </p> + </li> + <li class="next"> + <a accesskey="n" href="util-linux.html" title= + "Util-linux-2.40.2">След.</a> + <p> + Util-linux-2.40.2 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-texinfo" name="ch-tools-texinfo"></a>7.11. Texinfo-7.1 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Texinfo содержит программы для чтения, записи и + преобразования информационных страниц. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.2 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">130 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.11.1. Установка пакета Texinfo + </h2> + <p> + Подготовьте Texinfo к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr</kbd></pre> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/texinfo.html#contents-texinfo" title= + "8.72.2. Содержимое пакета Texinfo">Раздел 8.72.2, «Содержимое + пакета Texinfo.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="Python.html" title="Python-3.12.5">Пред.</a> + <p> + Python-3.12.5 + </p> + </li> + <li class="next"> + <a accesskey="n" href="util-linux.html" title= + "Util-linux-2.40.2">След.</a> + <p> + Util-linux-2.40.2 + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> diff --git a/lfs-12.2-sysv/chapter07/util-linux.html b/lfs-12.2-sysv/chapter07/util-linux.html new file mode 100644 index 0000000..7724122 --- /dev/null +++ b/lfs-12.2-sysv/chapter07/util-linux.html @@ -0,0 +1,214 @@ +<!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> + 7.12. Util-linux-2.40.2 + </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.2"> + <div class="navheader"> + <h4> + Линукс с нуля - Версия 12.2 + </h4> + <h3> + Глава 7. Вход в окружение Chroot и создание дополнительных временных + инструментов + </h3> + <ul> + <li class="prev"> + <a accesskey="p" href="texinfo.html" title="Texinfo-7.1">Пред.</a> + <p> + Texinfo-7.1 + </p> + </li> + <li class="next"> + <a accesskey="n" href="cleanup.html" title= + "Очистка и сохранение временной системы">След.</a> + <p> + Очистка и сохранение временной системы + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + <h1 class="sect1"> + <a id="ch-tools-util-linux" name="ch-tools-util-linux"></a>7.12. + Util-linux-2.40.2 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Util-linux содержит различные служебные программы. Среди них + утилиты для работы с файловыми системами, консолями, разделами и + сообщениями. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.2 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">180 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 7.12.1. Установка пакета Util-linux + </h2> + <p> + FHS рекомендует использовать каталог <code class= + "filename">/var/lib/hwclock</code> вместо каталога <code class= + "filename">/etc</code> в качестве местоположения для файла + <code class="filename">adjtime</code>. Создайте этот каталог: + </p> + <pre class="userinput"><kbd class= + "command">mkdir -pv /var/lib/hwclock</kbd></pre> + <p> + Подготовьте Util-linux к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --libdir=/usr/lib \ + --runstatedir=/run \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --disable-liblastlog2 \ + --without-python \ + ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --docdir=/usr/share/doc/util-linux-2.40.2</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров настройки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>ADJTIME_PATH=/var/lib/hwclock/adjtime</code></em></span> + </dt> + <dd> + <p> + Этот параметр устанавливает расположение файла для записи + информации об аппаратных часах в соответствии с FHS. Он не + обязателен для временного инструментария, но предотвращает + создание файла в другом месте, где файл не будет перезаписан + или удален при финальной сборке пакета util-linux. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--libdir=/usr/lib</code></em></span> + </dt> + <dd> + <p> + Этот параметр гарантирует, что символические ссылки + <code class="filename">.so</code>, будут указывать на файл + общей библиотеки в том же каталоге (<code class= + "filename">/usr/lib</code>). + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--disable-*</code></em></span> + </dt> + <dd> + <p> + Этот параметр предотвращают появление предупреждений о сборке + компонентов, для которых требуются пакеты, отсутствующие или + еще не установленные в LFS. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-python</code></em></span> + </dt> + <dd> + <p> + Этот параметр отключает использование <span class= + "application">Python</span>. Это позволяет избежать попыток + создания ненужных привязок. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--runstatedir=/run</code></em></span> + </dt> + <dd> + <p> + Этот параметр устанавливает расположение сокета, + используемого <span class= + "command"><strong>uuidd</strong></span> и <code class= + "filename">libuuid</code>. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <p> + Подробная информация об этом пакете находится в <a class="xref" + href="../chapter08/util-linux.html#contents-utillinux" title= + "8.79.2. Содержимое пакета Util-linux">Раздел 8.79.2, + «Содержимое пакета Util-linux.»</a> + </p> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="texinfo.html" title="Texinfo-7.1">Пред.</a> + <p> + Texinfo-7.1 + </p> + </li> + <li class="next"> + <a accesskey="n" href="cleanup.html" title= + "Очистка и сохранение временной системы">След.</a> + <p> + Очистка и сохранение временной системы + </p> + </li> + <li class="up"> + <a accesskey="u" href="chapter07.html" title= + "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> + Наверх</a> + </li> + <li class="home"> + <a accesskey="h" href="../index.html" title= + "Линукс с нуля - Версия 12.2">Начало</a> + </li> + </ul> + </div> + </body> +</html> |