summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/LFS-BOOK.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
committerSn4il <sn4il@thedroth.rocks>2024-09-02 15:54:35 +0300
commit2203e654b389586650d553251b04544a34f189bf (patch)
tree0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/LFS-BOOK.html
parent200d528e55ca954d37769f4d143f10c9519b00e7 (diff)
downloadsn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz
sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/LFS-BOOK.html')
-rw-r--r--lfs-12.1-sysv/LFS-BOOK.html59294
1 files changed, 0 insertions, 59294 deletions
diff --git a/lfs-12.1-sysv/LFS-BOOK.html b/lfs-12.1-sysv/LFS-BOOK.html
deleted file mode 100644
index 439d3b0..0000000
--- a/lfs-12.1-sysv/LFS-BOOK.html
+++ /dev/null
@@ -1,59294 +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>
- Линукс с нуля
- </title>
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <style type="text/css">
- /*<![CDATA[*/
- /* Global settings */
- body {
- font-family: verdana, tahoma, helvetica, arial, sans-serif;
- text-align: left;
- background: #fff;
- color: #222;
- margin: 1em;
- padding: 0;
- font-size: 1em;
- line-height: 1.2em
- }
-
-
- /* Links */
- a:link { color: #22b; }
- a.ulink:link { font-weight: bold; color: #55f; }
- a:visited { color: #7e4988 ! important; }
- a:hover, a:focus { color: #d30e08 ! important; }
- a:active { color: #6b77b1 ! important;}
-
-
- /* Book titlepage */
- .book {
- margin: 0px auto;
- padding: 0 1em;
- }
-
- .book h1, .book .authorgroup, .book .copyright, .book .legalnotice .revhistory {
- background: #f5f6f7;
- margin: 0px auto;
- padding: .1em 1em;
- }
-
- .book hr {
- background: #dbddec;
- height: .3em;
- border: 0px;
- margin: 0;
- padding: 0;
- }
-
- div.dedication {
- padding-left: 1em;
- }
-
-
- /* Sections */
- div.sect1, div.appendix {
- padding-left: .3em;
- }
-
- .package, .kernel, .installation, .commands, .testing, .configuration, .content {
- padding: 0 .5em .2em 0;
- margin: 0;
- }
-
- .lfs .package {
- background: #f5f6f7;
- border-bottom: 0.2em solid #dbddec;
- padding-top: .1em;
- margin-top: 0;
- }
-
- .lfs .configuration {
- background: #fefefe;
- border-top: 0.2em solid #dbddec;
- }
-
- .lfs .content {
- background: #f5f6f7;
- border-top: 0.2em solid #dbddec;
- border-bottom: 0.2em solid #dbddec;
- padding-bottom: .1em;
- margin-bottom: 0;
- }
-
-
- /* Headers */
- h1, h2, h3, h4, h5, h6, b, .strong {
- color: #000;
- font-weight: bold;
- line-height: 1em;
- }
-
- h1 {
- font-size: 173%;
- text-align: center;
- }
-
- .book h1 {
- margin: 0;
- padding: 0.4em;
- }
-
- h1.title sup {
- font-size: small;
- }
-
- h2 {
- font-size: 144%;
- }
-
- .preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2 {
- background: #f5f6f7;
- border-top: .2em solid #dbddec;
- border-bottom: .2em solid #dbddec;
- margin-bottom: 1em;
- margin-top: 1em;
- padding: .4em;
- text-align: center;
- }
-
- .sect1 h2, .appendix h2 {
- margin-left: -.2em;
- }
-
- .wrap h2 {
- background: #f5f6f7;
- border-bottom: 0;
- margin-top: 1em;
- margin-bottom: 0;
- padding-top: .4em;
- }
-
- .book h2.subtitle {
- text-align: center;
- background: #dbddec;
- margin: 0;
- padding: 0.2em;
- }
-
- h3 {
- font-size: 120%;
- }
-
- .appendix h3 {
- font-size: 133%;
- margin-top: .8em;
- margin-bottom: 0.2em;
- }
-
- h4 {
- font-size: 110%;
- }
-
- .package h4, h5, h6 {
- font-size: 100%;
- font-style: italic;
- }
-
-
- /* TOC */
- div.toc ul, div.index ul, div.navheader ul, div.navfooter ul {
- list-style: none;
- }
-
- div.toc {
- padding-left: 1em;
- }
-
- li.preface, .part li.appendix {
- margin-left: 1em;
- }
-
- div.toc h3 {
- margin: 1em 0 .3em 0;
- }
-
- li.appendix h3, li.glossary h3, li.index h3 {
- margin: .5em
- }
-
- div.toc h4 {
- margin: .6em 0 .2em 0;
- }
-
- li.chapter h4 a {
- display: block;
- margin-bottom: .4em
- }
-
- .dummy {
- display: block;
- font-weight: bold;
- font-size: 110%;
- margin: .6em 0 .2em 0;
- }
-
-
- /* Index */
- .item {
- float: left;
- margin-right: 1em
- }
-
- .secitem {
- font-weight: normal;
- float: left;
- margin-right: 1em
- }
-
- .indexref {
- display: block;
- }
-
- .item + .indexref {
- margin-left: 20em;
- }
-
- .secitem + .indexref {
- margin-left: 19em;
- }
-
-
- /* Admonitions */
- div.admon h3 {
- padding-left: 2.5em;
- padding-top: 1em;
- }
-
- div.admon p {
- margin-left: .5em;
- }
-
- div.admon pre {
- margin: 0.5em 3em;
- }
-
- div.note, div.tip {
- background-color: #fffff6;
- border: 2px solid #dbddec;
- width: 90%;
- margin: .5em auto;
- }
-
- div.important, div.warning, div.caution {
- background-color: #fffff6;
- border: medium solid #400;
- width: 90%;
- margin: .5em auto;
- color: #600;
- }
-
- div.important h3, div.warning h3, div.caution h3 {
- color: #900;
- }
-
- div.important em, div.warning em, div.caution em {
- color: #000;
- font-weight: bold;
- }
-
-
- /* table */
- .table p.title {
- text-align: center;
- margin-top: 0;
- margin-bottom: .3em;
- }
-
- .table table {
- margin-left: auto;
- margin-right: auto;
- }
-
- .table table th, .table table td {
- padding: 0.2em 2em 0.2em 2em;
- text-align: left;
- }
-
- .revhistory {
- padding-left: 1em;
- }
-
- .revhistory th {
- line-height: 2em;
- text-align: left;
- }
-
- .revhistory td {
- padding-right: 1em;
- }
-
-
- /* variablelist as table */
- .variablelist table {
- width: auto;
- margin: 0 1em 0 1em;
- }
-
- .variablelist td {
- vertical-align: top;
- }
-
- .variablelist td span, td p {
- margin: 0.25em;
- }
-
- .variablelist td p {
- margin-top: 0;
- }
-
-
- /* variablelist as list */
- dl {
- padding-left: 1em
- }
-
- dt {
- font-weight: bold;
- margin-left: 1em;
- }
-
- dd {
- margin-bottom: .6em;
- margin-left: 1em;
- }
-
- dd p {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: 0;
- padding-bottom: 0;
- }
-
- div.materials dt {
- display: list-item;
- }
-
- div.materials dd {
- margin-left: 0;
- padding-left: 0;
- }
-
-
- /* segmentedlist */
- .appendix .segmentedlist {
- padding-left: 1em;
- }
-
- .package .seg {
- margin-bottom: 0em;
- margin-top: 0em;
- clear: left;
- }
-
- .content .seg {
- margin-bottom: .4em;
- margin-top: .4em;
- clear: left;
- }
-
- .segtitle {
- float: left;
- }
-
- .package .segbody, .appendix .segbody {
- display: block;
- padding-left: 14em;
- }
-
- .content .segbody {
- display: block;
- padding-left: 12em;
- }
-
-
- /* itemizedlist */
- ul {
- padding-left: 1em
- }
-
- .itemizedlist ul {
- margin-left: 1em
- }
-
- .itemizedlist li ul {
- margin-bottom: 1.2em;
- }
-
- .itemizedlist li ul li p {
- margin-top: .5em;
- margin-bottom: .5em;
- }
-
- .itemizedlist li ul li:first-child p:first-child {
- margin-top: -.6em;
- }
-
- ul.compact {
- list-style: none;
- }
-
- .blfs ul.compact {
- list-style: disc;
- }
-
- ul.compact li {
- margin: 0em;
- padding: 0em;
- }
-
- ul.compact li p {
- padding: 0.3em;
- margin: 0em;
- }
-
- .blfs ul.compact li p {
- background-color: #f0fff0;
- }
-
- /* orderedlist */
- ol {
- list-style: decimal;
- }
-
- ol ol {
- list-style: lower-alpha;
- }
-
- ol ol ol {
- list-style: lower-roman;
- }
-
- ol.compact li {
- margin: 0em;
- padding: 0em;
- }
-
- ol.compact li p {
- padding: 0.3em;
- margin: 0em;
- }
-
-
- /* Indented blocks */
- p, blockquote {
- padding-left: 1em;
- padding-right: 1em;
- }
-
-
- /* Monospaced elements */
- tt, code, kbd, pre, .command {
- font-family: monospace;
- }
-
- .systemitem {
- font-style: italic;
- }
-
- pre {
- background-color: #e5e5e5;
- border: 1px solid #050505;
- padding: .5em 1em;
- margin: 0 2em .5em 2em;
- font-weight: bold;
- }
-
- pre.userinput {
- color: #101310;
- }
-
- pre.root {
- color: #101310;
- border: 1px solid #11a;
- }
-
- pre.screen {
- color: #000;
- background-color: #e9e9e9;
- font-weight: normal;
- }
-
- .literal, .prompt {
- font-weight: normal;
- }
-
-
- /* Mixed tags */
- p.usernotes {
- margin-left: -1em;
- font-size: small;
- font-weight: bold;
- font-style: italic;
- }
-
- .underlined {
- text-decoration: underline;
- }
-
-
- /* Last edited info */
- p.updated {
- font-size: small;
- font-weight: bold;
- font-style: italic;
- }
-
-
- /* Special colored blocks */
- /* OrangeRed4 */
- .feature-ssp {
- color: #8B2500;
- }
-
- /* RoyalBlue3 */
- .feature-aslr {
- color: #3A5FCD;
- }
-
- /* NavyBlue */
- .feature-pax {
- color: #000080;
- }
-
- /* VioletRed */
- .feature-hardened_tmp {
- color: #d02090;
- }
-
- /* PaleTurquoise4 */
- .feature-warnings {
- color: #668b8b;
- }
-
- /* RosyBrown */
- .feature-misc {
- color: #bc8f8f;
- }
-
- /* Sienna*/
- .feature-blowfish {
- color: #8E6B23
- }
- /*]]>*/
- </style>
- </head>
- <body class="lfs" id="lfs-12.1">
- <div xml:lang="ru" class="book" lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="idm1" name="idm1"></a>Линукс с нуля
- </h1>
- </div>
- <div>
- <h2 class="subtitle">
- Версия 12.1
- </h2>
- </div>
- <div>
- <h2 class="subtitle">
- Дата публикации 1 марта 2024
- </h2>
- </div>
- <div>
- <div class="authorgroup">
- <div class="author">
- <h3 class="author">
- <span class="firstname">Создатель: Gerard</span>
- <span class="surname">Beekmans</span>
- </h3>
- </div>
- <div class="author">
- <h3 class="author">
- <span class="firstname">Главный редактор: Bruce</span>
- <span class="surname">Dubbs</span>
- </h3>
- </div>
- <div class="author">
- <h3 class="author">
- <span class="firstname">Автор перевода: Владимир</span>
- <span class="surname">Перцев</span>
- </h3>
- </div>
- </div>
- </div>
- <div>
- <p class="copyright">
- Авторские права © 1999-2024 Gerard Beekmans
- </p>
- </div>
- <div>
- <div class="legalnotice">
- <a id="idm19" name="idm19"></a>
- <p>
- Все права защищены.
- </p>
- <p>
- Эта книга распространяется на условиях <a class="xref" href=
- "#CC" title="F.1. Лицензия Creative Commons">Лицензия
- Creative Commons</a>.
- </p>
- <p>
- Инструкции для компьютера могут быть извлечены из книги на
- условиях <a class="xref" href="#MIT" title=
- "F.2. Лицензия MIT">Лицензия MIT</a>.
- </p>
- <p>
- <span class="trademark">Linux</span>® является
- зарегистрированным товарным знаком Линуса Торвальдса.
- </p>
- </div>
- </div>
- </div>
- <hr />
- </div>
- <div class="toc">
- <h3>
- Содержание
- </h3>
- <ul>
- <li class="preface">
- <h4>
- Предисловие
- </h4>
- <ul>
- <li class="sect1">
- <a href="#pre-foreword">Предисловие</a>
- </li>
- <li class="sect1">
- <a href="#pre-audience">Аудитория, на которую рассчитана эта
- книга</a>
- </li>
- <li class="sect1">
- <a href="#pre-architecture">Целевые архитектуры LFS</a>
- </li>
- <li class="sect1">
- <a href="#pre-prerequisites">Предпосылки</a>
- </li>
- <li class="sect1">
- <a href="#pre-standards">LFS и стандарты</a>
- </li>
- <li class="sect1">
- <a href="#pre-why">Информация о пакетах, используемых в этой
- книге</a>
- </li>
- <li class="sect1">
- <a href="#pre-typography">Оформление</a>
- </li>
- <li class="sect1">
- <a href="#pre-organization">Структура</a>
- </li>
- <li class="sect1">
- <a href="#pre-errata">Ошибки и рекомендации по
- безопасности</a>
- </li>
- </ul>
- </li>
- <li class="part">
- <h3>
- I. Введение
- </h3>
- <ul>
- <li class="chapter">
- <h4>
- 1. Введение
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-intro-how">Как собрать систему LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-intro-whatsnew">Что нового с момента
- последнего релиза</a>
- </li>
- <li class="sect1">
- <a href="#ch-intro-changelog">Журнал изменений</a>
- </li>
- <li class="sect1">
- <a href="#ch-intro-resources">Ресурсы</a>
- </li>
- <li class="sect1">
- <a href="#ch-intro-askforhelp">Помощь</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="part">
- <h3>
- II. Подготовка к сборке
- </h3>
- <ul>
- <li class="chapter">
- <h4>
- 2. Подготовка хост-системы
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-partitioning-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-hostreqs">Требования к
- хост-системе</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-stages">Этапы сборки системы
- LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-creatingpartition">Создание
- нового раздела</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-creatingfilesystem">Создание
- файловой системы на разделе</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-aboutlfs">Установка переменной
- $LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-partitioning-mounting">Монтирование нового
- раздела</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 3. Пакеты и патчи
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-materials-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-materials-packages">Все пакеты</a>
- </li>
- <li class="sect1">
- <a href="#ch-materials-patches">Необходимые патчи</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 4. Заключительный этап подготовки
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-preps-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-creatingminlayout">Создание
- ограниченной иерархии папок в файловой системе LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-preps-addinguser">Создание пользователя
- LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-preps-settingenviron">Настройка
- окружения</a>
- </li>
- <li class="sect1">
- <a href="#ch-preps-aboutsbus">О SBU (Стандартная единица
- времени сборки)</a>
- </li>
- <li class="sect1">
- <a href="#ch-preps-abouttestsuites">О наборах тестов</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="part">
- <h3>
- III. Сборка кросс-компилятора и набора временных инструментов
- </h3>
- <ul>
- <li class="preface">
- <h4>
- Важный предварительный материал
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-part3intro-intro">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-toolchaintechnotes">Технические
- примечания по сборочным инструментам</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-generalinstructions">Общие инструкции
- по компиляции</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 5. Сборка кросс-тулчейна
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-tools-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-binutils-pass1">Binutils-2.42 - Проход
- 1</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-gcc-pass1">GCC-13.2.0 - Проход 1</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-linux-headers">Заголовочные файлы
- Linux-6.7.4 API</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-glibc">Glibc-2.39</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-libstdcpp">Libstdc++ из GCC-13.2.0</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 6. Кросс-Компиляция временных инструментов
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-tools-introduction-cross">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-m4">M4-1.4.19</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-ncurses">Ncurses-6.4-20230520</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-bash">Bash-5.2.21</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-coreutils">Coreutils-9.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-diffutils">Diffutils-3.10</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-file">File-5.45</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-findutils">Findutils-4.9.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-gawk">Gawk-5.3.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-grep">Grep-3.11</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-gzip">Gzip-1.13</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-make">Make-4.4.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-patch">Patch-2.7.6</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-sed">Sed-4.9</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-tar">Tar-1.35</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-xz">Xz-5.4.6</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-binutils-pass2">Binutils-2.42 - Проход
- 2</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-gcc-pass2">GCC-13.2.0 - Проход 2</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 7. Вход в окружение Chroot и создание дополнительных
- временных инструментов
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-tools-introduction-chroot">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-changingowner">Смена владельца</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-kernfs">Подготовка виртуальных
- файловых систем ядра</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-chroot">Вход в окружение Chroot</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-creatingdirs">Создание каталогов</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-createfiles">Создание основных файлов
- и символических ссылок</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-gettext">Gettext-0.22.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-bison">Bison-3.8.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-perl">Perl-5.38.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-Python">Python-3.12.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-texinfo">Texinfo-7.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-util-linux">Util-linux-2.39.3</a>
- </li>
- <li class="sect1">
- <a href="#ch-tools-cleanup">Очистка и сохранение
- временной системы</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="part">
- <h3>
- IV. Сборка системы LFS
- </h3>
- <ul>
- <li class="chapter">
- <h4>
- 8. Установка базового системного программного обеспечения
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-system-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-pkgmgt">Управление пакетами</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-man-pages">Man-pages-6.06</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-iana-etc">Iana-Etc-20240125</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-glibc">Glibc-2.39</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-zlib">Zlib-1.3.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-bzip2">Bzip2-1.0.8</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-xz">Xz-5.4.6</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-zstd">Zstd-1.5.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-file">File-5.45</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-readline">Readline-8.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-m4">M4-1.4.19</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-bc">Bc-6.7.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-flex">Flex-2.6.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-tcl">Tcl-8.6.13</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-expect">Expect-5.45.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-dejagnu">DejaGNU-1.6.3</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-pkgconf">Pkgconf-2.1.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-binutils">Binutils-2.42</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gmp">GMP-6.3.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-mpfr">MPFR-4.2.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-mpc">MPC-1.3.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-attr">Attr-2.5.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-acl">Acl-2.3.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libcap">Libcap-2.69</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libxcrypt">Libxcrypt-4.4.36</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-shadow">Shadow-4.14.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gcc">GCC-13.2.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-ncurses">Ncurses-6.4-20230520</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-sed">Sed-4.9</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-psmisc">Psmisc-23.6</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gettext">Gettext-0.22.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-bison">Bison-3.8.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-grep">Grep-3.11</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-bash">Bash-5.2.21</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libtool">Libtool-2.4.7</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gdbm">GDBM-1.23</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gperf">Gperf-3.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-expat">Expat-2.6.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-inetutils">Inetutils-2.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-less">Less-643</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-perl">Perl-5.38.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-xml-parser">XML::Parser-2.47</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-intltool">Intltool-0.51.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-autoconf">Autoconf-2.72</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-automake">Automake-1.16.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-openssl">OpenSSL-3.2.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-kmod">Kmod-31</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libelf">Libelf из Elfutils-0.190</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libffi">Libffi-3.4.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-Python">Python-3.12.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-flit-core">Flit-Core-3.9.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-wheel">Wheel-0.42.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-setuptools">Setuptools-69.1.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-ninja">Ninja-1.11.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-meson">Meson-1.3.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-coreutils">Coreutils-9.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-check">Check-0.15.2</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-diffutils">Diffutils-3.10</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gawk">Gawk-5.3.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-findutils">Findutils-4.9.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-groff">Groff-1.23.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-grub">GRUB-2.12</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-gzip">Gzip-1.13</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-iproute2">IPRoute2-6.7.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-kbd">Kbd-2.6.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-libpipeline">Libpipeline-1.5.7</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-make">Make-4.4.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-patch">Patch-2.7.6</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-tar">Tar-1.35</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-texinfo">Texinfo-7.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-vim">Vim-9.1.0041</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-markupsafe">MarkupSafe-2.1.5</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-jinja2">Jinja2-3.1.3</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-udev">Udev из Systemd-255</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-man-db">Man-DB-2.12.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-procps">Procps-ng-4.0.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-util-linux">Util-linux-2.39.3</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-sysklogd">Sysklogd-1.5.1</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-sysvinit">Sysvinit-3.08</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-aboutdebug">Об отладочных
- символах</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-stripping">Удаление отладочных
- символов</a>
- </li>
- <li class="sect1">
- <a href="#ch-system-cleanup">Очистка</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 9. Системные настройки
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-config-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-udev">Взаимодействие с устройствами и
- модулями</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-symlinks">Управление устройствами</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-network">Настройка сети</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-usage">Настройка и использование
- загрузочных скриптов System V</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-locale">Настройка системной
- локали</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-inputrc">Создание файла
- /etc/inputrc</a>
- </li>
- <li class="sect1">
- <a href="#ch-config-shells">Создание файла
- /etc/shells</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 10. Делаем систему LFS загрузочной
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-bootable-introduction">Введение</a>
- </li>
- <li class="sect1">
- <a href="#ch-bootable-fstab">Создание файла
- /etc/fstab</a>
- </li>
- <li class="sect1">
- <a href="#ch-bootable-kernel">Linux-6.7.4</a>
- </li>
- <li class="sect1">
- <a href="#ch-bootable-grub">Использование GRUB для
- настройки процесса загрузки</a>
- </li>
- </ul>
- </li>
- <li class="chapter">
- <h4>
- 11. Заключение
- </h4>
- <ul>
- <li class="sect1">
- <a href="#ch-finish-theend">Заключение</a>
- </li>
- <li class="sect1">
- <a href="#ch-finish-getcounted">Вступите в ряды
- пользователей LFS</a>
- </li>
- <li class="sect1">
- <a href="#ch-finish-reboot">Перезагрузка системы</a>
- </li>
- <li class="sect1">
- <a href="#ch-finish-whatnow">Дополнительные ресурсы</a>
- </li>
- <li class="sect1">
- <a href="#afterlfs">Начало работы после сборки LFS</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="part">
- <h3>
- V. Приложения
- </h3>
- <ul>
- <li class="appendix">
- <a href="#appendixa">A. Сокращения и условные обозначения</a>
- </li>
- <li class="appendix">
- <a href="#appendixb">B. Благодарности</a>
- </li>
- <li class="appendix">
- <a href="#appendixc">C. Зависимости</a>
- </li>
- <li class="appendix">
- <a href="#scripts">D. Скрипты загрузки и настройки
- системы-20230728</a>
- <ul>
- <li class="sect1">
- <a href="#rc">/etc/rc.d/init.d/rc</a>
- </li>
- <li class="sect1">
- <a href="#init-functions">/lib/lsb/init-functions</a>
- </li>
- <li class="sect1">
- <a href="#mountvirtfs">/etc/rc.d/init.d/mountvirtfs</a>
- </li>
- <li class="sect1">
- <a href="#modules">/etc/rc.d/init.d/modules</a>
- </li>
- <li class="sect1">
- <a href="#udev">/etc/rc.d/init.d/udev</a>
- </li>
- <li class="sect1">
- <a href="#swap">/etc/rc.d/init.d/swap</a>
- </li>
- <li class="sect1">
- <a href="#setclock">/etc/rc.d/init.d/setclock</a>
- </li>
- <li class="sect1">
- <a href="#checkfs">/etc/rc.d/init.d/checkfs</a>
- </li>
- <li class="sect1">
- <a href="#mountfs">/etc/rc.d/init.d/mountfs</a>
- </li>
- <li class="sect1">
- <a href="#udev_retry">/etc/rc.d/init.d/udev_retry</a>
- </li>
- <li class="sect1">
- <a href="#cleanfs">/etc/rc.d/init.d/cleanfs</a>
- </li>
- <li class="sect1">
- <a href="#console">/etc/rc.d/init.d/console</a>
- </li>
- <li class="sect1">
- <a href="#localnet">/etc/rc.d/init.d/localnet</a>
- </li>
- <li class="sect1">
- <a href="#sysctlscript">/etc/rc.d/init.d/sysctl</a>
- </li>
- <li class="sect1">
- <a href="#sysklogd">/etc/rc.d/init.d/sysklogd</a>
- </li>
- <li class="sect1">
- <a href="#network">/etc/rc.d/init.d/network</a>
- </li>
- <li class="sect1">
- <a href="#sendsignals">/etc/rc.d/init.d/sendsignals</a>
- </li>
- <li class="sect1">
- <a href="#rebootscript">/etc/rc.d/init.d/reboot</a>
- </li>
- <li class="sect1">
- <a href="#haltscript">/etc/rc.d/init.d/halt</a>
- </li>
- <li class="sect1">
- <a href="#template">/etc/rc.d/init.d/template</a>
- </li>
- <li class="sect1">
- <a href="#modulessys">/etc/sysconfig/modules</a>
- </li>
- <li class="sect1">
- <a href="#createfiles">/etc/sysconfig/createfiles</a>
- </li>
- <li class="sect1">
- <a href=
- "#config-udev-retry">/etc/sysconfig/udev-retry</a>
- </li>
- <li class="sect1">
- <a href="#ifup">/sbin/ifup</a>
- </li>
- <li class="sect1">
- <a href="#ifdown">/sbin/ifdown</a>
- </li>
- <li class="sect1">
- <a href="#ipv4static">/lib/services/ipv4-static</a>
- </li>
- <li class="sect1">
- <a href="#ipv4route">/lib/services/ipv4-static-route</a>
- </li>
- </ul>
- </li>
- <li class="appendix">
- <a href="#rules">E. Правила настройки Udev</a>
- <ul>
- <li class="sect1">
- <a href="#lfsrules">55-lfs.rules</a>
- </li>
- </ul>
- </li>
- <li class="appendix">
- <a href="#Licenses">F. Лицензии LFS</a>
- <ul>
- <li class="sect1">
- <a href="#CC">Лицензия Creative Commons</a>
- </li>
- <li class="sect1">
- <a href="#MIT">Лицензия MIT</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li class="index">
- <h3>
- <a href="#idm20040">Предметный указатель</a>
- </h3>
- </li>
- </ul>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="preface" name="preface"></a>Предисловие
- </h1>
- </div>
- </div>
- </div>
- <div class="preface" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-foreword" name="pre-foreword"></a>Предисловие
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Мой путь к изучению и лучшему пониманию Linux начался еще в 1998
- году. Я только что установил свой первый дистрибутив Linux и
- быстро увлекся его концепцией и философией.
- </p>
- <p>
- У задачи может быть несколько вариантов решения. То же самое
- можно сказать и о дистрибутивах Linux. Многие из них существовали
- годами. Некоторые всё еще существуют, некоторые превратились во
- что-то иное, а некоторые остались только в наших воспоминаниях.
- Все они выполняют задачи по-разному, чтобы удовлетворить
- потребности своей целевой аудитории. И я понял - раз существует
- так много всевозможных способов добиться поставленной цели, мне
- больше не нужно ограничивать себя какой-то одной реализацией. До
- появления Linux мы просто мирились с проблемами в других
- операционных системах, поскольку у нас не было выбора. Что есть,
- то есть, нравилось нам это или нет. С Linux появился выбор. Если
- вам что-то не понравилось, вы можете изменить это, к тому же, это
- всецело поощряется.
- </p>
- <p>
- Я попробовал разные дистрибутивы, но так и не смог ни на одном
- остановиться. Oни были отличными системами сами по себе. Это
- больше не было вопросом правильно или неправильно. Это стало
- делом личного вкуса. При всём разнообразии выбора не было ни
- одного дистрибутива, который был для меня идеален. Поэтому я
- решил создать свою собственную Linux-систему, которая бы
- полностью соответствовала моим личным предпочтениям.
- </p>
- <p>
- Чтобы создать свою собственную систему, я решил скомпилировать
- всё из исходного кода вместо использования предварительно
- скомпилированных пакетов. Эта <span class="quote">«<span class=
- "quote">идеальная</span>»</span> Linux-система должна была иметь
- сильные стороны других систем без их недостатков. Сначала эта
- мысль казалась пугающей. Но я придерживался идеи, что такая
- система должна быть создана.
- </p>
- <p>
- Разобравшись с такими проблемами, как циклические зависимости и
- ошибки во время компиляции, я, наконец, создал собственную
- систему Linux. Она была полностью работоспособна и вполне
- пригодна для использования, как и любая другая Linux-система того
- времени. Но это было мое собственное творение. Было очень приятно
- собрать такую систему самому. Единственное, что было бы лучше,
- это создавать каждую часть программного обеспечения
- самостоятельно. Это было следующее, к чему я стремился
- </p>
- <p>
- Когда я поделился своими идеями и опытом с другими членами
- сообщества Linux, стал очевиден явный интерес к ним. Вскоре стало
- понятно, что такие специально созданные Linux-системы служат не
- только для удовлетворения специфических потребностей
- пользователей, но и являются идеальной возможностью для обучения
- программистов и системных администраторов, чтобы улучшить их
- (существующие) навыки работы с Linux. Так родился проект
- <span class="emphasis"><em>Linux From Scratch</em></span>.
- </p>
- <p>
- Книга Linux From Scratch является ядром этого проекта. В ней
- содержится информация и инструкции, необходимые для разработки и
- создания собственной системы. Хотя эта книга представляет шаблон,
- который позволит создать правильно работающую систему, вы можете
- изменить инструкции по своему усмотрению, что отчасти является
- важной частью этого проекта. Вы всё контролируете; мы просто
- протягиваем руку помощи, чтобы вы начали свой собственный путь.
- </p>
- <p>
- Я искренне надеюсь, что вы прекрасно проведете время, работая над
- своей собственной системой Linux From Scratch, и оцените ее
- многочисленные преимущества.
- </p>
- <div class="literallayout">
- <p>
- --<br />
- Gerard&nbsp;Beekmans<br />
- gerard AT linuxfromscratch D0T org
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-audience" name="pre-audience"></a>Аудитория, на
- которую рассчитана эта книга
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Есть много причин, по которым вы хотели бы прочитать эту книгу.
- Один из вопросов, который задают многие люди, звучит так:
- <span class="quote">«<span class="quote">Зачем тратить время на
- сборку Linux-системы вручную с нуля, если можно просто загрузить
- и установить существующую?</span>»</span>
- </p>
- <p>
- Одной из важных целей существования этого проекта является помощь
- в изучении того, как работает система Linux изнутри. Создание
- системы LFS помогает продемонстрировать, что заставляет работать
- Linux, как все работает вместе и зависит друг от друга. Одна из
- лучших вещей, которую может дать этот учебный опыт, — это
- возможность настроить систему Linux в соответствии с вашими
- уникальными потребностями.
- </p>
- <p>
- Другое ключевое преимущество - LFS предоставляет более глубокий
- контроль, не полагаясь на чью-либо реализацию Linux. С LFS вы
- находитесь в кресле водителя, и <span class=
- "emphasis"><em>Вы</em></span> управляете каждым аспектом системы.
- </p>
- <p>
- LFS позволяет создавать очень компактные системы Linux. При
- установке обычных дистрибутивов вам часто приходится
- устанавливать очень много программ, которые, вероятно, никогда не
- используются. Эти программы тратят ресурсы впустую. Вы можете
- возразить, что с сегодняшними жесткими дисками и процессорами
- такие ресурсы не имеют значения. Иногда, однако, вы все еще
- ограничены размером. Подумайте о загрузочных компакт-дисках,
- USB-накопителях и встраиваемых системах. Это области, в которых
- LFS может быть полезным.
- </p>
- <p>
- Ещё одним преимуществом собственной сборки Linux является
- безопасность. При компиляции каждого компонента системы из
- исходных кодов вы можете всё проверить и применить необходимые
- патчи. Больше не нужно ждать, когда кто-то другой скомпилирует
- пакет с требуемыми исправлениями. Если вы не изучите патч и не
- примените его самостоятельно, нет гарантий, что новый пакет будет
- собран корректно и устранит проблему.
- </p>
- <p>
- Цель Linux From Scratch — создать законченную и пригодную для
- использования систему базового уровня. Если вы не хотите
- создавать свою собственную систему Linux с нуля, вы, тем не
- менее, можете извлечь пользу из информации, содержащейся в этой
- книге.
- </p>
- <p>
- Есть много других веских причин для создания собственной системы
- LFS. В конце концов, образование, безусловно, является самой
- важной из них. Продолжая работать с LFS, вы откроете для себя
- силу, которую действительно приносят информация и знания.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-architecture" name="pre-architecture"></a>Целевые
- архитектуры LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Основными целевыми архитектурами LFS являются процессоры
- AMD/Intel x86 (32-разрядные) и x86_64 (64-разрядные). Однако,
- известно, что инструкции, приведенные в этой книге, с некоторыми
- изменениями работают с процессорами Power PC и ARM. Для создания
- системы, использующей один из этих процессоров, основным
- предварительным условием, в дополнение к описанным на следующей
- странице, является существующая система Linux, например,
- собранная ранее LFS, Ubuntu, Red Hat/Fedora, SuSE или другой
- дистрибутив, ориентированный на имеющуюся у вас архитектуру.
- Также обратите внимание, что 32-разрядный дистрибутив можно
- установить и использовать в качестве хост-системы на 64-разрядном
- компьютере AMD/Intel.
- </p>
- <p>
- При сборке LFS выигрыш от сборки на 64-битной системе по
- сравнению с 32-битной системой минимален. Например, в тестовой
- сборке LFS-9.1 в системе на базе процессора Core i7-4790 с
- использованием 4 ядер были получены следующие статистические
- данные:
- </p>
- <pre class="screen"><code class=
- "computeroutput">Архитектура Время сборки Размер сборки
-x86 239.9 минут 3.6 ГБ
-x64 233.2 минут 4.4 ГБ</code></pre>
- <p>
- Как видите, на том же оборудовании 64-битная сборка всего на 3%
- быстрее и на 22% больше, чем 32-битная. Если вы планируете
- использовать LFS в качестве LAMP-сервера или брандмауэра,
- 32-разрядной сборки может быть достаточно. С другой стороны, для
- сборки и/или запуска некоторых пакетов в BLFS теперь требуется
- более 4 ГБ ОЗУ, поэтому, если вы планируете использовать LFS в
- качестве настольной ОС, авторы LFS рекомендуют собирать 64-битную
- систему.
- </p>
- <p>
- По умолчанию 64-разрядная сборка LFS, считается <span class=
- "quote">«<span class="quote">чистой</span>»</span> 64-разрядной
- системой. То есть она поддерживает только 64-разрядные
- исполняемые файлы. Сборка <span class="quote">«<span class=
- "quote">multilib</span>»</span> системы требует компиляции многих
- программ дважды - один раз для 32-битной и один раз для
- 64-битной. Напрямую в книге данная опция не поддерживается,
- потому что это будет только мешать образовательной цели этой
- книги, предлагающей инструкции, необходимые для сборки базовой
- системы. Некоторые редакторы LFS/BLFS поддерживают ответвление
- LFS для multilib, которое доступно по адресу <a class="ulink"
- href=
- "https://book.linuxfromscratch.ru/12.1-ml/systemv">https://book.linuxfromscratch.ru/12.1-ml/systemv</a>.
- Но это более продвинутая тема.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-prerequisites" name=
- "pre-prerequisites"></a>Предпосылки
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Создание системы LFS — непростая задача. Это требует
- определенного уровня знаний системного администрирования Unix для
- решения проблем и правильного выполнения перечисленных команд. В
- частности, как абсолютный минимум, Вы должны уметь пользоваться
- командной оболочкой для копирования или перемещения файлов и
- каталогов, просмотра содержимого каталогов и файлов и изменения
- текущего каталога. Также ожидается, что у вас есть достаточные
- знания об использовании и установке программного обеспечения в
- Linux.
- </p>
- <p>
- Поскольку книга LFS предполагает наличие <span class=
- "emphasis"><em>хотя бы этого</em></span> базового уровня навыков,
- различные форумы поддержки LFS вряд ли смогут предоставить вам
- большую помощь в этих вопросах. Вы обнаружите, что ваши вопросы,
- касающиеся таких базовых знаний, скорее всего, останутся без
- ответа (или вас просто направят к списку основных материалов для
- предварительного ознакомления).
- </p>
- <p>
- Перед созданием системы LFS мы настоятельно рекомендуем прочитать
- следующие статьи:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- HOWTO по сборке программного обеспечения <a class="ulink"
- href=
- "https://tldp.org/HOWTO/Software-Building-HOWTO.html">https://tldp.org/HOWTO/Software-Building-HOWTO.html</a>
- </p>
- <p>
- Это исчерпывающее руководство по сборке и установке
- <span class="quote">«<span class=
- "quote">универсальных</span>»</span> программ Unix под
- Linux. Несмотря на то что руководство написано достаточно
- давно, оно по-прежнему дает хороший обзор основных методов,
- применяемых для сборки и установки программного
- обеспечения.
- </p>
- </li>
- <li class="listitem">
- <p>
- Руководство для начинающих по установке из исходников
- <a class="ulink" href=
- "https://moi.vonos.net/linux/beginners-installing-from-source/">
- https://moi.vonos.net/linux/beginners-installing-from-source/</a>
- </p>
- <p>
- В этом руководстве содержится хороший обзор основных
- навыков и методов, необходимых для сборки программ из
- исходного кода
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-standards" name="pre-standards"></a>LFS и
- стандарты
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Структура LFS максимально соответствует стандартам Linux.
- Первичными стандартами являются:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "https://pubs.opengroup.org/onlinepubs/9699919799/">POSIX.1-2008</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">
- Filesystem Hierarchy Standard (FHS) Version 3.0</a>
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "https://refspecs.linuxfoundation.org/lsb.shtml">Linux
- Standard Base (LSB) Version 5.0 (2015)</a>
- </p>
- <p>
- LSB имеет четыре отдельных стандарта: Core, Desktop,
- Runtime Languages и Imaging. Некоторые части спецификаций
- Core и Desktop зависят от архитектуры. Есть также две
- области не являющиеся обязательными: Gtk3 и Graphics. LFS
- старается соответствовать стандартам LSB, для архитектур
- IA32 (32-bit x86) или AMD64 (x86_64), рассмотренных в
- предыдущем разделе.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Многие не согласны с требованиями LSB. Основные цели
- стандартов - быть уверенным в том, что проприетарное ПО
- будет правильно установлено и сможет корректно работать
- на совместимой системе. Поскольку в LFS установка
- программ идёт из исходных кодов, у пользователя имеется
- полный контроль над тем, какие пакеты ему необходимы, вы
- можете не устанавливать некоторые пакеты, определяемые в
- LSB.
- </p>
- </div>
- </li>
- </ul>
- </div>
- <p>
- Создать законченную систему, которая пройдет сертификационные
- тесты LSB <span class="quote">«<span class="quote">с
- нуля</span>»</span>, возможно, но этого нельзя сделать без
- установки множества дополнительных пакетов, которые выходят за
- рамки этой книги. Однако, инструкции по их установке можно найти
- в книге BLFS.
- </p>
- <div class="variablelist">
- <h4>
- <a id="idm99" name="idm99"></a>Пакеты LFS, которые необходимы
- для удовлетворения требований LSB
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Core:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Bash, Bc, Binutils, Coreutils, Diffutils, File,
- Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses,
- Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Desktop:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Runtime Languages:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Perl, Python
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Imaging:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB Gtk3
- и LSB Graphics (Необязательные):</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm126" name="idm126"></a>Пакеты, поставляемые BLFS,
- необходимые для удовлетворения требований LSB
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Core:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- At, Batch (часть At), Cpio, Ed, Fcrontab, LSB-Tools,
- NSPR, NSS, PAM, Pax, Sendmail (или Postfix, или Exim),
- time
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Desktop:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Alsa, ATK, Cairo, Desktop-file-utils, Freetype,
- Fontconfig, Gdk-pixbuf, Glib2, GTK+2,
- Icon-naming-utils, Libjpeg-turbo, Libpng, Libtiff,
- Libxml2, MesaLib, Pango, Xdg-utils, Xorg
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Runtime Languages:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Libxml2, Libxslt
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Imaging:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- CUPS, Cups-filters, Ghostscript, SANE
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB Gtk3
- и LSB Graphics (Необязательные):</em></span></span>
- </p>
- </td>
- <td>
- <p>
- GTK3+
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm153" name="idm153"></a>Пакеты, не поставляемые LFS
- или BLFS, необходимые для удовлетворения требований LSB
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Core:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Desktop:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Qt4 (но предоставляется Qt5)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Runtime Languages:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB
- Imaging:</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class="emphasis"><em>LSB Gtk3
- и LSB Graphics (Необязательные):</em></span></span>
- </p>
- </td>
- <td>
- <p>
- Нет
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-why" name="pre-why"></a>Информация о пакетах,
- используемых в этой книге
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Целью LFS является создание законченной и пригодной для
- использования базовой системы, которая содержит все пакеты,
- необходимые для её функционирования, состоящую при этом из
- относительно небольшого набора программ, и возможности которой
- можно расширять в зависимости от потребностей пользователя. Это
- не означает, что LFS является самой маленькой из возможных
- систем. В систему включено несколько важных пакетов, которые не
- являются обязательными. Приведенный ниже список объясняет почему
- в книгу включен тот или иной пакет.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Acl
- </p>
- <p>
- Access Control List или ACL — список управления доступом,
- который определяет, кто или что может получать доступ к
- объекту (программе, процессу или файлу), и какие именно
- операции разрешено или запрещено выполнять субъекту
- (пользователю, группе пользователей).Данный пакет содержит
- утилиты для администрирования списков управления доступом,
- которые используются для определения дискреционных прав
- доступа к файлам и каталогам.
- </p>
- </li>
- <li class="listitem">
- <p>
- Attr
- </p>
- <p>
- Этот пакет содержит программы для управления расширенными
- атрибутами объектов файловой системы.
- </p>
- </li>
- <li class="listitem">
- <p>
- Autoconf
- </p>
- <p>
- Этот пакет содержит программы для создания сценариев
- оболочки, которые могут выполнять автоматическую настройку
- исходного кода из шаблона разработчика. Он часто необходим
- для повторной компиляции пакета после обновления процедур
- сборки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Automake
- </p>
- <p>
- Этот пакет содержит программы для создания Make-файлов из
- шаблона. Он также необходим для повторной компиляции пакета
- после обновления процедур сборки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Bash
- </p>
- <p>
- Этот пакет удовлетворяет требования LSB по предоставлению
- интерфейса Bourne Shell для системы. Он был выбран среди
- других пакетов оболочки из-за его повсеместного
- использования и широких возможностей.
- </p>
- </li>
- <li class="listitem">
- <p>
- Bc
- </p>
- <p>
- Этот пакет предоставляет язык числовой обработки
- произвольной точности. Он необходимым для сборки ядра Linux
- </p>
- </li>
- <li class="listitem">
- <p>
- Binutils
- </p>
- <p>
- Этот пакет содержит компоновщик, ассемблер и другие
- инструменты для работы с объектными файлами. Программы в
- этом пакете необходимы для компиляции большинства пакетов в
- системе LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Bison
- </p>
- <p>
- Этот пакет содержит GNU-версию yacc (Yet Another Compiler
- Compiler), необходимого для сборки некоторых пакетов в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Bzip2
- </p>
- <p>
- Этот пакет содержит программы для сжатия и распаковки
- файлов. Используется для распаковки множества пакетов LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Check
- </p>
- <p>
- Этот пакет содержит тестовую обвязку для других программ.
- </p>
- </li>
- <li class="listitem">
- <p>
- Coreutils
- </p>
- <p>
- Этот пакет содержит ряд программ для просмотра файлов и
- каталогов, и управления ими. Эти программы необходимы для
- управления файлами через командную строку и для сборки
- каждого пакета в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- DejaGNU
- </p>
- <p>
- Этот пакет предоставляет фреймворк для тестирования других
- программ.
- </p>
- </li>
- <li class="listitem">
- <p>
- Diffutils
- </p>
- <p>
- Этот пакет содержит программы, которые показывают различия
- между файлами или каталогами. Их можно использовать для
- создания патчей, а также они применяются во многих
- процедурах сборки
- </p>
- </li>
- <li class="listitem">
- <p>
- E2fsprogs
- </p>
- <p>
- Этот пакет содержит утилиты для работы с файловыми
- системами ext2, ext3 и ext4. Это наиболее распространенные
- и тщательно протестированные файловые системы,
- поддерживаемые Linux
- </p>
- </li>
- <li class="listitem">
- <p>
- Expat
- </p>
- <p>
- Этот пакет содержит небольшую библиотеку разбора XML.Она
- необходима для модуля Perl XML::Parser.
- </p>
- </li>
- <li class="listitem">
- <p>
- Expect
- </p>
- <p>
- Этот пакет содержит инструменты для автоматизации и
- тестирования, и является расширением к скриптовому языку
- Tcl, для многих интерактивных приложений. Он обычно
- используется для тестирования других пакетов.
- </p>
- </li>
- <li class="listitem">
- <p>
- File
- </p>
- <p>
- Этот пакет содержит утилиту для определения типа файла или
- файлов. Некоторым пакетам она нужна в сценариях сборки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Findutils
- </p>
- <p>
- Этот пакет предоставляет программы для поиска файлов. Он
- используется во многих сценариях сборки пакетов.
- </p>
- </li>
- <li class="listitem">
- <p>
- Flex
- </p>
- <p>
- Этот пакет содержит утилиту для генерации программ,
- распознающих шаблоны в тексте. Это версия GNU программы lex
- (лексический анализатор). Пакет необходим для сборки
- некоторых пакетов LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Gawk
- </p>
- <p>
- Этот пакет содержит программы для работы с текстовыми
- файлами. Это GNU версия awk (Aho-Weinberg-Kernighan). Он
- используется во многих сценариях сборки пакетов.
- </p>
- </li>
- <li class="listitem">
- <p>
- GCC
- </p>
- <p>
- Это коллекция компиляторов Gnu. Он содержит компиляторы C и
- C++, а также несколько других компиляторов, поддержка
- которых не предусмотрена в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- GDBM
- </p>
- <p>
- Этот пакет содержит библиотеку GNU Database Manager. Он
- используется пакетом Man-DB
- </p>
- </li>
- <li class="listitem">
- <p>
- Gettext
- </p>
- <p>
- Этот пакет содержит утилиты и библиотеки для
- интернационализации и локализации многочисленных пакетов.
- </p>
- </li>
- <li class="listitem">
- <p>
- Glibc
- </p>
- <p>
- Этот пакет содержит основную библиотеку C. Программы Linux
- не будут работать без неё.
- </p>
- </li>
- <li class="listitem">
- <p>
- GMP
- </p>
- <p>
- Этот пакет содержит математические библиотеки,
- предоставляющие полезные функции для вычислений с плавающей
- точкой. Требуется для сборки GCC.
- </p>
- </li>
- <li class="listitem">
- <p>
- Gperf
- </p>
- <p>
- Этот пакет содержит программу, которая генерирует идеальную
- хеш-функцию из набора ключей. Необходим для пакета
- <span class="phrase">Udev</span> .
- </p>
- </li>
- <li class="listitem">
- <p>
- Grep
- </p>
- <p>
- Этот пакет содержит программы для поиска по файлам. Пакет
- используется в скриптах сборки большинства пакетов.
- </p>
- </li>
- <li class="listitem">
- <p>
- Groff
- </p>
- <p>
- Этот пакет содержит программы для обработки и
- форматирования текста. Одной из важнейших функций этих
- программ является форматирование man страниц.
- </p>
- </li>
- <li class="listitem">
- <p>
- GRUB
- </p>
- <p>
- Это загрузчик операционной системы (GRand Unified
- Bootloader). Самый гибкий из нескольких доступных
- загрузчиков.
- </p>
- </li>
- <li class="listitem">
- <p>
- Gzip
- </p>
- <p>
- Этот пакет содержит программы для сжатия и распаковки
- файлов. Он необходим для распаковки множества пакетов в
- LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Iana-etc
- </p>
- <p>
- Этот пакет предоставляет данные для сетевых служб и
- протоколов. Он необходим для обеспечения правильных сетевых
- возможностей.
- </p>
- </li>
- <li class="listitem">
- <p>
- Inetutils
- </p>
- <p>
- Этот пакет содержит программы для базового сетевого
- администрирования.
- </p>
- </li>
- <li class="listitem">
- <p>
- Intltool
- </p>
- <p>
- Этот пакет содержит инструменты для извлечения переводимых
- строк из исходных файлов.
- </p>
- </li>
- <li class="listitem">
- <p>
- IProute2
- </p>
- <p>
- Этот пакет содержит программы для базовой и расширенной
- работы в сетях IPv4 и IPv6. Он был выбран среди других
- распространенных пакетов сетевых инструментов (net-tools)
- из-за его поддержки IPv6.
- </p>
- </li>
- <li class="listitem">
- <p>
- Kbd
- </p>
- <p>
- Этот пакет содержит таблицы раскладок, утилиты управления
- клавиатурой для неамериканских клавиатур, кроме этого, с
- ним поставляется большой набор консольных шрифтов.
- </p>
- </li>
- <li class="listitem">
- <p>
- Kmod
- </p>
- <p>
- Этот пакет содержит программы, необходимые для
- администрирования модулей ядра Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Less
- </p>
- <p>
- Этот пакет содержит очень хороший просмотрщик текстовых
- файлов, который позволяет использовать прокрутку верх/вниз
- при просмотре. Многие пакеты используют его для
- постраничного вывода.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libcap
- </p>
- <p>
- Этот пакет реализует интерфейсы пользовательского
- пространства для возможностей POSIX 1003.1e, доступных в
- ядре Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libelf
- </p>
- <p>
- Проект elfutils предоставляет библиотеки и инструменты для
- файлов ELF и данных DWARF. Большинство утилит в этом пакете
- доступны в других пакетах, но эта библиотека необходима для
- сборки ядра Linux с использованием стандартной (и наиболее
- эффективной) конфигурации.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libffi
- </p>
- <p>
- Этот пакет реализует переносимый программный интерфейс
- высокого уровня для различных соглашений о вызовах.
- Некоторые программы могут не знать во время компиляции,
- какие аргументы должны быть переданы в функцию. Например,
- интерпретатору во время выполнения может быть сообщено о
- количестве и типах аргументов, используемых для вызова
- данной функции. Libffi можно использовать как мост от
- интерпретатора к скомпилированному коду.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libpipeline
- </p>
- <p>
- Пакет Libpipeline содержит библиотеку для гибкого и
- удобного управления конвейерами подпроцессов. Она
- необходима для Man-DB.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libtool
- </p>
- <p>
- Этот пакет содержит сценарий поддержки универсальной
- библиотеки GNU. Он объединяет сложность использования общих
- библиотек в согласованный переносимый интерфейс. Библиотека
- необходима наборам тестов в других пакетах LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Libxcrypt
- </p>
- <p>
- Этот пакет предоставляет библиотеку <code class=
- "systemitem">libcrypt</code>, необходимую различным пакетам
- (в частности, Shadow) для хеширования паролей. Он заменяет
- устаревшую реализацию <code class=
- "systemitem">libcrypt</code> в Glibc.
- </p>
- </li>
- <li class="listitem">
- <p>
- Linux Kernel
- </p>
- <p>
- Этот пакет является ядром операционной системой.
- </p>
- </li>
- <li class="listitem">
- <p>
- M4
- </p>
- <p>
- Этот пакет содержит текстовый макропроцессор, полезный в
- качестве инструмента сборки для других программ.
- </p>
- </li>
- <li class="listitem">
- <p>
- Make
- </p>
- <p>
- Этот пакет содержит программу для управления сборкой
- пакетов. При сборке она необходима почти для каждого пакета
- в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Man-DB
- </p>
- <p>
- Этот пакет содержит программы для поиска и просмотра
- справочных страниц. Он был выбран вместо пакета
- <span class="application">man</span> из-за превосходных
- возможностей интернационализации. Содержит man.
- </p>
- </li>
- <li class="listitem">
- <p>
- Man-pages
- </p>
- <p>
- Этот пакет представляет собой содержимое основных
- справочных страниц Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Meson
- </p>
- <p>
- Этот пакет предоставляет программный инструмент для
- автоматизации создания программного обеспечения. Основная
- цель Meson — свести к минимуму количество времени, которое
- разработчики программного обеспечения должны тратить на
- настройку своей системы сборки. Требуется для сборки
- Systemd, а также многих пакетов BLFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- MPC
- </p>
- <p>
- Этот пакет содержит функции для арифметики комплексных
- чисел. Необходим GCC.
- </p>
- </li>
- <li class="listitem">
- <p>
- MPFR
- </p>
- <p>
- Этот пакет содержит функции для арифметики с произвольной
- точностью. Необходим GCC.
- </p>
- </li>
- <li class="listitem">
- <p>
- Ninja
- </p>
- <p>
- Этот пакет предоставляет небольшую систему сборки,
- ориентированную на скорость. Он предназначен для того,
- чтобы его входные файлы генерировались системой сборки
- более высокого уровня, и для максимально быстрого запуска
- сборок. Необходим для Meson.
- </p>
- </li>
- <li class="listitem">
- <p>
- Ncurses
- </p>
- <p>
- Этот пакет содержит библиотеки для независимой от терминала
- обработки символьных экранов. Он часто используется для
- управления курсором в меню. Необходим ряду пакетов в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Openssl
- </p>
- <p>
- Этот пакет содержит инструменты управления и библиотеки,
- относящиеся к криптографии. Они предоставляют
- криптографические функций другим пакетам, включая ядро
- Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Patch
- </p>
- <p>
- Этот пакет содержит программу для изменения или создания
- файлов путем применения файла <span class=
- "emphasis"><em>patch</em></span>, обычно создаваемого
- программой <span class="application">diff</span>. Он
- необходим процедуре сборки для некоторых пакетов LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Perl
- </p>
- <p>
- Этот пакет является интерпретатором языка PERL. Он
- необходим для установки и тестирования некоторых пакетов
- LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Pkgconf
- </p>
- <p>
- Этот пакет содержит программу, которая помогает настраивать
- флаги компилятора и компоновщика для библиотек разработки.
- Программа может быть использована в качестве замены
- <span class="command"><strong>pkg-config</strong></span>,
- который необходим системе сборки многих пакетов. Он
- поддерживается более активно и развивается немного быстрее,
- чем оригинальный пакет Pkg-config.
- </p>
- </li>
- <li class="listitem">
- <p>
- Procps-NG
- </p>
- <p>
- Этот пакет содержит программы для мониторинга процессов.
- Набор полезен для системного администрирования, а также
- используются загрузочными сценариями LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Psmisc
- </p>
- <p>
- Этот пакет содержит программы для отображения информации о
- запущенных процессах. Этот набор программ полезен для
- системного администрирования.
- </p>
- </li>
- <li class="listitem">
- <p>
- Python 3
- </p>
- <p>
- Этот пакет предоставляет интерпретируемый язык
- программирования, философия которого делает упор на
- удобочитаемость кода.
- </p>
- </li>
- <li class="listitem">
- <p>
- Readline
- </p>
- <p>
- Этот пакет представляет собой набор библиотек, предлагающих
- возможности редактирования командной строки и средства для
- работы с историей команд. Используется командным
- интерпретатором Bash.
- </p>
- </li>
- <li class="listitem">
- <p>
- Sed
- </p>
- <p>
- Этот пакет позволяет редактировать текст, не открывая его в
- текстовом редакторе. Он необходим сценариям настройки
- многих пакетов LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Shadow
- </p>
- <p>
- Этот пакет содержит программы для безопасной обработки
- паролей.
- </p>
- </li>
- <li class="listitem">
- <p>
- Sysklogd
- </p>
- <p>
- Этот пакет содержит программы для регистрации системных
- сообщений, которые генерируются ядром или процессами демона
- при возникновении необычных событий.
- </p>
- </li>
- <li class="listitem">
- <p>
- Sysvinit
- </p>
- <p>
- Этот пакет содержит систему инициализации <span class=
- "application">init</span>, родительской элемент всех
- остальных процессов в работающей системе Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Udev
- </p>
- <p>
- Этот пакет представляет собой диспетчер устройств. Он
- контролирует разрешения, имена и символические ссылки
- устройств в каталоге /dev, когда устройства добавляются или
- удаляются из системы.
- </p>
- </li>
- <li class="listitem">
- <p>
- Tar
- </p>
- <p>
- Этот пакет предоставляет возможность архивирования и
- извлечения практически всех пакетов, используемых в LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Tcl
- </p>
- <p>
- Этот пакет содержит командный язык инструментов,
- используется во многих наборах тестов.
- </p>
- </li>
- <li class="listitem">
- <p>
- Texinfo
- </p>
- <p>
- Этот пакет предоставляет программы для чтения, записи и
- преобразования информационных страниц. Используется в
- процедурах установки многих пакетов LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Util-linux
- </p>
- <p>
- Этот пакет содержит различные служебные программы. Среди
- них утилиты для работы с файловыми системами, консолями,
- разделами и сообщениями.
- </p>
- </li>
- <li class="listitem">
- <p>
- Vim
- </p>
- <p>
- Этот пакет содержит редактор. Его выбрали из-за
- совместимости с классическим редактором vi и огромного
- количества возможностей. Редактор является очень личным
- выбором для каждого пользователя. По желанию можно заменить
- любым другим редактором.
- </p>
- </li>
- <li class="listitem">
- <p>
- Wheel
- </p>
- <p>
- Этот пакет содержит модуль Python, который представляет
- собой эталонную реализацию механизма упаковки Python.
- </p>
- </li>
- <li class="listitem">
- <p>
- XML::Parser
- </p>
- <p>
- Этот пакет представляет собой модуль Perl, который
- взаимодействует с Expat.
- </p>
- </li>
- <li class="listitem">
- <p>
- XZ Utils
- </p>
- <p>
- Этот пакет содержит программы для сжатия и распаковки
- файлов. Он обеспечивает высокое сжатие и используется для
- распаковки пакетов в формате XZ или LZMA.
- </p>
- </li>
- <li class="listitem">
- <p>
- Zlib
- </p>
- <p>
- Этот пакет содержит процедуры сжатия и распаковки,
- используемые некоторыми программами.
- </p>
- </li>
- <li class="listitem">
- <p>
- Zstd
- </p>
- <p>
- Этот пакет содержит процедуры сжатия и распаковки,
- используемые некоторыми программами. Он обеспечивает
- высокие коэффициенты сжатия и очень широкий диапазон
- компромиссов между сжатием и скоростью.
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-typography" name="pre-typography"></a>Оформление
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Чтобы облегчить понимание, в этой книге используются условные
- обозначения. Этот раздел содержит примеры оформления,
- используемые в Linux From Scratch.
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr</kbd></pre>
- <p>
- Такое оформление предназначено для ввода именно так, как
- показано, если иное не сказано в тексте рядом. Это оформление
- также используется в разделах пояснений, чтобы указать, на какую
- команду ссылается.
- </p>
- <p>
- В некоторых случаях логическая строка расширяется до двух или
- более физических строк с обратной косой чертой в конце строки.
- </p>
- <pre class="userinput"><kbd class=
- "command">CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
- --prefix=/tools --disable-nls --disable-werror</kbd></pre>
- <p>
- Обратите внимание, что за обратной косой чертой должен следовать
- перевод строки. Другие символы, такие как пробелы или символы
- табуляции, приведут к неправильным результатам.
- </p>
- <pre class="screen"><code class=
- "computeroutput">install-info: unknown option '--dir-file=/mnt/lfs/usr/info/dir'</code></pre>
- <p>
- Такое оформление (текст фиксированной ширины) показывает вывод на
- экран, как правило, в результате выполнения команд. Этот формат
- также используется для отображения имен файлов, таких как
- <code class="filename">/etc/ld.so.conf</code>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Пожалуйста, настройте свой браузер для отображения текста
- фиксированной ширины с хорошим моноширинным шрифтом, с помощью
- которого вы сможете четко различать символы <code class=
- "literal">Il1</code> или <code class="literal">O0</code>.
- </p>
- </div>
- <p>
- <span class="emphasis"><em>Акцент</em></span>
- </p>
- <p>
- Эта форма текста используется в книге для нескольких целей. Его
- основная цель — подчеркнуть важные моменты.
- </p>
- <p>
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/">https://mirror.linuxfromscratch.ru/</a>
- </p>
- <p>
- Этот формат используется для гиперссылок как на сайт сообщества
- LFS, так и на внешние ресурсы. Может включать справочную
- информацию, места загрузки и веб-сайты.
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; $LFS/etc/group &lt;&lt; "EOF"
-<code class="literal">root:x:0:
-bin:x:1:
-......</code>
-EOF</kbd></pre>
- <p>
- Этот формат используется при создании файлов конфигурации. Первая
- команда указывает системе создать файл <code class=
- "filename">$LFS/etc/group</code> из всего, что введено далее,
- пока не встретится последовательность End Of File (EOF). Поэтому
- весь этот раздел обычно печатается как есть.
- </p>
- <p>
- <em class="replaceable"><code>&lt;ЗАМЕНЯЕМЫЙ
- ТЕКСТ&gt;</code></em>
- </p>
- <p>
- Этот формат используется для текста, который не должен быть
- напечатан так, как отображается, или для операций копирования и
- вставки.
- </p>
- <p>
- <em class="replaceable"><code>[НЕОБЯЗАТЕЛЬНЫЙ ТЕКСТ]</code></em>
- </p>
- <p>
- Этот формат используется для текста, который является
- необязательным.
- </p>
- <p>
- <a class="ulink" href=
- "https://man.archlinux.org/man/passwd.5">passwd(5)</a>
- </p>
- <p>
- Этот формат используется для ссылки на определенную страницу
- руководства (man). Число в скобках указывает на конкретный раздел
- внутри руководств. Например, у <span class=
- "command"><strong>passwd</strong></span> есть две справочные
- страницы. В соответствии с инструкциями по установке LFS эти две
- справочные страницы будут расположены в <code class=
- "filename">/usr/share/man/man1/passwd.1</code> и <code class=
- "filename">/usr/share/man/man5/passwd.5</code>. Когда в книге
- используется <a class="ulink" href=
- "https://man.archlinux.org/man//passwd.5">passwd(5)</a>, имеется
- в виду конкретно <code class=
- "filename">/usr/share/man/man5/passwd.5</code>. <span class=
- "command"><strong>man passwd</strong></span> напечатает первую
- найденную справочную страницу, совпадающую с <span class=
- "quote">«<span class="quote">passwd</span>»</span> - это будет
- <code class="filename">/usr/share/man/man1/passwd.1</code>. В
- этом примере вам нужно будет запустить <span class=
- "command"><strong>man 5 passwd</strong></span>, чтобы прочитать
- указанную страницу. Обратите внимание, что большинство справочных
- страниц не имеют повторяющихся страниц в разных разделах. Поэтому
- обычно достаточно <span class="command"><strong>man <em class=
- "replaceable"><code>&lt;имя
- программы&gt;</code></em></strong></span>. В книге LFS ссылки на
- справочные страницы также являются гиперссылками, поэтому нажатие
- на такую ссылку откроет справочную страницу, в формате HTML, со
- <a class="ulink" href="https://man.archlinux.org/">страниц
- руководства Arch Linux</a>.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-organization" name=
- "pre-organization"></a>Структура
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Эта книга разделена на несколько частей.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- Часть I - Введение
- </h3>
- <p>
- Эта часть содержит важные замечания о том, как выполнить
- установку LFS. Также здесь представлена метаинформация о книге
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- Часть II - Подготовка к сборке
- </h3>
- <p>
- Часть II описывает, как подготовиться к процессу сборки —
- создать разделы, загрузить пакеты и выполнить компиляцию
- временных инструментов.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- Часть III - Создание кросс-тулчейна LFS и временных
- инструментов
- </h3>
- <p>
- Часть III содержит инструкции по созданию инструментов,
- необходимых для создания конечной системы LFS.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- Часть IV - Сборка системы LFS
- </h3>
- <p>
- Часть IV проводит читателя через сборку системы LFS—компиляцию
- и установку всех пакетов один за другим, настройку сценариев
- загрузки и установку ядра. Полученная в результате система
- Linux является основой, на которой можно собрать другое
- программное обеспечение для расширения системы по желанию. В
- конце этой книги есть простой в использовании справочник со
- списком всех программ, библиотек и важных файлов, которые были
- установлены.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- Часть V - Приложения
- </h3>
- <p>
- Часть V содержит информацию о самой книге, включая акронимы и
- термины, благодарности, зависимости пакетов, список загрузочных
- сценариев LFS, лицензии на распространение книги и
- исчерпывающий указатель пакетов, программ, библиотек и
- сценариев.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="pre-errata" name="pre-errata"></a>Ошибки и
- рекомендации по безопасности
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Программное обеспечение, используемое для создания системы LFS,
- постоянно обновляется и совершенствуется. Предупреждения
- безопасности и исправления ошибок могут появиться после выхода
- книги LFS. Чтобы проверить, нуждаются ли пакеты или инструкции в
- этом выпуске LFS в каких-либо изменениях для устранения
- уязвимостей в системе безопасности или исправления других ошибок,
- посетите <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/errata/12.1/">https://mirror.linuxfromscratch.ru/lfs/errata/12.1/</a>,
- прежде чем приступить к сборке. Вы должны внести требуемые
- изменения и применить их к соответствующему разделу книги по мере
- сборки системы LFS.
- </p>
- <p>
- Кроме того, редакторы Linux From Scratch ведут список уязвимостей
- безопасности, обнаруженных <span class=
- "emphasis"><em>после</em></span> выхода книги. Чтобы проверить
- наличие каких-либо известных уязвимостей безопасности, посетите
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/advisories/">https://mirror.linuxfromscratch.ru/lfs/advisories/</a>,
- прежде чем продолжить сборку. И, если вы будете использовать
- систему LFS в качестве реальной настольной или серверной системы,
- вам следует обращаться к рекомендациям и устранять любые
- уязвимости в системе безопасности, даже когда система LFS
- полностью собрана.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="part1" name="part1"></a>Часть&nbsp;I.&nbsp;Введение
- </h1>
- </div>
- </div>
- </div>
- <div class="part">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-intro" name="chapter-intro"></a>Глава 1.
- Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-intro-how" name="ch-intro-how"></a>1.1. Как
- собрать систему LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Система LFS будет собрана с использованием уже установленного
- дистрибутива Linux (например, Debian, OpenMandriva, Fedora или
- openSUSE). Существующая система Linux (хост) будет
- использоваться в качестве отправной точки для предоставления
- необходимых программ, включая компилятор, компоновщик и
- оболочку, для создания новой системы. Выберите опцию
- <span class="quote">«<span class=
- "quote">разработка</span>»</span> во время установки
- дистрибутива, чтобы получить доступ к этим инструментам.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Существует множество способов установки дистрибутива Linux, и
- значения по умолчанию обычно не оптимальны для сборки системы
- LFS. Предложения по настройке дистрибутива смотрите:
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/partitioning-for-lfs.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/partitioning-for-lfs.txt</a>.
- </p>
- </div>
- <p>
- В качестве альтернативы установке отдельного дистрибутива на
- свой компьютер вы можете использовать LiveCD другого
- дистрибутива.
- </p>
- <p>
- <a class="xref" href="#chapter-partitioning" title=
- "Глава 2. Подготовка хост-системы">Глава&nbsp;2</a> этой книги
- содержит информацию, о том, как создать новые разделы Linux и
- файловую систему, где будет скомпилирована и установлена новая
- система LFS. <a class="xref" href="#chapter-getting-materials"
- title="Глава 3. Пакеты и патчи">Глава&nbsp;3</a> содержит
- информацию, о том, какие пакеты и исправления необходимо
- загрузить для сборки системы LFS и как их хранить на файловой
- системе. <a class="xref" href="#chapter-final-preps" title=
- "Глава 4. Заключительный этап подготовки">Глава&nbsp;4</a>
- освещает вопросы настройки рабочего окружения. Пожалуйста,
- внимательно прочитайте <a class="xref" href=
- "#chapter-final-preps" title=
- "Глава 4. Заключительный этап подготовки">Глава&nbsp;4</a>, так
- как в ней объясняется несколько важных моментов, о которых вам
- необходимо знать, прежде чем вы начнёте работать со следующими
- главами.
- </p>
- <p>
- <a class="xref" href="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> содержит
- информацию об установке первоначального набора инструментов
- (binutils, gcc и glibc) с использованием методов
- кросс-компиляции для изоляции новых инструментов от
- хост-системы.
- </p>
- <p>
- <a class="xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- рассказывает, как выполнить кросс-компиляцию базовых утилит с
- использованием только что собранного временного набора
- инструментов.
- </p>
- <p>
- В <a class="xref" href="#chapter-chroot-temporary-tools" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Глава&nbsp;7</a> будет осуществлен переход в среду <span class=
- "command"><strong>chroot</strong></span>, где мы будет
- использовать новые инструменты для сборки остальных
- инструментов, необходимых для создания конечной системы.
- </p>
- <p>
- Эта попытка изолировать новую систему от основного дистрибутива
- поначалу может показаться чрезмерной. Полное техническое
- обоснование того, почему это сделано именно так, приведено в
- разделе <a class="xref" href="#ch-tools-toolchaintechnotes"
- title=
- "Технические примечания по сборочным инструментам">Технические
- примечания по сборочным инструментам</a>.
- </p>
- <p>
- В <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a> будет собрана полноценная система LFS. Еще
- одно преимущество среды chroot заключается в том, что она
- позволяет вам продолжать использовать хост-систему во время
- сборки LFS. Ожидая завершения компиляции пакетов, вы можете
- продолжать пользоваться своим компьютером в обычном режиме.
- </p>
- <p>
- Чтобы завершить установку, в <a class="xref" href=
- "#chapter-config" title=
- "Глава 9. Системные настройки">Глава&nbsp;9</a> происходит
- настройка базовой конфигурации системы, в <a class="xref" href=
- "#chapter-bootable" title=
- "Глава 10. Делаем систему LFS загрузочной">Глава&nbsp;10</a>
- настраиваются ядро и загрузчик. <a class="xref" href=
- "#chapter-finalizing" title=
- "Глава 11. Заключение">Глава&nbsp;11</a> содержит информацию о
- том как расширить возможности системы LFS. После выполнения
- шагов, описанных в этой главе, компьютер будет готов к загрузке
- в новую систему LFS.
- </p>
- <p>
- Здесь описан процесс сборки системы в двух словах. Подробная
- информация о каждом шаге обсуждается в следующих главах и
- описаниях пакетов. Элементы, которые кажутся сложными сейчас,
- будут разъяснены позже, и все встанет на свои места, по мере
- прочтения книги.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-intro-whatsnew" name="ch-intro-whatsnew"></a>1.2.
- Что нового с момента последнего релиза
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Ниже приведен список пакетов, обновленных с момента предыдущего
- выпуска книги.
- </p>
- <div class="itemizedlist">
- <p class="title">
- <strong>Обновлены:</strong>
- </p>
- <ul>
- <li class="listitem">
- <p>
- Acl-2.3.2
- </p>
- </li>
- <li class="listitem">
- <p>
- Attr-2.5.2
- </p>
- </li>
- <li class="listitem">
- <p>
- Autoconf-2.72
- </p>
- </li>
- <li class="listitem">
- <p>
- Bash-5.2.21
- </p>
- </li>
- <li class="listitem">
- <p>
- Bc-6.7.5
- </p>
- </li>
- <li class="listitem">
- <p>
- Binutils-2.42
- </p>
- </li>
- <li class="listitem">
- <p>
- Coreutils-9.4
- </p>
- </li>
- <li class="listitem">
- <p>
- Expat-2.6.0
- </p>
- </li>
- <li class="listitem">
- <p>
- Gawk-5.3.0
- </p>
- </li>
- <li class="listitem">
- <p>
- Gettext-0.22.4
- </p>
- </li>
- <li class="listitem">
- <p>
- Glibc-2.39
- </p>
- </li>
- <li class="listitem">
- <p>
- GRUB-2.12
- </p>
- </li>
- <li class="listitem">
- <p>
- Gzip-1.13
- </p>
- </li>
- <li class="listitem">
- <p>
- Iana-Etc-20240125
- </p>
- </li>
- <li class="listitem">
- <p>
- Inetutils-2.5
- </p>
- </li>
- <li class="listitem">
- <p>
- IPRoute2-6.7.0
- </p>
- </li>
- <li class="listitem">
- <p>
- Jinja2-3.1.3
- </p>
- </li>
- <li class="listitem">
- <p>
- Kbd-2.6.4
- </p>
- </li>
- <li class="listitem">
- <p>
- Kmod-31
- </p>
- </li>
- <li class="listitem">
- <p>
- Libelf из Elfutils-0.190
- </p>
- </li>
- <li class="listitem">
- <p>
- Linux-6.7.4
- </p>
- </li>
- <li class="listitem">
- <p>
- Man-DB-2.12.0
- </p>
- </li>
- <li class="listitem">
- <p>
- Man-pages-6.06
- </p>
- </li>
- <li class="listitem">
- <p>
- MarkupSafe-2.1.5
- </p>
- </li>
- <li class="listitem">
- <p>
- Meson-1.3.2
- </p>
- </li>
- <li class="listitem">
- <p>
- MPFR-4.2.1
- </p>
- </li>
- <li class="listitem">
- <p>
- Ncurses-6.4-20230520
- </p>
- </li>
- <li class="listitem">
- <p>
- OpenSSL-3.2.1
- </p>
- </li>
- <li class="listitem">
- <p>
- Perl-5.38.2
- </p>
- </li>
- <li class="listitem">
- <p>
- Pkgconf-2.1.1
- </p>
- </li>
- <li class="listitem">
- <p>
- Procps-ng-4.0.4
- </p>
- </li>
- <li class="listitem">
- <p>
- Python-3.12.2
- </p>
- </li>
- <li class="listitem">
- <p>
- Setuptools-69.1.0
- </p>
- </li>
- <li class="listitem">
- <p>
- Shadow-4.14.5
- </p>
- </li>
- <li class="listitem">
- <p>
- SysVinit-3.08
- </p>
- </li>
- <li class="listitem">
- <p>
- Texinfo-7.1
- </p>
- </li>
- <li class="listitem">
- <p>
- Tzdata-2024a
- </p>
- </li>
- <li class="listitem">
- <p>
- Util-Linux-2.39.3
- </p>
- </li>
- <li class="listitem">
- <p>
- Vim-9.1.0041
- </p>
- </li>
- <li class="listitem">
- <p>
- wheel-0.42.0
- </p>
- </li>
- <li class="listitem">
- <p>
- XML::Parser-2.47
- </p>
- </li>
- <li class="listitem">
- <p>
- Xz-5.4.6
- </p>
- </li>
- <li class="listitem">
- <p>
- Zlib-1.3.1
- </p>
- </li>
- </ul>
- </div>
- <div class="itemizedlist">
- <p class="title">
- <strong>Добавлены:</strong>
- </p>
- <ul>
- <li class="listitem">
- <p>
- bash-5.2.21-upstream_fixes-1.patch
- </p>
- </li>
- <li class="listitem">
- <p>
- readline-8.2-upstream_fixes-3.patch
- </p>
- </li>
- <li class="listitem">
- <p>
- setuptools-69.1.0
- </p>
- </li>
- <li class="listitem">
- <p>
- systemd-255-upstream_fixes-1.patch
- </p>
- </li>
- </ul>
- </div>
- <div class="itemizedlist">
- <p class="title">
- <strong>Удалены:</strong>
- </p>
- <ul>
- <li class="listitem">
- <p>
- glibc-2.38-memalign_fix-1.patch
- </p>
- </li>
- <li class="listitem">
- <p>
- grub-2.06-upstream_fixes-1.patch
- </p>
- </li>
- <li class="listitem">
- <p>
- readline-8.2-upstream_fix-1.patch
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-intro-changelog" name=
- "ch-intro-changelog"></a>1.3. Журнал изменений
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Это версия 12.1 книги Linux From Scratch от 1 марта 2024. Если
- этой книге больше шести месяцев, возможно, уже доступна более
- новая, улучшенная версия. Чтобы узнать это, проверьте одно из
- зеркал <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/mirrors.html">https://mirror.linuxfromscratch.ru/mirrors.html</a>.
- </p>
- <p>
- Ниже приведен список изменений, внесенных с момента предыдущего
- выпуска книги.
- </p>
- <div class="itemizedlist">
- <p class="title">
- <strong>Список изменений:</strong>
- </p>
- <ul>
- <li class="listitem">
- <p>
- 2024-02-14
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to meson-1.3.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5442">
- #5442</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-02-12
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to shadow-4.14.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5437">
- #5437</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to setuptools-69.1.0 (Python
- module). Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5439">
- #5439</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to python-3.12.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5434">
- #5434</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to pkgconf-2.1.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5432">
- #5432</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to MarkupSafe-2.1.5 (Python
- module). Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5431">
- #5431</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to man-pages-6.06. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5438">
- #5438</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to expat-2.6.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5435">
- #5435</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.7.4. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5433">
- #5433</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-02-02
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update to tzdata-2024a. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5428">
- #5428</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to glibc-2.39 (security fix).
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5426">
- #5426</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.7.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5427">
- #5427</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-02-01
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to openssl-3.2.1 (security fix).
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5425">
- #5425</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to zlib-1.3.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5419">
- #5419</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to xz-5.4.6. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5423">
- #5423</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.7.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5422">
- #5422</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to iana-etc-20240125. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to binutils-2.42. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5424">
- #5424</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to acl-2.3.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5421">
- #5421</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update upstream fixes for readline-8.2.
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5420">
- #5420</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Apply upstream fix for bash-5.2.21.
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5420">
- #5420</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-01-21
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Apply upstream fix for pkgconf-2.1.0
- regression. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5414">
- #5414</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to jinja2-3.1.3 (security fix).
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5411">
- #5411</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to bc-6.7.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5408">
- #5408</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to attr-2.5.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5412">
- #5412</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to ncurses-6.4-20230520 (security
- fix). Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5416">
- #5416</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to markupsafe-2.1.4. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5418">
- #5418</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.7.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5406">
- #5406</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iproute2-6.7.0. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5410">
- #5410</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to vim-9.1.0041. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iana-etc-20240117. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to shadow-4.14.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5413">
- #5413</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Fix CVE-2024-0684 for coreutils-9.4.
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5417">
- #5417</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-01-18
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Edit a ncurses header to always use the
- wide-character ABI compatible with libncursesw.so
- because we are faking the 8-bit libncurses.so with
- it. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5415">
- #5415</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2024-01-09
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [renodr] - Fix the definition of the C.UTF-8
- locale. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5409">
- #5409</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-12-31
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Add --enable-default-hash-style=gnu
- configuring binutils. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5401">
- #5401</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5405">
- #5405</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iana-etc-20231205. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to tzdata-2023d. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5399">
- #5399</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.6.8. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5397">
- #5397</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to meson-1.3.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5402">
- #5402</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to grub-2.12. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5396">
- #5396</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to inetutils-2.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5404">
- #5404</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to setuptools-69.0.3. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5400">
- #5400</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to xml-parser-2.47. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5403">
- #5403</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to vim-9.0.2189. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to autoconf-2.72. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5398">
- #5398</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-12-16
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update to <span class="phrase">udev
- from</span> systemd-255. Fixes <a class="ulink"
- href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5390">
- #5390</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-12-14
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to util-linux v2.39.3. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5388">
- #5388</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to python3-3.12.1. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5392">
- #5392</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.6.7. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5387">
- #5387</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to kbd-2.6.4. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5393">
- #5393</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to bc-6.7.4. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5389">
- #5389</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Reformat util-linux configure
- parameters. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5395">
- #5395</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-12-04
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [thomas] - Modify commands for install Python docs
- to avoid too restrictive permissions on the files
- and dirs.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-12-01
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Restore NIC naming based on physical
- system characteristics. Fixes <a class="ulink"
- href="https://wiki.linuxfromscratch.org/lfs/ticket/5386">
- #5386</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-11-30
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to vim-9.0.2136. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to iana-etc-20231117. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to bc-6.7.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5385">
- #5385</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to wheel-0.42.0 (Python Module).
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5384">
- #5384</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to perl-5.38.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5383">
- #5383</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to pkgconf-2.1.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5382">
- #5382</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to readline patches 002 through
- 007. Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5381">
- #5381</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to openssl-3.2.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5380">
- #5380</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to setuptools-69.0.2. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5379">
- #5379</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.6.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5378">
- #5378</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to meson-1.3.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5377">
- #5377</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to gettext-0.22.4. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5376">
- #5376</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-11-13
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update to elfutils-0.190. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5373">
- #5373</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to vim-9.0.2103. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.6.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5369">
- #5369</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to xz-5.4.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5371">
- #5371</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iana-etc-20231107. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to gawk-5.3.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5372">
- #5372</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to bash-5.2.21. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5375">
- #5375</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iproute2-6.6.0. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5374">
- #5374</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-11-01
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to iana-etc-20231019. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to wheel-0.41.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5370">
- #5370</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to shadow-4.14.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5368">
- #5368</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to openssl-3.1.4. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5367">
- #5367</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to texinfo-7.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5364">
- #5364</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to meson-1.2.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5366">
- #5366</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to bc-6.7.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5363">
- #5363</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.5.9. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5365">
- #5365</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to Python-3.12.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5357">
- #5357</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Add setuptools-68.2.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5358">
- #5358</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-10-15
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.5.7. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5362">
- #5362</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to shadow-4.14.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5361">
- #5361</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to gettext-0.22.3. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5359">
- #5359</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-10-03
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update Glibc upstream fixes patch to fix
- CVE-2023-4911.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-10-01
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Disable building nscd in glibc. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5349">
- #5349</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to iana-etc-20230929. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to vim-9.0.1968. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to openssl-3.1.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5350">
- #5350</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to meson-1.2.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5356">
- #5356</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to man-db-2.12.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5354">
- #5354</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to linux-6.5.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5352">
- #5352</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to kmod-31. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5355">
- #5355</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to kbd-2.6.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5351">
- #5361</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to gettext-0.22.2. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5348">
- #5348</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to bc-6.7.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5353">
- #5353</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-24
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update Glibc upstream fixes patch to
- plug a memory leak introduced by the security fix.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-17
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.5.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5343">
- #5343</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iana-etc-20230912. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5006">
- #5006</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to iproute2-6.5.0. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5342">
- #5342</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-13
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Fix CVE-2023-4806 for Glibc-2.38. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5347">
- #5347</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-12
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Fix CVE-2023-4527 for Glibc-2.38. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5346">
- #5346</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-07
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Fix an issue in pkgconf-2.0.3 causing
- BLFS packages fail to build. Fixes <a class="ulink"
- href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5341">
- #5341</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-05
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Move pkgconf before binutils for
- binutils building system to detect zstd properly.
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5340">
- #5340</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to linux-6.5.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5332">
- #5332</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to pkgconf-2.0.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5339">
- #5339</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [xry111] - Update to dbus-1.14.10. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5337">
- #5337</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-04
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - Move caution regarding building by
- mixing different version of LFS to General
- Compilation Instructions. Fixes <a class="ulink"
- href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5338">
- #5338</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-02
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [xry111] - Add --no-cache-dir option for pip3 wheel
- commands. Addresses <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/blfs/ticket/18466">
- BLFS #18466</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to vim-9.0.1837. Addresses
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/4500">
- #4500</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to zlib-1.3. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5324">
- #5324</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to wheel-0.41.2 (Python Module).
- Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5328">
- #5328</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to util-linux-2.39.2. Fixes
- <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5322">
- #5322</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to sysvinit-3.08. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5321">
- #5321</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to shadow-4.14.0. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5319">
- #5319</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to Python-3.11.5. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5330">
- #5330</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to procps-ng-4.0.4 (security fix
- for 32-bit systems). Fixes <a class="ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5335">
- #5335</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to pkgconf-2.0.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5323">
- #5323</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to mpfr-4.2.1. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5326">
- #5326</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to kbd-2.6.2. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5318">
- #5318</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to gzip-1.13. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5325">
- #5325</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Update to coreutils-9.4. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5334">
- #5334</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- [bdubbs] - Remove unused usb group. Fixes <a class=
- "ulink" href=
- "https://wiki.linuxfromscratch.org/lfs/ticket/5331">
- #5331</a>.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- 2023-09-01
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- [bdubbs] - LFS-12.0 released.
- </p>
- </li>
- </ul>
- </div>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-intro-resources" name=
- "ch-intro-resources"></a>1.4. Ресурсы
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-intro-faq" name="ch-intro-faq"></a>1.4.1. Часто
- задаваемые вопросы
- </h3>
- <p>
- Если во время создания системы LFS вы столкнетесь с
- какими-либо ошибками, у вас возникнут какие-либо вопросы или
- вам кажется, что в книге допущена опечатка, пожалуйста, для
- начала ознакомьтесь со списком часто задаваемых вопросов
- (FAQ), расположенным по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/faq/">https://mirror.linuxfromscratch.ru/faq/</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-intro-maillists" name=
- "ch-intro-maillists"></a>1.4.2. Списки рассылки
- </h3>
- <p>
- На сервере <code class=
- "systemitem">linuxfromscratch.org</code> размещен ряд списков
- рассылки, используемых для разработки проекта LFS. Эти списки
- включают, среди прочего, основные списки разработки и
- поддержки. Если вы не можете найти ответ на странице часто
- задаваемых вопросов, следующим шагом будет поиск решения в
- списках рассылки по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/search.html">https://mirror.linuxfromscratch.ru/search.html</a>.
- </p>
- <p>
- Для получения информации о списках рассылки, способах
- подписки, архивах и дополнительной информации посетите
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/mail.html">https://mirror.linuxfromscratch.ru/mail.html</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-intro-irc" name="ch-intro-irc"></a>1.4.3. IRC
- </h3>
- <p>
- Некоторые члены сообщества LFS предлагают помощь в Internet
- Relay Chat (IRC). Прежде чем воспользоваться этим способом,
- убедитесь, что на ваш вопрос еще нет ответа в разделе часто
- задаваемых вопросов LFS или в архивах списков рассылки. Вы
- можете найти нас в <code class=
- "systemitem">irc.libera.chat</code>. Канал поддержки
- называется #lfs-support.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-intro-mirrors" name="ch-intro-mirrors"></a>1.4.4.
- Зеркала проекта
- </h3>
- <p>
- Проект LFS имеет несколько зеркал по всему миру, чтобы
- сделать доступ к веб-сайту и загрузку необходимых пакетов
- более удобными. Пожалуйста, посетите веб-сайт LFS по адресу
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/mirrors.html">https://mirror.linuxfromscratch.ru/mirrors.html</a>
- для получения списка текущих зеркал.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-intro-contactinfo" name=
- "ch-intro-contactinfo"></a>1.4.5. Контактная информация
- </h3>
- <p>
- Пожалуйста, направляйте все свои вопросы и комментарии в один
- из списков рассылки LFS (см. выше).
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-intro-askforhelp" name=
- "ch-intro-askforhelp"></a>1.5. Помощь
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы столкнулись с проблемой при сборки одного пакета с
- помощью инструкцией из LFS, мы настоятельно не рекомендуем
- публиковать проблему непосредственно в канале поддержки
- разработчиков пакета до обсуждения через канал поддержки LFS,
- указанный в <a class="xref" href="#ch-intro-resources" title=
- "1.4. Ресурсы">Раздел&nbsp;1.4, «Ресурсы»</a>. Часто это
- неэффективно, потому что разработчики редко знакомы с
- процедурой сборки LFS. Даже если вы действительно столкнулись
- с проблемой в пакете, сообщество LFS все равно может помочь
- выделить информацию, необходимую специалистам по поддержке
- пакета, и составить соответствующий отчет.
- </p>
- <p>
- Если вам нужно задать вопрос напрямую через канал поддержки
- пакета, вы должны, по крайней мере, понимать, что многие
- проекты имеют каналы поддержки, отделенные от системы
- отслеживания ошибок. Отчеты об <span class=
- "quote">«<span class="quote">ошибках</span>»</span> при
- отправке вопросов считаются недействительными и могут
- раздражать разработчиков этих проектов.
- </p>
- </div>
- <p>
- Если при работе с этой книгой у вас возникнут проблемы или
- вопросы, посетите страницу часто задаваемых вопросов по адресу
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/faq/#generalfaq">https://mirror.linuxfromscratch.ru/faq/#generalfaq</a>.
- Часто там уже есть ответы на большинство вопросов. Если на этой
- странице нет ответа на ваш вопрос, попробуйте самостоятельно
- найти источник проблемы. Следующий документ даст вам некоторые
- рекомендации по устранению неполадок: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/errors.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/errors.txt</a>.
- </p>
- <p>
- Если вы не можете найти решение своей проблемы в разделе часто
- задаваемых вопросов, выполните поиск в списках рассылки по
- адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/search.html">https://mirror.linuxfromscratch.ru/search.html</a>.
- </p>
- <p>
- У нас также есть замечательное сообщество LFS, которое готово
- предложить помощь через списки рассылки и IRC (см. <a class=
- "xref" href="#ch-intro-resources" title=
- "1.4. Ресурсы">Раздел&nbsp;1.4, «Ресурсы»</a> этой книги). Мы
- получаем много вопросов в службу поддержки каждый день, и на
- многие из них можно легко ответить, зайдя в раздел часто
- задаваемых вопросов и предварительно выполнив поиск в списках
- рассылки. Чтобы мы могли оказать помощь, вам необходимо сначала
- провести самостоятельное исследование. Это позволяет нам
- сосредоточиться на более сложных вопросах в поддержке. Если
- ваши поиски не привели к решению проблемы, включите всю
- необходимую информацию (упомянутую ниже) в свой запрос о
- помощи.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 1.5.1. Что следует упомянуть
- </h3>
- <p>
- Помимо краткого объяснения возникшей проблемы, в любой запрос
- о помощи необходимо включить следующую важную информацию:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Используемая версия книги (в данном случае 12.1)
- </p>
- </li>
- <li class="listitem">
- <p>
- Информацию о дистрибутиве и его версия, используемые
- для сборки LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Вывод сценария <a class="xref" href=
- "#version-check">Системные требования к хостовой
- машине</a>
- </p>
- </li>
- <li class="listitem">
- <p>
- Пакет или раздел где возникла проблема
- </p>
- </li>
- <li class="listitem">
- <p>
- Точное сообщение об ошибке или четкое описание проблемы
- </p>
- </li>
- <li class="listitem">
- <p>
- Обратите внимание, отклонялись ли вы от книги
- </p>
- </li>
- </ul>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Отклонение от этой книги <span class=
- "emphasis"><em>не</em></span> означает, что мы не поможем
- вам. В конце концов, LFS зависит от личных предпочтений.
- Заблаговременное информирование о любых изменениях в
- процессе сборки помогает нам оценить и определить возможные
- причины вашей проблемы
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 1.5.2. Проблемы со скриптом configure
- </h3>
- <p>
- Если что-то пойдет не так во время выполнения скрипта
- <span class="command"><strong>configure</strong></span>,
- просмотрите файл <code class="filename">config.log</code>.
- Этот файл может содержать ошибки, обнаруженные во время
- настройки, которые не были выведены на экран. Включите
- <span class="emphasis"><em>соответствующие</em></span>
- строки, если вам нужно обратиться за помощью.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 1.5.3. Проблемы компиляции
- </h3>
- <p>
- Как вывод на экран, так и содержимое различных файлов полезны
- для определения причины проблем компиляции. Вывод экрана из
- скрипта <span class=
- "command"><strong>configure</strong></span> и запуска
- <span class="command"><strong>make</strong></span> может быть
- полезен. Необязательно включать весь вывод целиком, но
- обязательно включите всю необходимую информацию. Ниже
- приведен пример информации, которая должна быть включена в
- экранный вывод <span class=
- "command"><strong>make</strong></span>:
- </p>
- <pre class="screen"><code class=
- "computeroutput">gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
--DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
--DLIBDIR=\"/mnt/lfs/usr/lib\"
--DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
--g -O2 -c getopt1.c
-gcc -g -O2 -static -o make ar.o arscan.o commands.o dir.o
-expand.o file.o function.o getopt.o implicit.o job.o main.o
-misc.o read.o remake.o rule.o signame.o variable.o vpath.o
-default.o remote-stub.o version.o opt1.o
--lutil job.o: In function `load_too_high':
-/lfs/tmp/make-3.79.1/job.c:1565: undefined reference
-to `getloadavg'
-collect2: ld returned 1 exit status
-make[2]: *** [make] Error 1
-make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
-make[1]: *** [all-recursive] Error 1
-make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
-make: *** [all-recursive-am] Error 2</code></pre>
- <p>
- В этом случае многие люди просто включили бы только нижнюю
- часть:
- </p>
- <pre class="screen"><code class=
- "computeroutput">make [2]: *** [make] Error 1</code></pre>
- <p>
- Этой информации недостаточно, чтобы правильно диагностировать
- проблему, потому что она только указывает на то, что что-то
- пошло не так, а не на то, <span class=
- "emphasis"><em>что</em></span> пошло не так. Весь раздел, как
- в приведенном выше примере, должен быть сохранен, так как он
- включает в себя выполненную команду и все связанные с ней
- сообщения об ошибках.
- </p>
- <p>
- Отличная статья о том, как обращаться за помощью в Интернете,
- доступна по адресу <a class="ulink" href=
- "http://catb.org/~esr/faqs/smart-questions.html">http://catb.org/~esr/faqs/smart-questions.html</a>.
- Прочтите этот документ и следуйте советам, чтобы повысить
- вероятность получения помощи в которой вы нуждаетесь.
- </p>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="part2" name="part2"></a>Часть&nbsp;II.&nbsp;Подготовка к
- сборке
- </h1>
- </div>
- </div>
- </div>
- <div class="part">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-partitioning" name=
- "chapter-partitioning"></a>Глава 2. Подготовка хост-системы
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-introduction" name=
- "ch-partitioning-introduction"></a>2.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этой главе проверяются и при необходимости устанавливаются
- основные инструменты, необходимые для построения LFS. Затем
- подготавливается раздел, в котором будет размещаться система
- LFS. Мы создадим сам раздел, создадим на нем файловую систему и
- смонтируем его.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-hostreqs" name=
- "ch-partitioning-hostreqs"></a>2.2. Требования к
- хост-системе
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.2.1. Аппаратное обеспечение
- </h3>
- <p>
- Редакторы LFS рекомендуют, чтобы процессор имел не менее
- четырех ядер и не менее 8 ГБ памяти. Старые системы, не
- отвечающие этим требованиям, будут по-прежнему работать, но
- время сборки пакетов будет значительно больше, чем указано в
- документации.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.2.2. Программное обеспечение
- </h3>
- <p>
- Ваша хост-система должна иметь следующее программное
- обеспечение с указанными минимальными версиями. Это не должно
- быть проблемой для большинства современных дистрибутивов
- Linux. Также обратите внимание на то, что многие дистрибутивы
- помещают заголовочные файлы в отдельные пакеты, как правило в
- формате <code class="literal"><em class=
- "replaceable"><code>&lt;package-name&gt;</code></em>-devel</code>
- или <code class="literal"><em class=
- "replaceable"><code>&lt;package-name&gt;</code></em>-dev</code>.
- Обязательно установите эти пакеты, если ваш дистрибутив их
- предоставляет.
- </p>
- <p>
- Более ранние версии перечисленных ниже пакетов могут
- работать, но это не проверялось.
- </p>
- <div class="itemizedlist">
- <ul class="compact">
- <li class="listitem">
- <p>
- <span class="strong"><strong>Bash-3.2</strong></span>
- (/bin/sh должен быть символической или жесткой ссылкой
- на bash)
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Binutils-2.13.1</strong></span>
- (Версия выше 2.42 не рекомендуется, так как она не
- тестировалась)
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Bison-2.7</strong></span>
- (/usr/bin/yacc должен быть ссылкой на bison или
- небольшой скрипт, запускающий bison)
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Coreutils-8.1</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Diffutils-2.8.1</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Findutils-4.2.31</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Gawk-4.0.1</strong></span>
- (/usr/bin/awk должен быть ссылкой на gawk)
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>GCC-5.2</strong></span>,
- включая компилятор C++, <span class=
- "command"><strong>g++</strong></span> (версии выше
- 13.2.0 не рекомендуются, поскольку они не
- тестировались). Также должны присутствовать стандартные
- библиотеки C и C++ (с заголовочными файлами), чтобы
- компилятор C++ мог осуществлять сборку программ.
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Grep-2.5.1a</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Gzip-1.3.12</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Linux
- Kernel-4.19</strong></span>
- </p>
- <p>
- Причиной, по которой указаны минимальные требования к
- версии ядра, является то, что мы указываем эту версию
- при сборке <span class="application">glibc</span> в
- <a class="xref" href="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и
- <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a>. Так как более старые ядра не
- поддерживаются, скомпилированный пакет <span class=
- "application">glibc</span> немного меньше и быстрее. По
- состоянию на февраль 2024 г. 4.19 является самой старой
- версией ядра, поддерживаемой разработчиками ядра.
- Некоторые версии ядра, более старые, чем 4.19, могут
- по-прежнему поддерживаться сторонними командами, но они
- не считаются официальными выпусками ядра; подробности
- читайте на странице <a class="ulink" href=
- "https://kernel.org/category/releases.html">https://kernel.org/category/releases.html</a>
- </p>
- <p>
- Если версия ядра хоста более ранняя, чем 4.19, вам
- необходимо обновить ядро на более современную версию.
- Есть два способа сделать это. Во-первых, посмотрите,
- предоставляет ли ваш дистрибутив Linux пакет ядра 4.19
- или более позднюю версию. Если это так, установите его.
- Если ваш дистрибутив не предлагает приемлемый пакет
- ядра или вы предпочитаете не устанавливать его, вы
- можете скомпилировать ядро самостоятельно. Инструкции
- по компиляции ядра и настройке загрузчика (при условии,
- что хост использует GRUB) находятся в <a class="xref"
- href="#chapter-bootable" title=
- "Глава 10. Делаем систему LFS загрузочной">Глава&nbsp;10</a>.
- </p>
- <p>
- Для сборки LFS необходимо, чтобы ядро хоста
- поддерживало псевдотерминал UNIX 98 (PTY). Обычно он
- включен на всех настольных или серверных дистрибутивах,
- поставляющих Linux 4.19 или более новое ядро. Если на
- хосте вы используете самостоятельно собранное ядро,
- убедитесь, что для параметра <code class=
- "option">CONFIG_UNIX98_PTYS</code> установлено значение
- <code class="literal">y</code> в конфигурационном файле
- ядра.
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>M4-1.4.10</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Make-4.0</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Patch-2.5.4</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Perl-5.8.8</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Python-3.4</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Sed-4.1.5</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Tar-1.22</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "strong"><strong>Texinfo-5.0</strong></span>
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="strong"><strong>Xz-5.0.0</strong></span>
- </p>
- </li>
- </ul>
- </div>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Обратите внимание, что упомянутые выше символические ссылки
- необходимы для создания системы LFS с использованием
- инструкций, содержащихся в этой книге. Симлинки,
- указывающие на другое программное обеспечение (например,
- dash, mawk и т. д.), могут работать, но не тестируются и не
- поддерживаются командой разработчиков LFS, и могут
- потребовать либо отклонения от инструкций, либо
- дополнительных исправлений для некоторых пакетов.
- </p>
- </div>
- <h3>
- <a id="version-check" name="version-check"></a>
- </h3>
- <p>
- Чтобы узнать, есть ли в вашей хост-системе все необходимые
- пакеты и возможность компилировать программы, выполните
- следующий скрипт:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; version-check.sh &lt;&lt; "EOF"
-<code class="literal">#!/bin/bash
-# A script to list version numbers of critical development tools
-
-# If you have tools installed in other directories, adjust PATH here AND
-# in ~lfs/.bashrc (section 4.4) as well.
-
-LC_ALL=C
-PATH=/usr/bin:/bin
-
-bail() { echo "FATAL: $1"; exit 1; }
-grep --version &gt; /dev/null 2&gt; /dev/null || bail "grep does not work"
-sed '' /dev/null || bail "sed does not work"
-sort /dev/null || bail "sort does not work"
-
-ver_check()
-{
- if ! type -p $2 &amp;&gt;/dev/null
- then
- echo "ERROR: Cannot find $2 ($1)"; return 1;
- fi
- v=$($2 --version 2&gt;&amp;1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1)
- if printf '%s\n' $3 $v | sort --version-sort --check &amp;&gt;/dev/null
- then
- printf "OK: %-9s %-6s &gt;= $3\n" "$1" "$v"; return 0;
- else
- printf "ERROR: %-9s is TOO OLD ($3 or later required)\n" "$1";
- return 1;
- fi
-}
-
-ver_kernel()
-{
- kver=$(uname -r | grep -E -o '^[0-9\.]+')
- if printf '%s\n' $1 $kver | sort --version-sort --check &amp;&gt;/dev/null
- then
- printf "OK: Linux Kernel $kver &gt;= $1\n"; return 0;
- else
- printf "ERROR: Linux Kernel ($kver) is TOO OLD ($1 or later required)\n" "$kver";
- return 1;
- fi
-}
-
-# Coreutils first because --version-sort needs Coreutils &gt;= 7.0
-ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
-ver_check Bash bash 3.2
-ver_check Binutils ld 2.13.1
-ver_check Bison bison 2.7
-ver_check Diffutils diff 2.8.1
-ver_check Findutils find 4.2.31
-ver_check Gawk gawk 4.0.1
-ver_check GCC gcc 5.2
-ver_check "GCC (C++)" g++ 5.2
-ver_check Grep grep 2.5.1a
-ver_check Gzip gzip 1.3.12
-ver_check M4 m4 1.4.10
-ver_check Make make 4.0
-ver_check Patch patch 2.5.4
-ver_check Perl perl 5.8.8
-ver_check Python python3 3.4
-ver_check Sed sed 4.1.5
-ver_check Tar tar 1.22
-ver_check Texinfo texi2any 5.0
-ver_check Xz xz 5.0.0
-ver_kernel 4.19
-
-if mount | grep -q 'devpts on /dev/pts' &amp;&amp; [ -e /dev/ptmx ]
-then echo "OK: Linux Kernel supports UNIX 98 PTY";
-else echo "ERROR: Linux Kernel does NOT support UNIX 98 PTY"; fi
-
-alias_check() {
- if $1 --version 2&gt;&amp;1 | grep -qi $2
- then printf "OK: %-4s is $2\n" "$1";
- else printf "ERROR: %-4s is NOT $2\n" "$1"; fi
-}
-echo "Aliases:"
-alias_check awk GNU
-alias_check yacc Bison
-alias_check sh Bash
-
-echo "Compiler check:"
-if printf "int main(){}" | g++ -x c++ -
-then echo "OK: g++ works";
-else echo "ERROR: g++ does NOT work"; fi
-rm -f a.out
-
-if [ "$(nproc)" = "" ]; then
- echo "ERROR: nproc is not available or it produces empty output"
-else
- echo "OK: nproc reports $(nproc) logical cores are available"
-fi</code>
-EOF
-
-bash version-check.sh</kbd></pre>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-stages" name=
- "ch-partitioning-stages"></a>2.3. Этапы сборки системы LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- LFS разработан для сборки за один сеанс. То есть инструкция
- предполагает, что система не будет выключаться в процессе. Это
- не означает, что система должна быть собрана за один присест.
- Для возобновления сборки в точке предыдущей остановки (после
- перезагрузки/выключения), необходимо выполнить некоторые
- процедуры повторно.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.3.1. Главы&nbsp;1–4
- </h3>
- <p>
- Эти главы выполняются на хост-системе. После перезагрузки
- обратите внимание на следующее:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- При выполнении операций, от имени пользователя
- <code class="systemitem">root</code> после Раздела 2.4,
- <span class="emphasis"><em>ДЛЯ ПОЛЬЗОВАТЕЛЯ</em></span>
- <code class="systemitem">root</code> должна быть
- установлена переменная окружения LFS.
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.3.2. Главы&nbsp;5–6
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Раздел /mnt/lfs должен быть смонтирован.
- </p>
- </li>
- <li class="listitem">
- <p>
- Эти две главы <span class=
- "emphasis"><em>должны</em></span> быть выполнены из-под
- пользователя <code class="systemitem">lfs</code>. Перед
- выполнением любой задачи в этих главах необходимо
- выполнить команду <span class="command"><strong>su -
- lfs</strong></span>. В противном случае вы рискуете
- установить пакеты на хост и сделать его непригодным для
- использования.
- </p>
- </li>
- <li class="listitem">
- <p>
- Выполнение процедур из <a class="xref" href=
- "#ch-tools-generalinstructions" title=
- "Общие инструкции по компиляции">Общие инструкции по
- компиляции</a> имеет решающее значение. Если есть
- какие-либо сомнения по поводу установки пакета,
- убедитесь, что все ранее распакованные tar-архивы
- удалены, затем повторно извлеките файлы и выполните все
- инструкции, приведенные в этом разделе.
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.3.3. Главы&nbsp;7–10
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Раздел /mnt/lfs должен быть смонтирован.
- </p>
- </li>
- <li class="listitem">
- <p>
- Некоторые операции, такие как <span class=
- "quote">«<span class="quote">Смена
- владельца</span>»</span> или <span class=
- "quote">«<span class="quote">Вход в среду
- Chroot</span>»</span>, должны быть выполнены от имени
- пользователя <code class="systemitem">root</code> с
- переменной окружения $LFS, установленной для
- пользователя <code class="systemitem">root</code>.
- </p>
- </li>
- <li class="listitem">
- <p>
- При входе в chroot переменная среды LFS должна быть
- установлена для пользователя <code class=
- "systemitem">root</code>. Переменная LFS не
- используется после входа в среду chroot.
- </p>
- </li>
- <li class="listitem">
- <p>
- Виртуальные файловые системы должны быть смонтированы.
- Это можно сделать до или после входа в chroot,
- переключившись на виртуальный терминал хоста и от имени
- пользователя <code class="systemitem">root</code>
- выполнив команды, описанные в <a class="xref" href=
- "#ch-tools-bindmount" title=
- "7.3.1. Монтирование и заполнение /dev">Раздел&nbsp;7.3.1,
- «Монтирование и заполнение /dev»</a> и <a class="xref"
- href="#ch-tools-kernfsmount" title=
- "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел&nbsp;7.3.2,
- «Монтирование виртуальных файловых систем ядра»</a>.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-creatingpartition" name=
- "ch-partitioning-creatingpartition"></a>2.4. Создание
- нового раздела
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Как и большинство других операционных систем, LFS обычно
- устанавливается на выделенный раздел. Рекомендуемый подход к
- построению системы LFS состоит в том, чтобы использовать
- доступный пустой раздел или, если у вас достаточно
- неразмеченного пространства, использовать его
- </p>
- <p>
- Минимальная система требует раздел размером около 10 гигабайт
- (ГБ). Этого достаточно для хранения всех архивов с исходным
- кодом и компиляции пакетов. Однако, если система LFS
- предназначена для использования в качестве основной системы
- Linux, вероятно, будет установлено дополнительное программное
- обеспечение, для которого потребуется дополнительное
- пространство. Раздел размером 30 ГБ является разумным размером
- для расширения. Сама система LFS не займет столько места.
- Большая часть этого требования заключается в предоставлении
- достаточного временного хранилища, а также в добавлении
- дополнительных возможностей после сборки LFS. Кроме того, для
- компиляции пакетов может потребоваться много места на диске,
- которое будет освобождено после установки пакета.
- </p>
- <p>
- Поскольку для компиляции не всегда достаточно оперативной
- памяти (ОЗУ), рекомендуется использовать небольшой раздел диска
- в качестве <code class="systemitem">раздела подкачки</code>. Он
- используется ядром для хранения редко используемых данных и
- оставляет больше памяти для активных процессов. <code class=
- "systemitem">Раздел подкачки</code> для системы LFS может
- совпадать с разделом, используемым хост-системой, и в этом
- случае нет необходимости создавать еще один.
- </p>
- <p>
- Запустите программу создания разделов диска, такую как
- <span class="command"><strong>cfdisk</strong></span> или
- <span class="command"><strong>fdisk</strong></span>, с
- параметром командной строки, указав имя жесткого диска, на
- котором будет создан новый раздел, например, <code class=
- "filename">/dev/sda</code> для основного диска. Создайте раздел
- Linux и <code class="systemitem">раздел подкачки</code>, если
- это необходимо. Пожалуйста, обратитесь к справке <a class=
- "ulink" href=
- "https://man.archlinux.org/man/cfdisk.8">cfdisk(8)</a> или
- <a class="ulink" href=
- "https://man.archlinux.org/man/fdisk.8">fdisk(8)</a>, если вы
- еще не знаете, как пользоваться этими программами.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Для опытных пользователей возможны и другие схемы разбиения.
- Система LFS может располагаться на программном <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/raid.html">
- RAID-массиве</a> или логическом томе <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/aboutlvm.html">
- LVM</a>. Однако для некоторых опций требуется <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/initramfs.html">
- initramfs</a>, что является сложной темой. Эти методы
- разбиения не рекомендуются начинающим пользователям LFS.
- </p>
- </div>
- <p>
- Запомните обозначение созданного раздела (например,
- <code class="filename">sda5</code>). В этой книге он будет
- называться разделом LFS. Также запомните обозначение
- <code class="systemitem">раздела подкачки</code>. Эти имена
- понадобятся позже для файла <code class=
- "filename">/etc/fstab</code>.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 2.4.1. Другие вопросы по созданию разделов
- </h3>
- <p>
- Рекомендации по созданию разделов системы часто публикуются в
- списках рассылки LFS. Это очень субъективная тема. По
- умолчанию для большинства дистрибутивов используется весь
- диск, за исключением небольшого раздела подкачки. Это не
- оптимально для LFS по нескольким причинам. Это снижает
- гибкость, затрудняет совместное использование данных между
- несколькими дистрибутивами или сборками LFS, делает резервное
- копирование более трудоемким и может тратить дисковое
- пространство из-за неэффективно распределенной файловой
- системы.
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm1357" name="idm1357"></a>2.4.1.1. Корневой
- раздел
- </h4>
- </div>
- </div>
- </div>
- <p>
- Корневой раздел LFS (не путать с каталогом <code class=
- "filename">/root</code>) размером в 20 гигабайт является
- хорошим компромиссом для большинства систем. Он
- обеспечивает достаточно места для построения LFS и большей
- части BLFS, но достаточно мал, чтобы можно было легко
- создать несколько разделов для экспериментов.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm1361" name="idm1361"></a>2.4.1.2. Раздел
- подкачки
- </h4>
- </div>
- </div>
- </div>
- <p>
- Большинство дистрибутивов автоматически создают раздел
- подкачки. Обычно рекомендуемый размер раздела подкачки
- примерно в два раза превышает объем физической памяти,
- однако это требуется редко. Если дисковое пространство
- ограничено, установите размер раздела подкачки в два
- гигабайта и контролируйте его объемом.
- </p>
- <p>
- Если вы хотите использовать режим гибернации
- (suspend-to-disk) Linux, которая записывает содержимое ОЗУ
- в раздел подкачки перед выключением машины. Установите
- размер раздела подкачки не меньше объема установленной
- оперативной памяти.
- </p>
- <p>
- Использование файла подкачки - это не очень хорошо. Для
- механических жестких дисков вы можете определить, что
- система использует раздел подкачки, просто слыша активность
- диска и наблюдая, как система реагирует на команды. Для
- SSD-накопителя вы не сможете услышать, что используется
- раздел подкачки, но сможете оценить, сколько места на
- разделе подкачки занято, используя команды <span class=
- "command"><strong>top</strong></span> или <span class=
- "command"><strong>free</strong></span>. По возможности
- следует избегать использования SSD-накопителя для раздела
- подкачки. Первой реакцией на активность раздела подкачки
- должна быть проверка на необоснованное применение
- какой-либо команды, например, попытка редактирования
- пятигигабайтного файла. Если использование раздела подкачки
- становится обычным явлением, лучшее решение — приобретение
- большего объема оперативной памяти для вашей системы.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm1368" name="idm1368"></a>2.4.1.3. Раздел
- GRUB
- </h4>
- </div>
- </div>
- </div>
- <p>
- Если <span class="emphasis"><em>загрузочный
- диск</em></span> размечен с помощью таблицы разделов GUID
- (GPT), необходимо создать небольшой раздел, обычно размером
- 1 МБ, если он еще не существует. Этот раздел не
- форматируется, но должен быть доступен для использования
- GRUB во время установки загрузчика. Обычно он помечен как
- 'BIOS Boot' при использовании <span class=
- "command"><strong>fdisk</strong></span> или имеет код
- <span class="emphasis"><em>EF02</em></span> при
- использовании <span class=
- "command"><strong>gdisk</strong></span>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Раздел Grub Bios должен находиться на диске, который BIOS
- использует для загрузки системы. Это не обязательно тот
- же диск, на котором расположен корневой раздел LFS. Диски
- в системе могут использовать разные типы таблиц разделов.
- Наличие раздела Grub Bios зависит только от типа таблицы
- разделов на загрузочном диске.
- </p>
- </div>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm1377" name="idm1377"></a>2.4.1.4. Разделы,
- используемые для удобства
- </h4>
- </div>
- </div>
- </div>
- <p>
- Есть несколько других разделов, которые не являются
- обязательными, но их следует учитывать при разработке схемы
- диска. Следующий список не является исчерпывающим, а
- представлен в качестве справочного руководства.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- /boot – Настоятельно рекомендуется. Используйте этот
- раздел для хранения ядер и другой загрузочной
- информации. Чтобы свести к минимуму возможные
- проблемы с загрузкой дисков большого размера,
- сделайте этот раздел первым физическим разделом на
- первом диске. Размер раздела в 200 мегабайт вполне
- достаточен.
- </p>
- </li>
- <li class="listitem">
- <p>
- /boot/efi – Системный раздел EFI, используемый для
- загрузки системы с помощью UEFI. Подробнее читайте на
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-setup.html">
- странице BLFS</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- /home – Настоятельно рекомендуется. Предоставьте
- общий доступ к своему домашнему каталогу и
- пользовательским настройкам нескольким дистрибутивам
- или сборкам LFS. Размер, как правило, довольно
- большой и зависит от доступного места на диске.
- </p>
- </li>
- <li class="listitem">
- <p>
- /usr – в LFS, <code class="filename">/bin</code>,
- <code class="filename">/lib</code>, и <code class=
- "filename">/sbin</code> являются символическими
- ссылками на их аналоги в <code class=
- "filename">/usr</code>. Таким образом <code class=
- "filename">/usr</code> содержит все двоичные файлы,
- необходимые для работы системы. Для LFS отдельный
- раздел <code class="filename">/usr</code> не
- требуется. Если он вам необходим, вы должны сделать
- раздел достаточно большим, чтобы поместить туда все
- программы и библиотеки в системе. В этой
- конфигурации, корневой раздел может быть очень
- маленьким (возможно, всего один гигабайт), поэтому он
- подходит для тонкого клиента или бездисковой рабочей
- станции (где <code class="filename">/usr</code>
- монтируется с удаленного сервера). Однако вы должны
- знать, что для загрузки системы с отдельного раздела
- <code class="filename">/usr</code> потребуется
- initramfs (не включенный в LFS).
- </p>
- </li>
- <li class="listitem">
- <p>
- /opt – Этот каталог наиболее полезен для BLFS, в него
- можно установить некоторые большие пакеты, такие как
- KDE или Texlive, без использования иерархии /usr. Для
- /opt достаточно размера от 5 до 10 гигабайт.
- </p>
- </li>
- <li class="listitem">
- <p>
- /tmp – Отдельный раздел /tmp используется редко, он
- полезен при настройке тонкого клиента. Обычно, его
- размер не должен превышать пару гигабайт. Если у вас
- достаточно оперативной памяти, вы можете смонтировать
- /tmp как <code class="systemitem">tmpfs</code>, чтобы
- ускорить доступ к временным файлам.
- </p>
- </li>
- <li class="listitem">
- <p>
- /usr/src – Этот раздел очень удобен для хранения
- исходников BLFS и совместного использования их в
- сборках LFS. Его также можно использовать в качестве
- места для сборки пакетов BLFS. Размера в 30-50
- гигабайт вполне достаточно.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Любой отдельный раздел, который вы хотите автоматически
- монтировать при загрузке, должен быть указан в файле
- <code class="filename">/etc/fstab</code>. Подробности о
- том, как указать разделы, будут обсуждаться в <a class=
- "xref" href="#ch-bootable-fstab" title=
- "10.2. Создание файла /etc/fstab">Раздел&nbsp;10.2,
- «Создание файла /etc/fstab»</a>.
- </p>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-creatingfilesystem" name=
- "ch-partitioning-creatingfilesystem"></a>2.5. Создание
- файловой системы на разделе
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Раздел - это всего лишь диапазон секторов на диске, указанный в
- таблице разделов. Прежде чем операционная система сможет
- использовать раздел для хранения каких-либо файлов, он должен
- быть отформатирован, чтобы содержать файловую систему, обычно
- состоящую из метки, блоков каталогов, блоков данных и схемы
- индексации для поиска конкретного файла по запросу. Файловая
- система также помогает операционной системе отслеживать
- свободное пространство на разделе, резервировать необходимые
- секторы при создании нового файла или расширении существующего
- и повторно использует свободные сегменты данных, полученные в
- результате удаления файлов. Она также может обеспечивать
- поддержку избыточности данных и восстановления после ошибок.
- </p>
- <p>
- LFS может использовать любую файловую систему, распознаваемую
- ядром Linux, но наиболее распространенными типами являются ext3
- и ext4. Выбор правильной файловой системы может быть сложным;
- это зависит от характеристик файлов и размера раздела.
- Например:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">ext2</span>
- </dt>
- <dd>
- <p>
- подходит для небольших разделов, которые редко
- обновляются, например /boot.
- </p>
- </dd>
- <dt>
- <span class="term">ext3</span>
- </dt>
- <dd>
- <p>
- это обновленная файловая система ext2, которая включает в
- себя журнал, помогающий восстановить состояние раздела в
- случае некорректного завершения работы. Обычно
- используется в качестве файловой системы общего
- назначения.
- </p>
- </dd>
- <dt>
- <span class="term">ext4</span>
- </dt>
- <dd>
- <p>
- является последней версией файловых систем семейства ext.
- Она предоставляет несколько новых возможностей, включая
- временные метки с точностью до наносекунды, создание и
- использование очень больших файлов (16 ТБ) и повышение
- скорости работы.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Другие файловые системы, включая FAT32, NTFS, ReiserFS, JFS и
- XFS, полезны для конкретных задач. Более подробную информацию
- об этих файловых системах и многих других можно найти по адресу
- <a class="ulink" href=
- "https://en.wikipedia.org/wiki/Comparison_of_file_systems">https://en.wikipedia.org/wiki/Comparison_of_file_systems</a>.
- </p>
- <p>
- LFS предполагает, что корневая файловая система (/) имеет тип
- ext4. Чтобы создать файловую систему <code class=
- "systemitem">ext4</code> на разделе LFS, выполните следующую
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkfs -v -t ext4 /dev/<em class=
- "replaceable"><code>&lt;xxx&gt;</code></em></kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;xxx&gt;</code></em>
- именем раздела LFS
- </p>
- <p>
- Если вы используете существующий <code class=
- "systemitem">раздел подкачки</code>, нет необходимости его
- форматировать. Если был создан новый <code class=
- "systemitem">раздел подкачки</code>, его нужно будет
- инициализировать с помощью этой команды:
- </p>
- <pre class="userinput"><kbd class="command">mkswap /dev/<em class=
- "replaceable"><code>&lt;yyy&gt;</code></em></kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;yyy&gt;</code></em>
- именем <code class="systemitem">раздела подкачки</code>.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-aboutlfs" name=
- "ch-partitioning-aboutlfs"></a>2.6. Установка переменной
- $LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этой книге переменная окружения <code class=
- "envar">LFS</code> будет использоваться несколько раз. Вы
- должны убедиться, что эта переменная всегда определена в
- процессе сборки LFS. Она должна быть установлена на каталог, в
- котором вы будете создавать свою систему LFS — мы, для примера,
- будем использовать <code class="filename">/mnt/lfs</code>, но
- вы можете выбрать любой другой. Если вы собираете LFS на
- отдельном разделе, этот каталог будет точкой монтирования для
- раздела. Выберите расположение каталога и установите переменную
- с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class="command">export LFS=<em class=
- "replaceable"><code>/mnt/lfs</code></em></kbd></pre>
- <p>
- Установка этой переменной полезна тем, что такие команды, как
- <span class="command"><strong>mkdir -v
- $LFS/tools</strong></span>, можно вводить буквально. Оболочка
- автоматически заменит <span class="quote">«<span class=
- "quote">$LFS</span>»</span> на <span class=
- "quote">«<span class="quote">/mnt/lfs</span>»</span> (или любое
- другое значение переменной) при обработке команды.
- </p>
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- Не забывайте проверять, что переменная <code class=
- "envar">LFS</code> установлена, всякий раз, когда вы
- покидаете и снова входите в текущую рабочую среду (например,
- когда выполняете <span class=
- "command"><strong>su</strong></span> для <code class=
- "systemitem">root</code> или другого пользователя).
- Убедитесь, что переменная <code class="envar">LFS</code>
- настроена правильно:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo $LFS</kbd></pre>
- <p>
- Убедитесь, что в выходных данных указан путь к местоположению
- сборки вашей системы LFS, то есть <code class=
- "filename">/mnt/lfs</code>, если вы следовали примеру. Если
- вывод неверен, используйте команду, указанную ранее, чтобы
- установить <code class="envar">$LFS</code> в правильное
- значение каталога LFS.
- </p>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Один из способов гарантировать, что переменная <code class=
- "envar">LFS</code> всегда установлена, — отредактировать файл
- <code class="filename">.bash_profile</code> как в вашем
- личном домашнем каталоге, так и в <code class=
- "filename">/root/.bash_profile</code> и добавить приведенную
- выше команду экспорта. Кроме того, оболочка, указанная в
- файле <code class="filename">/etc/passwd</code> для всех
- пользователей, которым нужна переменная <code class=
- "envar">LFS</code>, должна быть bash, чтобы гарантировать,
- что файл <code class="filename">/root/.bash_profile</code>
- используется как часть процесса входа в систему.
- </p>
- <p>
- Еще один способ, который используется для входа в
- хост-систему. При входе в систему через диспетчер
- графического дисплея пользовательский <code class=
- "filename">.bash_profile</code> не используется при запуске
- виртуального терминала. В этом случае добавьте команду
- экспорта в файл <code class="filename">.bashrc</code> для
- своего пользователя и <code class="systemitem">root</code>.
- Кроме того, некоторые дистрибутивы используют тест "if" и не
- запускают оставшиеся инструкции <code class=
- "filename">.bashrc</code> для не интерактивного вызова bash.
- Обязательно разместите команду экспорта перед тестом для не
- интерактивного использования.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-partitioning-mounting" name=
- "ch-partitioning-mounting"></a>2.7. Монтирование нового
- раздела
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Теперь, когда файловая система создана, раздел должен быть
- смонтирован, чтобы хост-система могла получить доступ к нему. В
- книге предполагается, что файловая система монтируется в
- каталог, указанный в переменной <code class="envar">LFS</code>,
- описанной в предыдущем разделе.
- </p>
- <p>
- Строго говоря, нельзя <span class="quote">«<span class=
- "quote">смонтировать раздел</span>»</span>. Монтируется
- <span class="emphasis"><em>файловая система</em></span> на этом
- разделе. Но так как один раздел не может содержать несколько
- файловых систем, люди часто говорят о разделе и связанной с ним
- файловой системе так, как если бы они были одним и тем же.
- </p>
- <p>
- Создайте точку монтирования и смонтируйте файловую систему LFS
- с помощью этих команд:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -pv $LFS
-mount -v -t ext4 /dev/<em class=
-"replaceable"><code>&lt;xxx&gt;</code></em> $LFS</kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;xxx&gt;</code></em>
- на имя раздела LFS.
- </p>
- <p>
- Если вы используете несколько разделов для LFS (например, один
- для <code class="filename">/</code>, а другой для <code class=
- "filename">/home</code>), смонтируйте их вот так:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -pv $LFS
-mount -v -t ext4 /dev/<em class=
-"replaceable"><code>&lt;xxx&gt;</code></em> $LFS
-mkdir -v $LFS/home
-mount -v -t ext4 /dev/<em class=
-"replaceable"><code>&lt;yyy&gt;</code></em> $LFS/home</kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;xxx&gt;</code></em>
- и <em class="replaceable"><code>&lt;yyy&gt;</code></em>
- соответствующими именами разделов.
- </p>
- <p>
- Убедитесь, что этот новый раздел не смонтирован со слишком
- строгими разрешениями (такими как параметры <code class=
- "option">nosuid</code> или <code class="option">nodev</code>).
- Запустите команду <span class=
- "command"><strong>mount</strong></span> без каких-либо
- параметров, чтобы увидеть, какие параметры установлены для
- смонтированного раздела LFS. Если установлены <code class=
- "option">nosuid</code> и/или <code class="option">nodev</code>,
- раздел должен быть размонтирован и смонтирован повторно.
- </p>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Приведенные выше инструкции предполагают, что вы не будете
- перезагружать компьютер в процессе сборки LFS. Если вы
- выключите свою систему, вам придется либо перемонтировать
- раздел LFS каждый раз, когда вы перезапускаете процесс
- сборки, либо изменить файл <code class=
- "filename">/etc/fstab</code> вашей хост-системы, чтобы он
- автоматически монтировал его при загрузке. Например, вы
- можете добавить эту строку в свой <code class=
- "filename">/etc/fstab</code>:
- </p>
- <pre class="screen">/dev/<em class=
- "replaceable"><code>&lt;xxx&gt;</code></em> /mnt/lfs ext4 defaults 1 1</pre>
- <p>
- Если вы используете дополнительные разделы, обязательно
- добавьте их.
- </p>
- </div>
- <p>
- Если вы используете <code class="systemitem">раздел
- подкачки</code>, убедитесь, что он включен с помощью команды
- <span class="command"><strong>swapon</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">/sbin/swapon -v /dev/<em class=
- "replaceable"><code>&lt;zzz&gt;</code></em></kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;zzz&gt;</code></em>
- именем <code class="systemitem">раздела подкачки</code>.
- </p>
- <p>
- Теперь, когда новый раздел LFS готов к работе, пришло время
- загрузить пакеты.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-getting-materials" name=
- "chapter-getting-materials"></a>Глава 3. Пакеты и патчи
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-materials-introduction" name=
- "ch-materials-introduction"></a>3.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Эта глава содержит список пакетов, которые необходимо загрузить
- для сборки базовой системы Linux. Перечисленные версии
- программного обеспечения, соответствуют версиям, которые,
- проверены и работают, книга основана на их использовании. Мы
- настоятельно рекомендуем не использовать другие версии пакетов,
- потому что команды сборки для одной версии могут не работать с
- другой, если только другая версия не указана в сообщениях об
- ошибках LFS или рекомендациях по безопасности. В новейших
- версиях пакетов также могут быть проблемы, требующие обходных
- путей. Эти обходные пути будут стабилизированы в
- разрабатываемой версии книги.
- </p>
- <p>
- Для некоторых пакетов архив релиза и архив снимка репозитория
- (Git или SVN) для этого выпуска могут быть опубликованы с
- одинаковыми именами файлов. Релиз содержит сгенерированные
- файлы (например, скрипт <span class=
- "command"><strong>configure</strong></span>, сгенерированный
- пакетом <span class="command"><strong>autoconf</strong></span>)
- в дополнение к содержимому соответствующего моментального
- снимка репозитория. В книге везде, где это возможно,
- используются релизные архивы. Использование моментального
- снимка вместо tar-архива, указанного в книге, может вызвать
- проблемы.
- </p>
- <p>
- Источники загрузки могут быть недоступны. Если источник
- изменился с момента публикации этой книги, Google (<a class=
- "ulink" href=
- "https://www.google.com/">https://www.google.com/</a>)
- предоставляет удобную поисковую систему для поиска большинства
- пакетов. Если поиск не увенчался успехом, попробуйте один из
- альтернативных способов загрузки, расположенных по адресу
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/mirrors.html#files">https://mirror.linuxfromscratch.ru/lfs/mirrors.html#files</a>.
- </p>
- <p>
- Загруженные пакеты и патчи необходимо где-нибудь хранить, чтобы
- они были доступны на протяжении всей сборки. Рабочий каталог
- также необходим для распаковки исходников и их сборки.
- <code class="filename">$LFS/sources</code> можно использовать и
- как место для хранения архивов и патчей, и как рабочий каталог.
- При использовании этого каталога необходимые элементы будут
- расположены в разделе LFS и будут доступны на всех этапах
- процесса сборки.
- </p>
- <p>
- Чтобы создать этот каталог, выполните следующую команду от
- имени пользователя <code class="systemitem">root</code> перед
- началом загрузки:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -v $LFS/sources</kbd></pre>
- <p>
- Сделайте этот каталог доступным для записи и установите липкий
- бит. <span class="quote">«<span class="quote">Липкий
- бит</span>»</span> означает, что даже если несколько
- пользователей имеют право на запись в каталог, только владелец
- файла может удалить файл в таком каталоге. Следующая команда
- активирует режимы записи и липкий бит:
- </p>
- <pre class="userinput"><kbd class=
- "command">chmod -v a+wt $LFS/sources</kbd></pre>
- <p>
- Есть несколько способов получить все необходимые пакеты и патчи
- для сборки LFS:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Файлы можно загрузить по отдельности, как описано в
- следующих двух разделах.
- </p>
- </li>
- <li class="listitem">
- <p>
- Для стабильных версий книги архив со всеми необходимыми
- файлами можно загрузить с одного из зеркал LFS,
- перечисленных на странице <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/mirrors.html#files">https://mirror.linuxfromscratch.ru/mirrors.html#files</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- Файлы можно загрузить с помощью <span class=
- "command"><strong>wget</strong></span> и wget-list.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Чтобы загрузить все пакеты и патчи, используя <a class="ulink"
- href="wget-list-sysv">wget-list-sysv</a> в качестве входных
- данных для команды wget, наберите команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">wget --input-file=wget-list-sysv --continue --directory-prefix=$LFS/sources</kbd></pre>
- <p>
- Начиная с LFS-7.0, существует отдельный файл <a class="ulink"
- href="md5sums">md5sums</a>, который можно использовать для
- проверки всех пакетов. Поместите этот файл в <code class=
- "filename">$LFS/sources</code> и выполните:
- </p>
- <pre class="userinput"><kbd class="command">pushd $LFS/sources
- md5sum -c md5sums
-popd</kbd></pre>
- <p>
- Эту проверку можно использовать после загрузки файлов любым из
- перечисленных выше способов.
- </p>
- <p>
- Если пакеты и исправления загружаются от имени пользователя,
- без привилегий <code class="systemitem">root</code>, то файлы
- будут принадлежать этому пользователю. Файловая система
- записывает владельца по его UID, а UID обычного пользователя в
- хост-дистрибутиве не будет присвоен в LFS. Таким образом, файлы
- останутся принадлежащими безымянному UID в конечной системе
- LFS. Если вы не назначили тот же UID для своего пользователя в
- системе LFS, измените владельца этих файлов на <code class=
- "systemitem">root</code> сейчас, чтобы избежать этой проблемы:
- </p>
- <pre class="userinput"><kbd class=
- "command">chown root:root $LFS/sources/*</kbd></pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-materials-packages" name=
- "ch-materials-packages"></a>3.2. Все пакеты
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Ознакомьтесь с <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/advisories/">рекомендациями
- по безопасности</a> перед загрузкой пакетов, чтобы узнать,
- следует ли использовать более новую версию пакета, чтобы
- избежать проблем безопасности.
- </p>
- <p>
- При выходе новых версий, старые версии пакетов могут быть
- удалены, особенно, если они содержали уязвимости. Если одна
- или несколько ссылок ниже недоступны, сначала ознакомьтесь с
- рекомендациями по безопасности, чтобы понять следует ли
- использовать более новую версию (с исправленной уязвимостью).
- Если нет, попробуйте скачать удаленный пакет с зеркала. Хотя
- старый релиз можно скачать с зеркала (даже если он был удален
- из-за уязвимости), для сборки системы не рекомендуется
- использовать версию, которая уязвима.
- </p>
- </div>
- <p>
- Загрузите или иным образом получите следующие пакеты:
- </p>
- <div class="materials">
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">Acl (2.3.2) - <span class="token">363
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://savannah.nongnu.org/projects/acl">https://savannah.nongnu.org/projects/acl</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://download.savannah.gnu.org/releases/acl/acl-2.3.2.tar.xz">
- https://download.savannah.gnu.org/releases/acl/acl-2.3.2.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">590765dee95907dbc3c856f7255bd669</code>
- </p>
- </dd>
- <dt>
- <span class="term">Attr (2.5.2) - <span class="token">484
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://savannah.nongnu.org/projects/attr">https://savannah.nongnu.org/projects/attr</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://download.savannah.gnu.org/releases/attr/attr-2.5.2.tar.gz">
- https://download.savannah.gnu.org/releases/attr/attr-2.5.2.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">227043ec2f6ca03c0948df5517f9c927</code>
- </p>
- </dd>
- <dt>
- <span class="term">Autoconf (2.72) - <span class=
- "token">1,360 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/autoconf/">https://www.gnu.org/software/autoconf/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz">
- https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">1be79f7106ab6767f18391c5e22be701</code>
- </p>
- </dd>
- <dt>
- <span class="term">Automake (1.16.5) - <span class=
- "token">1,565 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/automake/">https://www.gnu.org/software/automake/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz">
- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">4017e96f89fca45ca946f1c5db6be714</code>
- </p>
- </dd>
- <dt>
- <span class="term">Bash (5.2.21) - <span class=
- "token">10,696 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/bash/">https://www.gnu.org/software/bash/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/bash/bash-5.2.21.tar.gz">https://ftp.gnu.org/gnu/bash/bash-5.2.21.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">ad5b38410e3bf0e9bcc20e2765f5e3f9</code>
- </p>
- </dd>
- <dt>
- <span class="term">Bc (6.7.5) - <span class="token">460
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://git.gavinhoward.com/gavin/bc">https://git.gavinhoward.com/gavin/bc</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/gavinhoward/bc/releases/download/6.7.5/bc-6.7.5.tar.xz">
- https://github.com/gavinhoward/bc/releases/download/6.7.5/bc-6.7.5.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">e249b1f86f886d6fb71c15f72b65dd3d</code>
- </p>
- </dd>
- <dt>
- <span class="term">Binutils (2.42) - <span class=
- "token">26,922 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/binutils/">https://www.gnu.org/software/binutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://sourceware.org/pub/binutils/releases/binutils-2.42.tar.xz">
- https://sourceware.org/pub/binutils/releases/binutils-2.42.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">a075178a9646551379bfb64040487715</code>
- </p>
- </dd>
- <dt>
- <span class="term">Bison (3.8.2) - <span class=
- "token">2,752 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/bison/">https://www.gnu.org/software/bison/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz">https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c28f119f405a2304ff0a7ccdcc629713</code>
- </p>
- </dd>
- <dt>
- <span class="term">Bzip2 (1.0.8) - <span class=
- "token">792 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz">
- https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">67e051268d0c475ea773822f7500d0e5</code>
- </p>
- </dd>
- <dt>
- <span class="term">Check (0.15.2) - <span class=
- "token">760 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://libcheck.github.io/check">https://libcheck.github.io/check</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz">
- https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">50fcafcecde5a380415b12e9c574e0b2</code>
- </p>
- </dd>
- <dt>
- <span class="term">Coreutils (9.4) - <span class=
- "token">5,840 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/coreutils/">https://www.gnu.org/software/coreutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz">
- https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">459e9546074db2834eefe5421f250025</code>
- </p>
- </dd>
- <dt>
- <span class="term">DejaGNU (1.6.3) - <span class=
- "token">608 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/dejagnu/">https://www.gnu.org/software/dejagnu/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz">https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">68c5208c58236eba447d7d6d1326b821</code>
- </p>
- </dd>
- <dt>
- <span class="term">Diffutils (3.10) - <span class=
- "token">1,587 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/diffutils/">https://www.gnu.org/software/diffutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/diffutils/diffutils-3.10.tar.xz">
- https://ftp.gnu.org/gnu/diffutils/diffutils-3.10.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2745c50f6f4e395e7b7d52f902d075bf</code>
- </p>
- </dd>
- <dt>
- <span class="term">E2fsprogs (1.47.0) - <span class=
- "token">9,412 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "http://e2fsprogs.sourceforge.net/">http://e2fsprogs.sourceforge.net/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.47.0/e2fsprogs-1.47.0.tar.gz">
- https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.47.0/e2fsprogs-1.47.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">6b4f18a33873623041857b4963641ee9</code>
- </p>
- </dd>
- <dt>
- <span class="term">Elfutils (0.190) - <span class=
- "token">8,949 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://sourceware.org/elfutils/">https://sourceware.org/elfutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://sourceware.org/ftp/elfutils/0.190/elfutils-0.190.tar.bz2">
- https://sourceware.org/ftp/elfutils/0.190/elfutils-0.190.tar.bz2</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">79ad698e61a052bea79e77df6a08bc4b</code>
- </p>
- </dd>
- <dt>
- <span class="term">Expat (2.6.0) - <span class=
- "token">473 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://libexpat.github.io/">https://libexpat.github.io/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://prdownloads.sourceforge.net/expat/expat-2.6.0.tar.xz">
- https://prdownloads.sourceforge.net/expat/expat-2.6.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">bd169cb11f4b9bdfddadf9e88a5c4d4b</code>
- </p>
- </dd>
- <dt>
- <span class="term">Expect (5.45.4) - <span class=
- "token">618 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://core.tcl.tk/expect/">https://core.tcl.tk/expect/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz">
- https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">00fce8de158422f5ccd2666512329bd2</code>
- </p>
- </dd>
- <dt>
- <span class="term">File (5.45) - <span class=
- "token">1,218 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.darwinsys.com/file/">https://www.darwinsys.com/file/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://astron.com/pub/file/file-5.45.tar.gz">https://astron.com/pub/file/file-5.45.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">26b2a96d4e3a8938827a1e572afd527a</code>
- </p>
- </dd>
- <dt>
- <span class="term">Findutils (4.9.0) - <span class=
- "token">1,999 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/findutils/">https://www.gnu.org/software/findutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz">
- https://ftp.gnu.org/gnu/findutils/findutils-4.9.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">4a4a547e888a944b2f3af31d789a1137</code>
- </p>
- </dd>
- <dt>
- <span class="term">Flex (2.6.4) - <span class=
- "token">1,386 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://github.com/westes/flex">https://github.com/westes/flex</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz">
- https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2882e3179748cc9f9c23ec593d6adc8d</code>
- </p>
- </dd>
- <dt>
- <span class="term">Flit-core (3.9.0) - <span class=
- "token">41 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://pypi.org/project/flit-core/">https://pypi.org/project/flit-core/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://pypi.org/packages/source/f/flit-core/flit_core-3.9.0.tar.gz">
- https://pypi.org/packages/source/f/flit-core/flit_core-3.9.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">3bc52f1952b9a78361114147da63c35b</code>
- </p>
- </dd>
- <dt>
- <span class="term">Gawk (5.3.0) - <span class=
- "token">3,356 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gawk/">https://www.gnu.org/software/gawk/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gawk/gawk-5.3.0.tar.xz">https://ftp.gnu.org/gnu/gawk/gawk-5.3.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">97c5a7d83f91a7e1b2035ebbe6ac7abd</code>
- </p>
- </dd>
- <dt>
- <span class="term">GCC (13.2.0) - <span class=
- "token">85,800 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://gcc.gnu.org/">https://gcc.gnu.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz">
- https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">e0e48554cc6e4f261d55ddee9ab69075</code>
- </p>
- </dd>
- <dt>
- <span class="term">GDBM (1.23) - <span class=
- "token">1,092 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gdbm/">https://www.gnu.org/software/gdbm/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz">https://ftp.gnu.org/gnu/gdbm/gdbm-1.23.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">8551961e36bf8c70b7500d255d3658ec</code>
- </p>
- </dd>
- <dt>
- <span class="term">Gettext (0.22.4) - <span class=
- "token">10,016 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gettext/gettext-0.22.4.tar.xz">
- https://ftp.gnu.org/gnu/gettext/gettext-0.22.4.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2d8507d003ef3ddd1c172707ffa97ed8</code>
- </p>
- </dd>
- <dt>
- <span class="term">Glibc (2.39) - <span class=
- "token">18,092 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/libc/">https://www.gnu.org/software/libc/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/glibc/glibc-2.39.tar.xz">https://ftp.gnu.org/gnu/glibc/glibc-2.39.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">be81e87f72b5ea2c0ffe2bedfeb680c6</code>
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Разработчики Glibc поддерживают <a class="ulink"
- href="https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.39/master">
- Git ветку</a> содержащую исправления, которые
- заслуживают внимания для Glibc-2.39 но, к сожалению,
- выпущенные после релиза Glibc-2.39. Редакторы LFS
- публикуют рекомендации по безопасности, если в ветку
- добавлено какое-либо исправление безопасности, но для
- других недавно добавленных патчей не будет
- предпринято никаких действий. Вы можете
- самостоятельно просмотреть патчи и включить некоторые
- из них, если посчитаете их важными.
- </p>
- </div>
- </dd>
- <dt>
- <span class="term">GMP (6.3.0) - <span class=
- "token">2,046 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gmp/">https://www.gnu.org/software/gmp/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz">https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">956dc04e864001a9c22429f761f2c283</code>
- </p>
- </dd>
- <dt>
- <span class="term">Gperf (3.1) - <span class=
- "token">1,188 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gperf/">https://www.gnu.org/software/gperf/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz">https://ftp.gnu.org/gnu/gperf/gperf-3.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">9e251c0a618ad0824b51117d5d9db87e</code>
- </p>
- </dd>
- <dt>
- <span class="term">Grep (3.11) - <span class=
- "token">1,664 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/grep/">https://www.gnu.org/software/grep/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/grep/grep-3.11.tar.xz">https://ftp.gnu.org/gnu/grep/grep-3.11.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">7c9bbd74492131245f7cdb291fa142c0</code>
- </p>
- </dd>
- <dt>
- <span class="term">Groff (1.23.0) - <span class=
- "token">7,259 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/groff/">https://www.gnu.org/software/groff/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz">https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">5e4f40315a22bb8a158748e7d5094c7d</code>
- </p>
- </dd>
- <dt>
- <span class="term">GRUB (2.12) - <span class=
- "token">6,524 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/grub/">https://www.gnu.org/software/grub/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz">https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">60c564b1bdc39d8e43b3aab4bc0fb140</code>
- </p>
- </dd>
- <dt>
- <span class="term">Gzip (1.13) - <span class="token">819
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/gzip/">https://www.gnu.org/software/gzip/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/gzip/gzip-1.13.tar.xz">https://ftp.gnu.org/gnu/gzip/gzip-1.13.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">d5c9fc9441288817a4a0be2da0249e29</code>
- </p>
- </dd>
- <dt>
- <span class="term">Iana-Etc (20240125) - <span class=
- "token">589 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.iana.org/protocols">https://www.iana.org/protocols</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/Mic92/iana-etc/releases/download/20240125/iana-etc-20240125.tar.gz">
- https://github.com/Mic92/iana-etc/releases/download/20240125/iana-etc-20240125.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">aed66d04de615d76c70890233081e584</code>
- </p>
- </dd>
- <dt>
- <span class="term">Inetutils (2.5) - <span class=
- "token">1,632 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/inetutils/">https://www.gnu.org/software/inetutils/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/inetutils/inetutils-2.5.tar.xz">
- https://ftp.gnu.org/gnu/inetutils/inetutils-2.5.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">9e5a6dfd2d794dc056a770e8ad4a9263</code>
- </p>
- </dd>
- <dt>
- <span class="term">Intltool (0.51.0) - <span class=
- "token">159 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://freedesktop.org/wiki/Software/intltool">https://freedesktop.org/wiki/Software/intltool</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz">
- https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">12e517cac2b57a0121cda351570f1e63</code>
- </p>
- </dd>
- <dt>
- <span class="term">IPRoute2 (6.7.0) - <span class=
- "token">900 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/utils/net/iproute2/">https://www.kernel.org/pub/linux/utils/net/iproute2/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.7.0.tar.xz">
- https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.7.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">35d8277d1469596b7edc07a51470a033</code>
- </p>
- </dd>
- <dt>
- <span class="term">Jinja2 (3.1.3) - <span class=
- "token">264 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://jinja.palletsprojects.com/en/3.1.x/">https://jinja.palletsprojects.com/en/3.1.x/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://pypi.org/packages/source/J/Jinja2/Jinja2-3.1.3.tar.gz">
- https://pypi.org/packages/source/J/Jinja2/Jinja2-3.1.3.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">caf5418c851eac59e70a78d9730d4cea</code>
- </p>
- </dd>
- <dt>
- <span class="term">Kbd (2.6.4) - <span class=
- "token">1,470 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://kbd-project.org/">https://kbd-project.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/utils/kbd/kbd-2.6.4.tar.xz">
- https://www.kernel.org/pub/linux/utils/kbd/kbd-2.6.4.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">e2fd7adccf6b1e98eb1ae8d5a1ce5762</code>
- </p>
- </dd>
- <dt>
- <span class="term">Kmod (31) - <span class="token">558
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://github.com/kmod-project/kmod">https://github.com/kmod-project/kmod</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-31.tar.xz">
- https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-31.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">6165867e1836d51795a11ea4762ff66a</code>
- </p>
- </dd>
- <dt>
- <span class="term">Less (643) - <span class="token">579
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.greenwoodsoftware.com/less/">https://www.greenwoodsoftware.com/less/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.greenwoodsoftware.com/less/less-643.tar.gz">
- https://www.greenwoodsoftware.com/less/less-643.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">cf05e2546a3729492b944b4874dd43dd</code>
- </p>
- </dd>
- <dt>
- <span class="term">LFS-Bootscripts (20230728) -
- <span class="token">33 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/downloads/12.1/lfs-bootscripts-20230728.tar.xz">
- https://mirror.linuxfromscratch.ru/lfs/downloads/12.1/lfs-bootscripts-20230728.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c37ac1c5dbb57fb326d9c32c8f8b49c7</code>
- </p>
- </dd>
- <dt>
- <span class="term">Libcap (2.69) - <span class=
- "token">185 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://sites.google.com/site/fullycapable/">https://sites.google.com/site/fullycapable/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.69.tar.xz">
- https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.69.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">4667bacb837f9ac4adb4a1a0266f4b65</code>
- </p>
- </dd>
- <dt>
- <span class="term">Libffi (3.4.4) - <span class=
- "token">1,331 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://sourceware.org/libffi/">https://sourceware.org/libffi/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz">
- https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">0da1a5ed7786ac12dcbaf0d499d8a049</code>
- </p>
- </dd>
- <dt>
- <span class="term">Libpipeline (1.5.7) - <span class=
- "token">956 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://libpipeline.nongnu.org/">https://libpipeline.nongnu.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.7.tar.gz">
- https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.7.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">1a48b5771b9f6c790fb4efdb1ac71342</code>
- </p>
- </dd>
- <dt>
- <span class="term">Libtool (2.4.7) - <span class=
- "token">996 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/libtool/">https://www.gnu.org/software/libtool/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.xz">https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2fc0b6ddcd66a89ed6e45db28fa44232</code>
- </p>
- </dd>
- <dt>
- <span class="term">Libxcrypt (4.4.36) - <span class=
- "token">610 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://github.com/besser82/libxcrypt/">https://github.com/besser82/libxcrypt/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/besser82/libxcrypt/releases/download/v4.4.36/libxcrypt-4.4.36.tar.xz">
- https://github.com/besser82/libxcrypt/releases/download/v4.4.36/libxcrypt-4.4.36.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">b84cd4104e08c975063ec6c4d0372446</code>
- </p>
- </dd>
- <dt>
- <span class="term">Linux (6.7.4) - <span class=
- "token">138,130 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.kernel.org/">https://www.kernel.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.7.4.tar.xz">
- https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.7.4.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">370e1b6155ae63133380e421146619e0</code>
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Ядро Linux обновляется достаточно часто из-за
- обнаружения уязвимостей в системе безопасности. Можно
- использовать последнюю стабильную версию ядра, если
- на странице с ошибками и рекомендациями по
- безопасности не указано иное.
- </p>
- <p>
- Для пользователей, у которых ограниченный или
- тарифицируемый выход в интернет, и которые хотят
- обновить ядро Linux, можно скачать базовую версию
- ядра, а затем применить к ней патчи, которые могут
- быть загружены отдельно. Это может сэкономить немного
- времени или стоимость при обновлению до следующих
- версий.
- </p>
- </div>
- </dd>
- <dt>
- <span class="term">M4 (1.4.19) - <span class=
- "token">1,617 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/m4/">https://www.gnu.org/software/m4/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz">https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">0d90823e1426f1da2fd872df0311298d</code>
- </p>
- </dd>
- <dt>
- <span class="term">Make (4.4.1) - <span class=
- "token">2,300 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/make/">https://www.gnu.org/software/make/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz">https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c8469a3713cbbe04d955d4ae4be23eeb</code>
- </p>
- </dd>
- <dt>
- <span class="term">Man-DB (2.12.0) - <span class=
- "token">1,941 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.nongnu.org/man-db/">https://www.nongnu.org/man-db/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://download.savannah.gnu.org/releases/man-db/man-db-2.12.0.tar.xz">
- https://download.savannah.gnu.org/releases/man-db/man-db-2.12.0.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">67e0052fa200901b314fad7b68c9db27</code>
- </p>
- </dd>
- <dt>
- <span class="term">Man-pages (6.06) - <span class=
- "token">2,116 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.kernel.org/doc/man-pages/">https://www.kernel.org/doc/man-pages/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.06.tar.xz">
- https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.06.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">26b39e38248144156d437e1e10cb20bf</code>
- </p>
- </dd>
- <dt>
- <span class="term">MarkupSafe (2.1.5) - <span class=
- "token">19 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://palletsprojects.com/p/markupsafe/">https://palletsprojects.com/p/markupsafe/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-2.1.5.tar.gz">
- https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-2.1.5.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">8fe7227653f2fb9b1ffe7f9f2058998a</code>
- </p>
- </dd>
- <dt>
- <span class="term">Meson (1.3.2) - <span class=
- "token">2,172 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://mesonbuild.com">https://mesonbuild.com</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-1.3.2.tar.gz">
- https://github.com/mesonbuild/meson/releases/download/1.3.2/meson-1.3.2.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2d0ebd3a24249617b1c4d30026380cf8</code>
- </p>
- </dd>
- <dt>
- <span class="term">MPC (1.3.1) - <span class="token">756
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.multiprecision.org/">https://www.multiprecision.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz">https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">5c9bc658c9fd0f940e8e3e0f09530c62</code>
- </p>
- </dd>
- <dt>
- <span class="term">MPFR (4.2.1) - <span class=
- "token">1,459 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.mpfr.org/">https://www.mpfr.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.1.tar.xz">https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.1.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">523c50c6318dde6f9dc523bc0244690a</code>
- </p>
- </dd>
- <dt>
- <span class="term">Ncurses (6.4-20230520) - <span class=
- "token">2,156 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/ncurses/">https://www.gnu.org/software/ncurses/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/ncurses-6.4-20230520.tar.xz">
- https://anduin.linuxfromscratch.org/LFS/ncurses-6.4-20230520.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c5367e829b6d9f3f97b280bb3e6bfbc3</code>
- </p>
- </dd>
- <dt>
- <span class="term">Ninja (1.11.1) - <span class=
- "token">225 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://ninja-build.org/">https://ninja-build.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/ninja-build/ninja/archive/v1.11.1/ninja-1.11.1.tar.gz">
- https://github.com/ninja-build/ninja/archive/v1.11.1/ninja-1.11.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">32151c08211d7ca3c1d832064f6939b0</code>
- </p>
- </dd>
- <dt>
- <span class="term">OpenSSL (3.2.1) - <span class=
- "token">17,318 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.openssl.org/">https://www.openssl.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.openssl.org/source/openssl-3.2.1.tar.gz">https://www.openssl.org/source/openssl-3.2.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c239213887804ba00654884918b37441</code>
- </p>
- </dd>
- <dt>
- <span class="term">Patch (2.7.6) - <span class=
- "token">766 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://savannah.gnu.org/projects/patch/">https://savannah.gnu.org/projects/patch/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz">https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">78ad9937e4caadcba1526ef1853730d5</code>
- </p>
- </dd>
- <dt>
- <span class="term">Perl (5.38.2) - <span class=
- "token">13,359 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.perl.org/">https://www.perl.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.cpan.org/src/5.0/perl-5.38.2.tar.xz">https://www.cpan.org/src/5.0/perl-5.38.2.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">d3957d75042918a23ec0abac4a2b7e0a</code>
- </p>
- </dd>
- <dt>
- <span class="term">Pkgconf (2.1.1) - <span class=
- "token">305 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "http://pkgconf.org/">http://pkgconf.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://distfiles.ariadne.space/pkgconf/pkgconf-2.1.1.tar.xz">
- https://distfiles.ariadne.space/pkgconf/pkgconf-2.1.1.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">bc29d74c2483197deb9f1f3b414b7918</code>
- </p>
- </dd>
- <dt>
- <span class="term">Procps (4.0.4) - <span class=
- "token">1,369 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://gitlab.com/procps-ng/procps/">https://gitlab.com/procps-ng/procps/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.4.tar.xz">
- https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.4.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2f747fc7df8ccf402d03e375c565cf96</code>
- </p>
- </dd>
- <dt>
- <span class="term">Psmisc (23.6) - <span class=
- "token">415 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://gitlab.com/psmisc/psmisc">https://gitlab.com/psmisc/psmisc</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.6.tar.xz">
- https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.6.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">ed3206da1184ce9e82d607dc56c52633</code>
- </p>
- </dd>
- <dt>
- <span class="term">Python (3.12.2) - <span class=
- "token">20,109 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.python.org/">https://www.python.org/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz">
- https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">e7c178b97bf8f7ccd677b94d614f7b3c</code>
- </p>
- </dd>
- <dt>
- <span class="term">Python Documentation (3.12.2) -
- <span class="token">8,065 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.python.org/ftp/python/doc/3.12.2/python-3.12.2-docs-html.tar.bz2">
- https://www.python.org/ftp/python/doc/3.12.2/python-3.12.2-docs-html.tar.bz2</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">8a6310f6288e7f60c3565277ec3b5279</code>
- </p>
- </dd>
- <dt>
- <span class="term">Readline (8.2) - <span class=
- "token">2,973 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://tiswww.case.edu/php/chet/readline/rltop.html">https://tiswww.case.edu/php/chet/readline/rltop.html</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz">https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">4aa1b31be779e6b84f9a96cb66bc50f6</code>
- </p>
- </dd>
- <dt>
- <span class="term">Sed (4.9) - <span class="token">1,365
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/sed/">https://www.gnu.org/software/sed/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz">https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">6aac9b2dbafcd5b7a67a8a9bcb8036c3</code>
- </p>
- </dd>
- <dt>
- <span class="term">Setuptools (69.1.0) - <span class=
- "token">2,168 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://pypi.org/project/setuptools/">https://pypi.org/project/setuptools/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://pypi.org/packages/source/s/setuptools/setuptools-69.1.0.tar.gz">
- https://pypi.org/packages/source/s/setuptools/setuptools-69.1.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">6f6eb780ce12c90d81ce243747ed7ab0</code>
- </p>
- </dd>
- <dt>
- <span class="term">Shadow (4.14.5) - <span class=
- "token">1,765 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://github.com/shadow-maint/shadow/">https://github.com/shadow-maint/shadow/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/shadow-maint/shadow/releases/download/4.14.5/shadow-4.14.5.tar.xz">
- https://github.com/shadow-maint/shadow/releases/download/4.14.5/shadow-4.14.5.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">452b0e59f08bf618482228ba3732d0ae</code>
- </p>
- </dd>
- <dt>
- <span class="term">Sysklogd (1.5.1) - <span class=
- "token">88 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.infodrom.org/projects/sysklogd/">https://www.infodrom.org/projects/sysklogd/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz">
- https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">c70599ab0d037fde724f7210c2c8d7f8</code>
- </p>
- </dd>
- <dt>
- <span class="term">Systemd (255) - <span class=
- "token">14,516 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.freedesktop.org/wiki/Software/systemd/">https://www.freedesktop.org/wiki/Software/systemd/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/systemd/systemd/archive/v255/systemd-255.tar.gz">
- https://github.com/systemd/systemd/archive/v255/systemd-255.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">521cda27409a9edf0370c128fae3e690</code>
- </p>
- </dd>
- <dt>
- <span class="term">Systemd Man Pages(255) - <span class=
- "token">652 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.freedesktop.org/wiki/Software/systemd/">https://www.freedesktop.org/wiki/Software/systemd/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-255.tar.xz">
- https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-255.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">1ebe54d7a80f9abf8f2d14ddfeb2432d</code>
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Команда Linux From Scratch генерирует собственный
- архив справочных страниц, используя исходный код
- systemd. Это делается для того, чтобы избежать
- ненужных зависимостей.
- </p>
- </div>
- </dd>
- <dt>
- <span class="term">Sysvinit (3.08) - <span class=
- "token">263 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://savannah.nongnu.org/projects/sysvinit">https://savannah.nongnu.org/projects/sysvinit</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/slicer69/sysvinit/releases/download/3.08/sysvinit-3.08.tar.xz">
- https://github.com/slicer69/sysvinit/releases/download/3.08/sysvinit-3.08.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">81a05f28d7b67533cfc778fcadea168c</code>
- </p>
- </dd>
- <dt>
- <span class="term">Tar (1.35) - <span class="token">2,263
- KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/tar/">https://www.gnu.org/software/tar/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz">https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">a2d8042658cfd8ea939e6d911eaf4152</code>
- </p>
- </dd>
- <dt>
- <span class="term">Tcl (8.6.13) - <span class=
- "token">10,581 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "http://tcl.sourceforge.net/">http://tcl.sourceforge.net/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://downloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz">
- https://downloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">0e4358aade2f5db8a8b6f2f6d9481ec2</code>
- </p>
- </dd>
- <dt>
- <span class="term">Tcl Documentation (8.6.13) -
- <span class="token">1,165 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://downloads.sourceforge.net/tcl/tcl8.6.13-html.tar.gz">
- https://downloads.sourceforge.net/tcl/tcl8.6.13-html.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">4452f2f6d557f5598cca17b786d6eb68</code>
- </p>
- </dd>
- <dt>
- <span class="term">Texinfo (7.1) - <span class=
- "token">5,416 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.gnu.org/software/texinfo/">https://www.gnu.org/software/texinfo/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://ftp.gnu.org/gnu/texinfo/texinfo-7.1.tar.xz">https://ftp.gnu.org/gnu/texinfo/texinfo-7.1.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">edd9928b4a3f82674bcc3551616eef3b</code>
- </p>
- </dd>
- <dt>
- <span class="term">Time Zone Data (2024a) - <span class=
- "token">444 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.iana.org/time-zones">https://www.iana.org/time-zones</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.iana.org/time-zones/repository/releases/tzdata2024a.tar.gz">
- https://www.iana.org/time-zones/repository/releases/tzdata2024a.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2349edd8335245525cc082f2755d5bf4</code>
- </p>
- </dd>
- <dt>
- <span class="term">Udev-lfs Tarball (udev-lfs-20230818) -
- <span class="token">10 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/udev-lfs-20230818.tar.xz">
- https://anduin.linuxfromscratch.org/LFS/udev-lfs-20230818.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">acd4360d8a5c3ef320b9db88d275dae6</code>
- </p>
- </dd>
- <dt>
- <span class="term">Util-linux (2.39.3) - <span class=
- "token">8,327 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/">
- https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://www.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.3.tar.xz">
- https://www.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.3.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">f3591e6970c017bb4bcd24ae762a98f5</code>
- </p>
- </dd>
- <dt>
- <span class="term">Vim (9.1.0041) - <span class=
- "token">17,224 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://www.vim.org">https://www.vim.org</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/vim/vim/archive/v9.1.0041/vim-9.1.0041.tar.gz">
- https://github.com/vim/vim/archive/v9.1.0041/vim-9.1.0041.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">79dfe62be5d347b1325cbd5ce2a1f9b3</code>
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Версия vim меняется ежедневно. Чтобы получить
- последнюю версию, перейдите на <a class="ulink" href=
- "https://github.com/vim/vim/tags">https://github.com/vim/vim/tags</a>.
- </p>
- </div>
- </dd>
- <dt>
- <span class="term">Wheel (0.42.0) - <span class=
- "token">97 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://pypi.org/project/wheel/">https://pypi.org/project/wheel/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://pypi.org/packages/source/w/wheel/wheel-0.42.0.tar.gz">
- https://pypi.org/packages/source/w/wheel/wheel-0.42.0.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">802ad6e5f9336fcb1c76b7593f0cd22d</code>
- </p>
- </dd>
- <dt>
- <span class="term">XML::Parser (2.47) - <span class=
- "token">276 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://github.com/chorny/XML-Parser">https://github.com/chorny/XML-Parser</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.47.tar.gz">
- https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.47.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">89a8e82cfd2ad948b349c0a69c494463</code>
- </p>
- </dd>
- <dt>
- <span class="term">Xz Utils (5.4.6) - <span class=
- "token">1,645 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://tukaani.org/xz">https://tukaani.org/xz</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/tukaani-project/xz/releases/download/v5.4.6/xz-5.4.6.tar.xz">
- https://github.com/tukaani-project/xz/releases/download/v5.4.6/xz-5.4.6.tar.xz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">7ade7bd1181a731328f875bec62a9377</code>
- </p>
- </dd>
- <dt>
- <span class="term">Zlib (1.3.1) - <span class=
- "token">1,478 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://zlib.net/">https://zlib.net/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://zlib.net/fossils/zlib-1.3.1.tar.gz">https://zlib.net/fossils/zlib-1.3.1.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">9855b6d802d7fe5b7bd5b196a2271655</code>
- </p>
- </dd>
- <dt>
- <span class="term">Zstd (1.5.5) - <span class=
- "token">2,314 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Домашняя страница: <a class="ulink" href=
- "https://facebook.github.io/zstd/">https://facebook.github.io/zstd/</a>
- </p>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz">
- https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">63251602329a106220e0a5ad26ba656f</code>
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <p>
- Общий размер пакетов: примерно 504 MB
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-materials-patches" name=
- "ch-materials-patches"></a>3.3. Необходимые патчи
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В дополнение к пакетам требуется несколько патчей. Эти патчи
- исправляют ошибки в пакетах, которые должны быть исправлены
- сопровождающим. Патчи также вносят небольшие изменения,
- облегчающие работу с пакетами. Для создания системы LFS
- потребуются следующие исправления:
- </p>
- <div class="materials">
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">Bash Upstream Fixes Patch -
- <span class="token">5.9 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/bash-5.2.21-upstream_fixes-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/bash-5.2.21-upstream_fixes-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">2d1691a629c558e894dbb78ee6bf34ef</code>
- </p>
- </dd>
- <dt>
- <span class="term">Bzip2 Documentation Patch -
- <span class="token">1.6 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/bzip2-1.0.8-install_docs-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/bzip2-1.0.8-install_docs-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">6a5ac7e89b791aae556de0f745916f7f</code>
- </p>
- </dd>
- <dt>
- <span class="term">Coreutils Internationalization Fixes
- Patch - <span class="token">166 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/coreutils-9.4-i18n-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/coreutils-9.4-i18n-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">cca7dc8c73147444e77bc45d210229bb</code>
- </p>
- </dd>
- <dt>
- <span class="term">Glibc FHS Patch - <span class=
- "token">2.8 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/glibc-2.39-fhs-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/glibc-2.39-fhs-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">9a5997c3452909b1769918c759eff8a2</code>
- </p>
- </dd>
- <dt>
- <span class="term">Kbd Backspace/Delete Fix Patch -
- <span class="token">12 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/kbd-2.6.4-backspace-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/kbd-2.6.4-backspace-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">f75cca16a38da6caa7d52151f7136895</code>
- </p>
- </dd>
- <dt>
- <span class="term">Readline Upstream Fix Patch -
- <span class="token">13 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/readline-8.2-upstream_fixes-3.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/readline-8.2-upstream_fixes-3.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">9ed497b6cb8adcb8dbda9dee9ebce791</code>
- </p>
- </dd>
- <dt>
- <span class="term">Sysvinit Consolidated Patch -
- <span class="token">2.5 KB</span>:</span>
- </dt>
- <dd>
- <p>
- Ссылка на загрузку: <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/lfs/12.1/sysvinit-3.08-consolidated-1.patch">
- https://mirror.linuxfromscratch.ru/patches/lfs/12.1/sysvinit-3.08-consolidated-1.patch</a>
- </p>
- <p>
- Контрольная сумма MD5: <code class=
- "literal">17ffccbb8e18c39e8cedc32046f3a475</code>
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <p>
- Общий размер этих патчей: примерно 203.8 KB
- </p>
- <p>
- Помимо указанных выше обязательных исправлений, существует ряд
- необязательных патчей, созданных сообществом LFS. Эти
- необязательные исправления решают незначительные проблемы или
- включают функции, которые не включены по умолчанию. Не
- стесняйтесь просматривать базу данных исправлений,
- расположенную по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/patches/downloads/">https://mirror.linuxfromscratch.ru/patches/downloads/</a>,
- и применять патчи, необходимые вашей системе.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-final-preps" name=
- "chapter-final-preps"></a>Глава 4. Заключительный этап
- подготовки
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-preps-introduction" name=
- "ch-preps-introduction"></a>4.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-creatingminlayout" name=
- "ch-tools-creatingminlayout"></a>4.2. Создание ограниченной
- иерархии папок в файловой системе LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этом разделе мы начинаем заполнять файловую систему LFS
- элементами, которые будут основой конечной системы Linux.
- Первым шагом является создание ограниченной иерархии каталогов,
- чтобы программы, скомпилированные в <a class="xref" href=
- "#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- (а также glibc и libstdc++ в <a class="xref" href=
- "#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a>), могли быть
- установлены в их конечном расположении. Это необходимо для
- того, чтобы эти временные программы были перезаписаны при
- сборке окончательных версий в <a class="xref" href=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;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="#chapter-temporary-tools"
- title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- будут скомпилированы с помощью кросс-компилятора (более
- подробная информация приведена в разделе <a class="xref" href=
- "#ch-tools-toolchaintechnotes" title=
- "Технические примечания по сборочным инструментам">Технические
- примечания по сборочным инструментам</a>). Чтобы отделить
- кросс-компилятор от других программ, он будет установлен в
- специальный каталог. Создайте этот каталог с помощью следующей
- команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv $LFS/tools</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Редакторы LFS намеренно решили не использовать каталог
- <code class="filename">/usr/lib64</code>. В процессе сборки
- предпринимается ряд шагов, чтобы убедиться, что набор
- инструментов не будет его использовать. Если по какой-либо
- причине этот каталог появится (это может произойти, если вы
- допустили ошибку, следуя инструкциям, или потому что вы
- установили бинарный пакет, создавший его после сборки LFS),
- это может привести к поломке вашей системы. Вы должны быть
- уверены, что этого каталога не существует.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-preps-addinguser" name=
- "ch-preps-addinguser"></a>4.3. Создание пользователя LFS
- </h2>
- </div>
- </div>
- </div>
- <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">
- <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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-preps-settingenviron" name=
- "ch-preps-settingenviron"></a>4.4. Настройка окружения
- </h2>
- </div>
- </div>
- </div>
- <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 &gt; ~/.bash_profile &lt;&lt; "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 &gt; ~/.bashrc &lt;&lt; "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="#ch-tools-toolchaintechnotes"
- 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="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;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="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;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="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и
- <a class="xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;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">
- <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=
- "#chapter-chroot-temporary-tools" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Глава&nbsp;7</a> ) вы можете безопасно восстановить
- <code class="filename">/etc/bash.bashrc</code> (по желанию).
- </p>
- <p>
- Обратите внимание, что пакет LFS Bash, который мы создадим в
- <a class="xref" href="#ch-system-bash" title=
- "8.35. Bash-5.2.21">Раздел&nbsp;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">
- <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="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и <a class=
- "xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>,
- укажите параметр <code class="envar">MAKEFLAGS</code> в
- <code class="filename">.bashrc сейчас</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt;&gt; ~/.bashrc &lt;&lt; "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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-preps-aboutsbus" name=
- "ch-preps-aboutsbus"></a>4.5. О SBU (Стандартная единица
- времени сборки)
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Многие люди хотели бы знать заранее, сколько примерно времени
- потребуется для компиляции и установки каждого пакета.
- Поскольку Linux From Scratch может быть собран на различных
- системах, невозможно дать точную оценку времени. Сборка самого
- большого пакета (gcc) займет около 5 минут на быстрых системах,
- но может занять несколько дней на более медленных компьютерах!
- Вместо фактического времени в книге используется показатель
- "стандартная единица времени сборки" (SBU).
- </p>
- <p>
- Показатель SBU рассчитывается следующим образом. Первым
- пакетом, который нужно скомпилировать, является binutils в
- <a class="xref" href="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;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">
- <h3>
- Примечание
- </h3>
- <p>
- Когда используется несколько ядер, единицы измерения SBU
- будут различаться еще больше, чем обычно. В некоторых случаях
- make просто завершится ошибкой. Анализ выходных данных
- процесса сборки также будет более сложным, поскольку строки
- разных потоков будут чередоваться. Если вы столкнулись с
- проблемой на этапе сборки, вернитесь к сборке на одном ядре,
- чтобы проанализировать сообщения об ошибках.
- </p>
- <p>
- Представленные здесь значения времени основаны на замерах при
- использовании четырех ядер (-j4). Время, указанное в главе 8,
- также включает время выполнения регрессионных тестов для
- пакета, если не указано иное.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-preps-abouttestsuites" name=
- "ch-preps-abouttestsuites"></a>4.6. О наборах тестов
- </h2>
- </div>
- </div>
- </div>
- <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">
- <h3>
- Примечание
- </h3>
- <p>
- Запуск наборов тестов, описанных в <a class="xref" href=
- "#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и <a class=
- "xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;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>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="part3" name="part3"></a>Часть&nbsp;III.&nbsp;Сборка
- кросс-компилятора и набора временных инструментов
- </h1>
- </div>
- </div>
- </div>
- <div class="part">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="partintro-cross-temp" name=
- "partintro-cross-temp"></a>Важный предварительный материал
- </h2>
- </div>
- </div>
- </div>
- <div class="preface" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-part3intro-intro" name=
- "ch-part3intro-intro"></a>Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Эта часть разделена на три этапа: во-первых, сборка
- кросс-компилятора и связанных с ним библиотек; во-вторых,
- использование этого набора инструментов для сборки нескольких
- утилит таким образом, чтобы изолировать их от основного
- дистрибутива; в-третьих, вход в среду chroot (что ещё больше
- улучшает изоляцию от хоста), и сборка оставшихся инструментов,
- необходимых для создания конечной системы.
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Именно здесь начинается настоящая работа по сборке новой
- системы. Требуется очень тщательно следить за тем, чтобы
- инструкции выполнялись точно так, как они приведены в книге.
- Вы должны попытаться понять, что они делают, и каким бы ни
- было ваше желание скорее закончить сборку, вам следует
- воздержаться от слепого набора команд. Читайте документацию,
- если вы что-то не понимаете. Кроме того, следите за
- результатом выполнения команд, отправляя лог в файл с помощью
- утилиты <span class="command"><strong>tee</strong></span>.
- Это упрощает отладку, если что-то пойдет не так.
- </p>
- </div>
- <p>
- Следующий раздел представляет собой техническое введение в
- процесс сборки, а следующий за ним, содержит <span class=
- "strong"><strong>очень важные</strong></span> общие инструкции
- по компиляции.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-toolchaintechnotes" name=
- "ch-tools-toolchaintechnotes"></a>Технические примечания по
- сборочным инструментам
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этом разделе объясняются причины и некоторые технические
- детали, лежащие в основе сборки пакетов. Не обязательно сразу
- понимать все, что содержится в этом разделе. Большая часть этой
- информации станет более понятной после выполнения фактической
- сборки. Возвращайтесь и перечитывайте этот раздел в любое время
- по ходу сборки.
- </p>
- <p>
- Основная задача <a class="xref" href="#chapter-cross-tools"
- title="Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и
- <a class="xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- состоит в том, чтобы создать временную область, содержащую
- заведомо исправный набор инструментов, которые можно
- изолировать от хост-системы. Использовании команды <span class=
- "command"><strong>chroot</strong></span> в последующих главах,
- обеспечит чистую и безотказную сборку целевой системы LFS.
- Процесс сборки разработан таким образом, чтобы свести к
- минимуму риски для новых читателей и в то же время обеспечить
- наибольшую образовательную ценность.
- </p>
- <p>
- Сборка инструментария основана на процессе <span class=
- "emphasis"><em>кросс-компиляции</em></span>. Кросс-компиляция
- обычно используется для сборки компилятора и его инструментов
- для машины, отличной от той, которая используется для сборки.
- Строго говоря, это не требуется для LFS, так как машина, на
- которой будет работать новая система, та же, что и используемая
- для сборки. Но у кросс-компиляции есть большое преимущество,
- заключающееся в том, что все, что подвергается
- кросс-компиляции, не будет зависеть от окружения хоста.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="cross-compile" name="cross-compile"></a>О
- кросс-компиляции
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Книга LFS не является руководством и не содержит общего
- руководства по созданию кросс (или собственного) тулчейна.
- Не используйте команды из книги для кросс-тулчейна, который
- планируете использовать для каких-либо других целей, кроме
- создания LFS, если у вас нет полного понимания, что вы
- делаете.
- </p>
- </div>
- <p>
- Кросс-компиляция включает в себя некоторые концепции, которые
- сами по себе заслуживают отдельного раздела. Хотя этот раздел
- можно пропустить при первом чтении, возвращение к нему позже
- будет полезно для полного понимания процесса.
- </p>
- <p>
- Давайте определим некоторые термины, используемые в этом
- контексте.
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">сборщик</span>
- </dt>
- <dd>
- <p>
- это машина, на которой мы собираем программы. Обратите
- внимание, что этот компьютер упоминается как
- <span class="quote">«<span class=
- "quote">хост</span>»</span> в других разделах.
- </p>
- </dd>
- <dt>
- <span class="term">хост</span>
- </dt>
- <dd>
- <p>
- это машина/система, на которой будут выполняться
- встроенные программы. Обратите внимание, что
- используемое здесь значение слова <span class=
- "quote">«<span class="quote">хост</span>»</span>
- отличается от того, которое применяется в других
- разделах.
- </p>
- </dd>
- <dt>
- <span class="term">цель</span>
- </dt>
- <dd>
- <p>
- используется только для компиляторов. Это машина, для
- которой компилятор создает код. Он может отличаться как
- от <span class="quote">«<span class=
- "quote">сборщика</span>»</span>, так и от <span class=
- "quote">«<span class="quote">хоста</span>»</span>.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В качестве примера представим следующий сценарий (иногда
- называемый <span class="quote">«<span class="quote">канадским
- крестом</span>»</span>): у нас есть компилятор на медленной
- машине, назовем ее машиной A и компилятор ccA. У нас также
- есть быстрая машина (B), но без компилятора, и мы хотим
- создать код для другой медленной машины (C). Чтобы собрать
- компилятор для машины C, у нас будет три этапа:
- </p>
- <div class="informaltable">
- <table class="informaltable" border="1">
- <colgroup>
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="300pt" align="left" />
- </colgroup>
- <thead>
- <tr>
- <th align="center">
- Этап
- </th>
- <th align="center">
- Сборщик
- </th>
- <th align="center">
- Хост
- </th>
- <th align="center">
- Цель
- </th>
- <th align="left">
- Действие
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td align="center">
- 1
- </td>
- <td align="center">
- A
- </td>
- <td align="center">
- A
- </td>
- <td align="center">
- B
- </td>
- <td align="left">
- Сборка кросс-компилятора cc1 с использованием ccA на
- машине A
- </td>
- </tr>
- <tr>
- <td align="center">
- 2
- </td>
- <td align="center">
- A
- </td>
- <td align="center">
- B
- </td>
- <td align="center">
- C
- </td>
- <td align="left">
- Сборка кросс-компилятора cc2 с использованием cc1 на
- машине A
- </td>
- </tr>
- <tr>
- <td align="center">
- 3
- </td>
- <td align="center">
- B
- </td>
- <td align="center">
- C
- </td>
- <td align="center">
- C
- </td>
- <td align="left">
- Сборка компилятора ccC с использованием cc2 на машине
- B
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>
- Затем все другие программы, необходимые для машины C, могут
- быть скомпилированы с помощью cc2 на быстрой машине B.
- Обратите внимание, что до тех пор, пока B не может запускать
- программы, собранные для C, нет способа протестировать
- программы, пока не будет запущена сама машина C. Например,
- чтобы запустить набор тестов на ccC мы можем добавить
- четвертый этап:
- </p>
- <div class="informaltable">
- <table class="informaltable" border="1">
- <colgroup>
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="300pt" align="left" />
- </colgroup>
- <thead>
- <tr>
- <th align="center">
- Этап
- </th>
- <th align="center">
- Сборщик
- </th>
- <th align="center">
- Хост
- </th>
- <th align="center">
- Цель
- </th>
- <th align="left">
- Действие
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td align="center">
- 4
- </td>
- <td align="center">
- C
- </td>
- <td align="center">
- C
- </td>
- <td align="center">
- C
- </td>
- <td align="left">
- Пересобрать и протестировать ccC, используя ccC на
- машине C
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>
- В приведенном выше примере только cc1 и cc2 являются
- кросс-компиляторами, то есть они создают код для машины,
- отличной от той, на которой они выполняются. Компиляторы ccA
- и ccC создают код для машины, на которой они выполняются.
- Такие компиляторы называются <span class=
- "emphasis"><em>нативными</em></span> компиляторами.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="lfs-cross" name="lfs-cross"></a>Реализация
- кросс-компиляции для LFS
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Все кросс-компилируемые пакеты в этой книге используют
- систему сборки на основе autoconf. Система сборки на основе
- autoconf принимает типы систем вида cpu-vendor-kernel-os,
- называемые системным триплетом. Поскольку поле vendor часто
- не содержит значения, autoconf позволяет вам опустить его.
- </p>
- <p>
- Проницательный читатель может задаться вопросом, почему
- название <span class="quote">«<span class=
- "quote">триплет</span>»</span> применяется к имени из
- четырех компонентов. Поле kernel и поле os ранее
- применялись как единый элемент: <span class=
- "quote">«<span class="quote">system</span>»</span>. Такая
- форма с тремя полями все еще актуальна для некоторых
- систем, например, <code class=
- "literal">x86_64-unknown-freebsd</code>. Но две системы
- могут использовать одно и то же ядро и все же быть слишком
- разными, чтобы использовать одинаковый триплет для их
- описания. Например, Android, работающий на мобильном
- телефоне полностью отличается от Ubuntu, работающей на
- ARM64 сервере, хотя они оба работают на одном и том же типе
- процессора (ARM64) и с одним ядром (Linux).
- </p>
- <p>
- Без слоя эмуляции вы не сможете запустить исполняемый файл
- c сервера на мобильном телефоне и наоборот. Итак, поле
- <span class="quote">«<span class=
- "quote">system</span>»</span> было разделено на поля kernel
- и os, чтобы однозначно их интерпретировать. В нашем примере
- Android обозначается как <code class=
- "literal">aarch64-unknown-linux-android</code>, а Ubuntu
- <code class="literal">aarch64-unknown-linux-gnu</code>.
- </p>
- <p>
- Слово <span class="quote">«<span class=
- "quote">триплет</span>»</span> сохранилось в лексиконе.
- Простой способ определить триплет вашей машины — запустить
- скрипт <span class=
- "command"><strong>config.guess</strong></span>, который
- входит в исходный код многих пакетов. Распакуйте исходники
- binutils и запустите скрипт: <strong class=
- "userinput"><code>./config.guess</code></strong>, обратите
- внимание на вывод. Например, для 32-разрядного процессора
- Intel вывод будет <span class=
- "emphasis"><em>i686-pc-linux-gnu</em></span>. В 64-битной
- системе это будет <span class=
- "emphasis"><em>x86_64-pc-linux-gnu</em></span>. В
- большинстве систем Linux используют еще более простую
- команду <span class="command"><strong>gcc
- -dumpmachine</strong></span>, которая предоставит вам
- аналогичную информацию.
- </p>
- <p>
- Вы также должны знать имя динамического компоновщика
- платформы, часто называемого динамическим загрузчиком (не
- путать со стандартным компоновщиком <span class=
- "command"><strong>ld</strong></span>, который является
- частью binutils). Динамический компоновщик, предоставляемый
- glibc, находит и загружает общие библиотеки, необходимые
- программе, подготавливает программу к запуску, а затем
- запускает ее. Имя динамического компоновщика для
- 32-разрядной машины Intel — <code class=
- "filename">ld-linux.so.2</code>, а для 64-разрядных систем
- — <code class="filename">ld-linux-x86-64.so.2</code>.
- Надежный способ определить имя динамического компоновщика —
- проверить случайный двоичный файл из хост-системы, выполнив
- следующую команду: <strong class="userinput"><code>readelf
- -l &lt;имя исполняемого файла&gt; | grep
- interpreter</code></strong> и зафиксировать результат.
- Официальный источник, охватывающий все платформы, находится
- в файле <code class="filename">shlib-versions</code> в
- корне дерева исходного кода glibc.
- </p>
- </div>
- <p>
- Чтобы сымитировать кросс-компиляцию в LFS, имя триплета хоста
- немного подкорректировали, изменив поле "vendor" в переменной
- <code class="envar">LFS_TGT</code> таким образом, чтобы оно
- указывало "lfs". Мы также используем параметр <em class=
- "parameter"><code>--with-sysroot</code></em> при сборке
- кросс-компоновщика и кросс-компилятора, чтобы сообщить им,
- где найти необходимые файлы хоста. Это гарантирует, что ни
- одна из программ, входящих в <a class="xref" href=
- "#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>,
- не сможет ссылаться на библиотеки на машине сборки. Для
- корректной работы, обязательны всего два этапа, еще один
- рекомендуется для тестирования:
- </p>
- <div class="informaltable">
- <table class="informaltable" border="1">
- <colgroup>
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="50pt" align="center" />
- <col width="300pt" align="left" />
- </colgroup>
- <thead>
- <tr>
- <th align="center">
- Этап
- </th>
- <th align="center">
- Сборщик
- </th>
- <th align="center">
- Хост
- </th>
- <th align="center">
- Цель
- </th>
- <th align="left">
- Действие
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td align="center">
- 1
- </td>
- <td align="center">
- ПК
- </td>
- <td align="center">
- ПК
- </td>
- <td align="center">
- LFS
- </td>
- <td align="left">
- Сборка кросс-компилятора cc1 с использованием cc-pc
- на ПК
- </td>
- </tr>
- <tr>
- <td align="center">
- 2
- </td>
- <td align="center">
- ПК
- </td>
- <td align="center">
- LFS
- </td>
- <td align="center">
- LFS
- </td>
- <td align="left">
- Сборка компилятора cc-lfs с использованием cc1 на ПК
- </td>
- </tr>
- <tr>
- <td align="center">
- 3
- </td>
- <td align="center">
- LFS
- </td>
- <td align="center">
- LFS
- </td>
- <td align="center">
- LFS
- </td>
- <td align="left">
- Пересборка и тестирование cc-lfs, используя cc-lfs в
- lfs
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>
- В приведенной выше таблице <span class="quote">«<span class=
- "quote">ПК</span>»</span> означает, что команды выполняются
- на компьютере с использованием уже установленного
- дистрибутива. <span class="quote">«<span class="quote">В
- lfs</span>»</span> означает, что команды выполняются в
- chroot-окружении.
- </p>
- <p>
- Это еще не конец истории. Язык С - это не просто компилятор;
- также он определяет стандартную библиотеку. В этой книге
- используется библиотека GNU C под названием glibc (есть
- альтернативный вариант - "musl"). Эта библиотека должна быть
- скомпилирована для машины lfs, то есть с использованием
- кросс-компилятора cc1. Но сам компилятор использует
- внутреннюю библиотеку, реализующую сложные инструкции,
- недоступные в наборе инструкций ассемблера. Эта внутренняя
- библиотека называется libgcc, и для полноценной работы ее
- необходимо связать с библиотекой glibc! Кроме того,
- стандартная библиотека для C++ (libstdc++) также должна быть
- связана с glibc. Решение этой проблемы курицы и яйца состоит
- в том, чтобы сначала собрать деградированную libgcc на основе
- cc1, в которой отсутствуют некоторые функциональные
- возможности, такие как потоки и обработка исключений, затем
- собрать glibc с использованием этого деградированного
- компилятора (сама glibc не деградирована), а затем собрать
- libstdc++. В этой последней библиотеке будет не хватать
- некоторых функциональных возможностей libgcc.
- </p>
- <p>
- Выводом из предыдущего абзаца является то, что cc1 не может
- собрать полнофункциональную libstdc++ с деградированной
- libgcc, но это единственный компилятор, доступный для сборки
- библиотек C/C++ на этапе 2. Есть две причины, по которым мы
- не используем сразу компилятор cc-lfs, собранный на этапе 2,
- для сборки этих библиотек.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Вообще говоря, cc-lfs не может работать на ПК
- (хост-системе). Хотя триплеты для ПК и LFS совместимы
- друг с другом, исполняемый файл для lfs должен зависеть
- от glibc-2.39; хост-дистрибутив может использовать либо
- другую реализацию libc (например, musl), либо
- предыдущий выпуск glibc (например, glibc-2.13).
- </p>
- </li>
- <li class="listitem">
- <p>
- Даже если cc-lfs может работать на ПК, его
- использование на ПК сопряжено с риском привязки к
- библиотекам ПК, так как cc-lfs является родным
- компилятором.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Поэтому, когда мы собираем gcc этап 2, мы даем указание
- системе сборки пересобрать libgcc и libstdc++ с помощью cc1,
- но мы связываем libstdc++ с новой пересобранной libgcc вместо
- старой, деградированной. Это делает пересобранную библиотеку
- libstdc++ полностью функциональной.
- </p>
- <p>
- В <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a> (или <span class="quote">«<span class=
- "quote">этап 3</span>»</span>) собраны все пакеты,
- необходимые для системы LFS. Даже если пакет уже был
- установлен в системе LFS в предыдущей главе, мы все равно
- пересобираем пакет. Основная причина пересборки этих пакетов
- состоит в том, чтобы сделать их стабильными: если мы
- переустанавливаем пакет LFS в готовой системе LFS, содержимое
- пакета должно совпадать с содержимым того же пакета при
- первой установке в <a class="xref" href=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a>. Временные пакеты, установленные в <a class=
- "xref" href="#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- или <a class="xref" href="#chapter-chroot-temporary-tools"
- title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Глава&nbsp;7</a> не могут удовлетворять этому требованию,
- потому что некоторые из них собраны без необязательных
- зависимостей и autoconf не может выполнить некоторые проверки
- функций в <a class="xref" href="#chapter-temporary-tools"
- title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- из-за кросс-компиляции, в результате чего во временных
- пакетах отсутствуют дополнительные функции или используются
- не оптимальные процедуры кода. Кроме того, второстепенной
- причиной для пересборки пакетов является выполнение тестов.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="other-details" name="other-details"></a>Другие детали
- процесса
- </h3>
- <p>
- Кросс-компилятор будет установлен в отдельный каталог
- <code class="filename">$LFS/tools</code>, так как он не будет
- частью конечной системы.
- </p>
- <p>
- Сначала устанавливается Binutils, потому что во время
- выполнения команды <span class=
- "command"><strong>configure</strong></span> gcc и glibc
- выполняются различные тесты функций на ассемблере и
- компоновщике, чтобы определить, какие программные функции
- следует включить или отключить. Это важнее, чем может
- показаться на первый взгляд. Неправильно настроенный gcc или
- glibc может привести к незначительной поломке сборочных
- инструментов, где последствия такой поломки могут проявиться
- ближе к концу сборки всего дистрибутива. Сбой тестов обычно
- выявляет эту ошибку до того, как будет выполнено много
- дополнительной работы.
- </p>
- <p>
- Binutils устанавливает свой ассемблер и компоновщик в двух
- местах: <code class="filename">$LFS/tools/bin</code> и
- <code class="filename">$LFS/tools/$LFS_TGT/bin</code>.
- Инструменты в одном месте жестко связаны с другими. Важным
- аспектом компоновщика является порядок поиска в библиотеке.
- Подробную информацию можно получить от <span class=
- "command"><strong>ld</strong></span>, передав ей флаг
- <em class="parameter"><code>--verbose</code></em>. Например,
- <span class="command"><strong>$LFS_TGT-ld --verbose | grep
- SEARCH</strong></span> покажет текущие пути поиска и их
- порядок. Он показывает, какие файлы связаны с помощью
- <span class="command"><strong>ld</strong></span>, путем
- компиляции фиктивной программы и передачи параметра
- <em class="parameter"><code>--verbose</code></em>
- компоновщику. Например, <span class=
- "command"><strong>$LFS_TGT-gcc dummy.c -Wl,--verbose
- 2&gt;&amp;1 | grep succeeded</strong></span> покажет все
- файлы, успешно открытые во время компоновки.
- </p>
- <p>
- Следующий устанавливаемый пакет — gcc. Пример того, что можно
- увидеть во время запуска <span class=
- "command"><strong>configure</strong></span>:
- </p>
- <pre class="screen"><code class=
- "computeroutput">checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as
-checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</code></pre>
- <p>
- Это важно по причинам, упомянутым выше. Также здесь
- демонстрируется, что сценарий настройки gcc не просматривает
- значения переменной PATH, чтобы найти, какие инструменты
- использовать. Однако во время фактической работы самого
- <span class="command"><strong>gcc</strong></span> не
- обязательно используются одни и те же пути поиска. Чтобы
- узнать, какой стандартный компоновщик будет использовать
- <span class="command"><strong>gcc</strong></span>, запустите:
- <span class="command"><strong>$LFS_TGT-gcc
- -print-prog-name=ld</strong></span>.
- </p>
- <p>
- Подробную информацию можно получить из <span class=
- "command"><strong>gcc</strong></span>, передав ему параметр
- <em class="parameter"><code>-v</code></em> при компиляции
- фиктивной программы. Например, <span class=
- "command"><strong>gcc -v dummy.c</strong></span> покажет
- подробную информацию об этапах препроцессора, компиляции и
- сборки, включая указанные в <span class=
- "command"><strong>gcc</strong></span> пути поиска и их
- порядок.
- </p>
- <p>
- Далее устанавливаются очищенные заголовочные файлы Linux API.
- Они позволяют стандартной библиотеке C (Glibc)
- взаимодействовать с функциями, предоставляемыми ядром Linux.
- </p>
- <p>
- Следующий устанавливаемый пакет — glibc. Наиболее важными при
- сборке glibc являются компилятор, бинарные инструменты и
- заголовочные файлы ядра. С компилятором, как правило, не
- бывает проблем, поскольку glibc всегда будет использовать
- компилятор, указанный в параметре <em class=
- "parameter"><code>--host</code></em>, переданный скрипту
- configure; например, в нашем случае компилятором будет
- <span class="command"><strong>$LFS_TGT-gcc</strong></span>. С
- бинарными инструментами и заголовки ядра может быть немного
- сложнее. Поэтому мы не рискуем и используем доступные
- параметры конфигурации, чтобы обеспечить правильный выбор.
- После запуска <span class=
- "command"><strong>configure</strong></span> проверьте
- содержимое файла <code class="filename">config.make</code> в
- каталоге <code class="filename">сборки</code> на наличие всех
- важных деталей. Обратите внимание на использование опции
- <em class="parameter"><code>CC="$LFS_TGT-gcc"</code></em> (с
- переменной <code class="envar">$LFS_TGT</code>) для
- управления используемыми бинарными инструментами и
- использование флагов <em class=
- "parameter"><code>-nostdinc</code></em> и <em class=
- "parameter"><code>-isystem</code></em> для управления
- включаемым путем поиска компилятора. Эти пункты подчеркивают
- важный аспект пакета glibc — он очень самодостаточен с точки
- зрения своего механизма сборки и, как правило, не полагается
- на значения по умолчанию.
- </p>
- <p>
- Как было сказано выше, затем компилируется стандартная
- библиотека C++, а затем в <a class="xref" href=
- "#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- все остальные программы, которым необходимо разрешить
- проблему циклических зависимостей во время сборки. На этапе
- установки всех этих пакетов используется переменная DESTDIR,
- для принудительной установки в файловую систему LFS.
- </p>
- <p>
- В конце <a class="xref" href="#chapter-temporary-tools"
- title="Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- устанавливается собственный компилятор lfs. Сначала
- собирается binutils с той же переменной <code class=
- "envar">DESTDIR</code>, что и другие программы, затем
- повторно собирается gcc, без сборки некоторых некритических
- библиотек. Из-за какой-то странной логики в сценарии
- настройки GCC <code class="envar">CC_FOR_TARGET</code>
- заканчивается как <span class=
- "command"><strong>cc</strong></span>, когда хост совпадает с
- целью, но отличается от системы сборки. Поэтому значение
- <em class=
- "parameter"><code>CC_FOR_TARGET=$LFS_TGT-gcc</code></em> явно
- указывается в параметрах конфигурации.
- </p>
- <p>
- После входа в среду chroot в <a class="xref" href=
- "#chapter-chroot-temporary-tools" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Глава&nbsp;7</a> первой задачей является установка libstdc++.
- Затем выполняется установка временных программ, необходимых
- для правильной работы тулчейна. С этого момента основной
- набор инструментов является самодостаточным и автономным. В
- <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a> собираются, тестируются и устанавливаются
- окончательные версии всех пакетов, необходимых для
- полнофункциональной системы.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-generalinstructions" name=
- "ch-tools-generalinstructions"></a>Общие инструкции по
- компиляции
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- В процессе разработки LFS инструкции в книге часто
- изменяются, чтобы адаптироваться к обновлению пакета или
- использовать преимущества новых функций из обновленных
- пакетов. Смешение инструкций разных версий книги LFS может
- привести к незначительным поломкам. Такого рода проблемы
- обычно являются результатом повторного использования
- некоторых скриптов, созданных для предыдущей версии LFS.
- Такое повторное использование настоятельно не рекомендуется.
- Если вы по какой-либо причине повторно используете скрипты из
- предыдущей версии LFS, вам нужно быть очень осторожным при
- обновлении скриптов, чтобы они соответствовали текущей версии
- книги LFS.
- </p>
- </div>
- <p>
- При сборке пакетов в инструкциях делается несколько допущений:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- На некоторые пакеты необходимо наложить патчи перед
- компиляцией, метод используется тогда, когда исправление
- необходимо для решения проблем сборки. Патчи часто
- требуются как в этой, так и в следующих главах, но
- иногда, когда один и тот же пакет собирается более одного
- раза, патч требуется не сразу. Поэтому не беспокойтесь,
- если инструкции для скачанного патча отсутствуют.
- Предупреждающие сообщения о <span class=
- "emphasis"><em>смещении (offset)</em></span> или
- <span class="emphasis"><em>размытии (fuzz)</em></span>
- также могут появляться при применении патча. Не обращайте
- внимания на эти предупреждения, патч все равно успешно
- применен.
- </p>
- </li>
- <li class="listitem">
- <p>
- Во время компиляции большинства пакетов на экране будут
- отображаться предупреждения. Это нормально, и их можно
- смело игнорировать. Предупреждения появляются, например,
- когда используется устаревший, недопустимый синтаксис C
- или C++. Стандарты C меняются довольно часто, и некоторые
- пакеты все еще используют более старый стандарт. Это не
- является серьезной проблемой, но вызывает появление
- предупреждений.
- </p>
- </li>
- <li class="listitem">
- <p>
- Проверьте в последний раз, что переменная среды
- <code class="envar">LFS</code> настроена правильно:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo $LFS</kbd></pre>
- <p>
- Убедитесь, что в выводе указан путь к точке монтирования
- раздела LFS, то есть <code class=
- "filename">/mnt/lfs</code>, как в примере из этой книги.
- </p>
- </li>
- <li class="listitem">
- <p>
- Наконец, необходимо подчеркнуть два важных момента:
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Инструкции по сборке предполагают, что все <a class=
- "xref" href="#ch-partitioning-hostreqs" title=
- "2.2. Требования к хост-системе">Требования к
- хост-системе</a>, включая символические ссылки,
- установлены правильно:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <span class=
- "command"><strong>bash</strong></span> это
- используемая оболочка.
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class="command"><strong>sh</strong></span>
- это символическая ссылка на <span class=
- "command"><strong>bash</strong></span>.
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "command"><strong>/usr/bin/awk</strong></span>
- это символическая ссылка на <span class=
- "command"><strong>gawk</strong></span>.
- </p>
- </li>
- <li class="listitem">
- <p>
- <span class=
- "command"><strong>/usr/bin/yacc</strong></span>
- это символическая ссылка на <span class=
- "command"><strong>bison</strong></span> или
- небольшой скрипт, который выполняет bison
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Вот краткое описание процесса сборки:
- </p>
- <div class="orderedlist">
- <ol class="compact">
- <li class="listitem">
- <p>
- Поместите все исходники и патчи в каталог,
- который будет доступен из среды chroot, например,
- <code class="filename">/mnt/lfs/sources/</code>.
- </p>
- </li>
- <li class="listitem">
- <p>
- Перейдите в каталог <code class=
- "filename">/mnt/lfs/sources/</code>.
- </p>
- </li>
- <li class="listitem">
- <p>
- <a id="buildinstr" name="buildinstr"></a>Для
- каждого пакета:
- </p>
- <div class="orderedlist">
- <ol class="compact">
- <li class="listitem">
- <p>
- С помощью программы <span class=
- "command"><strong>tar</strong></span>
- извлеките пакет для сборки. В <a class=
- "xref" href="#chapter-cross-tools" title=
- "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a>
- и <a class="xref" href=
- "#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">
- Глава&nbsp;6</a> убедитесь, что при
- извлечении пакета вы залогинены под
- пользователем lfs.
- </p>
- <p>
- Не используйте никаких методов, кроме
- команды <span class=
- "command"><strong>tar</strong></span>, для
- извлечения исходного кода. Примечательно,
- что использование команды <span class=
- "command"><strong>cp -R</strong></span> для
- копирования дерева исходного кода в другое
- место может привести к уничтожению ссылок и
- меток времени в дереве исходного кода и
- привести к сбою сборки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Перейдите в каталог, созданный при
- извлечении пакета.
- </p>
- </li>
- <li class="listitem">
- <p>
- Следуйте инструкциям по сборке пакета.
- </p>
- </li>
- <li class="listitem">
- <p>
- Вернитесь в исходный каталог, когда сборка
- будет завершена.
- </p>
- </li>
- <li class="listitem">
- <p>
- Удалите извлеченный каталог, если не
- указано иное.
- </p>
- </li>
- </ol>
- </div>
- </li>
- </ol>
- </div>
- </div>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-cross-tools" name=
- "chapter-cross-tools"></a>Глава 5. Сборка кросс-тулчейна
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-introduction" name=
- "ch-tools-introduction"></a>5.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этой главе дано описание, как создать кросс-компилятор и
- связанные с ним инструменты. Несмотря на то, что на данном
- этапе кросс-компиляция имитируется, принципы его работы те же,
- что и для настоящего кросс-тулчейна.
- </p>
- <p>
- Программы, скомпилированные в этой главе, будут установлены в
- каталог <code class="filename">$LFS/tools</code>, чтобы они
- были отделены от файлов, установленных в следующих главах.
- Библиотеки, же, устанавливаются на свое постоянное место,
- поскольку они относятся к системе, которую мы хотим создать.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-binutils-pass1" name=
- "ch-tools-binutils-pass1"></a>5.2. Binutils-2.42 - Проход 1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Binutils содержит компоновщик, ассемблер и другие
- инструменты для работы с объектными файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">663
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 5.2.1. Установка кросс-пакета Binutils
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Вернитесь назад и перечитайте примечания в разделе
- <a class="xref" href="#ch-tools-generalinstructions" title=
- "Общие инструкции по компиляции">Общие инструкции по
- компиляции</a>. Понимание информации, помеченной как
- важная, может впоследствии избавить вас от многих проблем.
- </p>
- </div>
- <p>
- Очень важно, чтобы Binutils был скомпилированным первым,
- потому что и Glibc, и GCC выполняют различные тесты на
- доступных компоновщике и ассемблере, чтобы определить, какие
- из их функций следует включить.
- </p>
- <p>
- В документации пакета Binutils рекомендуется выполнять сборку
- в отдельном каталоге, создадим его:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Для того, чтобы значения SBU, перечисленные в остальной
- части книги, были вам полезны, измерьте время, необходимое
- для сборки этого пакета, начиная с настройки и заканчивая
- установкой. Чтобы добиться этого, оберните команды сборки
- командой <span class=
- "command"><strong>time</strong></span>: <strong class=
- "userinput"><code>time { ../configure ... &amp;&amp; make
- &amp;&amp; make install; }</code></strong>.
- </p>
- </div>
- <p>
- Теперь подготовьте Binutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=$LFS/tools \
- --with-sysroot=$LFS \
- --target=$LFS_TGT \
- --disable-nls \
- --enable-gprofng=no \
- --disable-werror \
- --enable-default-hash-style=gnu</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--prefix=$LFS/tools</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает сценарию configure подготовить к установке
- пакет Binutils в каталог <code class=
- "filename">$LFS/tools</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-sysroot=$LFS</code></em></span>
- </dt>
- <dd>
- <p>
- Для кросс-компляции указывает системе сборки искать в
- $LFS библиотеки целевой системы, если необходимо.
- </p>
- </dd>
- <dt>
- <span class="term"><code class=
- "envar">--target=$LFS_TGT</code></span>
- </dt>
- <dd>
- <p>
- Поскольку название машины в значении переменной
- <code class="envar">LFS_TGT</code> может отличаться от
- значения, которое возвращает сценарий <span class=
- "command"><strong>config.guess</strong></span>, этот
- аргумент укажет сценарию <span class=
- "command"><strong>configure</strong></span> как
- настроить систему сборки пакета Binutils для создания
- кросс-компоновщика.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-nls</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает интернационализацию, так как
- i18n не требуется для временных инструментов.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-gprofng=no</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает сборку gprofng, который не
- нужен для временного инструментария.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-werror</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр предотвращает остановку сборки в случае
- появления предупреждений от компилятора хоста.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-default-hash-style=gnu</code></em></span>
- </dt>
- <dd>
- <p>
- По умолчанию компоновщик генерирует как хеш-таблицу в
- стиле GNU, так и классическую хеш-таблицу ELF для общих
- библиотек и динамически связанных исполняемых файлов.
- Хеш-таблицы необходимы только для динамического
- компоновщика, выполняющего поиск символов. В LFS
- динамический компоновщик (предоставляемый пакетом
- Glibc) всегда будет использовать хеш-таблицу в стиле
- GNU, к которой запросы выполняются быстрее. Так что
- классическая хеш-таблица ELF совершенно бесполезна.
- Этот параметр указывает компоновщику по умолчанию
- генерировать только хеш-таблицу в стиле GNU, поэтому мы
- можем избежать траты времени на создание классической
- хеш-таблицы ELF при сборке пакетов или не тратить
- дисковое пространство для ее хранения.
- </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="#contents-binutils" title=
- "8.19.2. Содержимое пакета Binutils">Раздел&nbsp;8.19.2,
- «Содержимое пакета Binutils.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-gcc-pass1" name=
- "ch-tools-gcc-pass1"></a>5.3. GCC-13.2.0 - Проход 1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GCC содержит коллекцию компиляторов GNU, которая
- включает компиляторы C и C++.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">3.8 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">4.1
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 5.3.1. Установка кросс-пакета GCC
- </h3>
- <p>
- Для GCC требуются пакеты GMP, MPFR и MPC. Поскольку эти
- пакеты могут отсутствовать в дистрибутиве вашего хоста, они
- будут собраны с помощью GCC. Распакуйте каждый пакет в
- исходный каталог GCC и переименуйте получившиеся каталоги,
- чтобы процедуры сборки GCC использовали их автоматически:
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В этой главе часто возникают недоразумения, хотя
- применяются те же процедуры, что и в любой другой главе,
- следуйте инструкции которую получили ранее (<a class="xref"
- href="#buildinstr">Инструкции по сборке пакетов</a>).
- Сначала распакуйте пакет gcc-13.2.0 из архива, а затем
- перейдите в созданный каталог. Только после этого следует
- приступить к приведенным ниже инструкциям.
- </p>
- </div>
- <pre class="userinput"><kbd class=
- "command">tar -xf ../mpfr-4.2.1.tar.xz
-mv -v mpfr-4.2.1 mpfr
-tar -xf ../gmp-6.3.0.tar.xz
-mv -v gmp-6.3.0 gmp
-tar -xf ../mpc-1.3.1.tar.gz
-mv -v mpc-1.3.1 mpc</kbd></pre>
- <p>
- На хостах x86_64 измените имя каталога по умолчанию для
- 64-битных библиотек на <span class="quote">«<span class=
- "quote">lib</span>»</span>:
- </p>
- <pre class="userinput"><kbd class="command">case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
-esac</kbd></pre>
- <p>
- В документации к GCC рекомендуется собирать GCC в отдельном
- каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте GCC к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure \
- --target=$LFS_TGT \
- --prefix=$LFS/tools \
- --with-glibc-version=2.39 \
- --with-sysroot=$LFS \
- --with-newlib \
- --without-headers \
- --enable-default-pie \
- --enable-default-ssp \
- --disable-nls \
- --disable-shared \
- --disable-multilib \
- --disable-threads \
- --disable-libatomic \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libssp \
- --disable-libvtv \
- --disable-libstdcxx \
- --enable-languages=c,c++</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-glibc-version=2.39</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает версию Glibc, которая будет
- использоваться на целевой системе. Он не имеет
- отношения к libc хост-дистрибутива, потому что все,
- скомпилированное в этом разделе, будет выполняться в
- среде chroot, которая изолирована от libc
- хост-дистрибутива.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-newlib</code></em></span>
- </dt>
- <dd>
- <p>
- Поскольку работающая библиотека C еще недоступна, это
- гарантирует, что константа inhibit_libc будет
- определена при сборке libgcc. Это предотвращает
- компиляцию любого кода, требующего поддержки libc.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-headers</code></em></span>
- </dt>
- <dd>
- <p>
- При создании полного кросс-компилятора GCC требует
- наличия стандартных заголовков, совместимых с целевой
- системой. Для наших целей эти заголовки не понадобятся.
- Этот параметр предотвращает их поиск GCC.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-default-pie и
- --enable-default-ssp</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры позволяют GCC по умолчанию компилировать
- программы с некоторые функциями усиливающими
- безопасность (более подробная информация о них
- приведена в <a class="xref" href=
- "#pie-ssp-info">примечание о PIE и SSP</a> в Главе 8).
- На данном этапе это не является строго обязательным,
- поскольку компилятор будет создавать только временные
- исполняемые файлы. Но лучше, чтобы временные пакеты
- были максимально приближены к тем, что будут в готовой
- системе LFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-shared</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр заставляет GCC статически связывать свои
- внутренние библиотеки. Он необходим потому что общие
- библиотеки требуют Glibc, который еще не установлен в
- целевой системе.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-multilib</code></em></span>
- </dt>
- <dd>
- <p>
- На x86_64, LFS не поддерживает конфигурацию multilib.
- Этот аргумент никак не влияет на работу с архитектурой
- x86.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-threads, --disable-libatomic,
- --disable-libgomp, --disable-libquadmath,
- --disable-libssp, --disable-libvtv,
- --disable-libstdcxx</code></em></span>
- </dt>
- <dd>
- <p>
- Эти аргументы отключают поддержку расширений для работы
- с многопоточностью, libatomic, libgomp, libquadmath,
- libssp, libvtv и стандартной библиотеки C++
- соответственно. Эти функции могут не скомпилироваться
- при сборке кросс-компилятора и не нужны для задач
- кросс-компиляции временной libc
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-languages=c,c++</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр обеспечивает сборку только компиляторов C
- и C++. Это единственные языки, которые нужны сейчас.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте GCC, выполнив:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Во время сборки GCC установил пару внутренних системных
- заголовочных файлов. Обычно один из файлов <code class=
- "filename">limits.h</code>, включает соответствующие
- системные ограничения <code class="filename">limits.h</code>,
- в данном случае <code class=
- "filename">$LFS/usr/include/limits.h</code>. Однако во время
- сборки GCC <code class=
- "filename">$LFS/usr/include/limits.h</code> не существует,
- поэтому только что установленный внутренний заголовочный файл
- является частичным, автономным файлом и не включает
- расширенные функции системного файла. Этого достаточно для
- сборки Glibc, но полный внутренний заголовочный файл
- понадобится позже. Создайте полную версию внутреннего
- заголовочного файла с помощью команды, идентичной той, что
- система сборки GCC использует обычно:
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В приведенной ниже команде показан пример подстановки
- вложенных команд, используя два метода: обратные кавычки и
- конструкцию <code class="literal">$()</code>. Его можно
- было бы переписать, используя один и тот же метод для обеих
- замен, но сделано так, чтобы продемонстрировать, как их
- можно использовать одновременно. В целом метод <code class=
- "literal">$()</code> предпочтительнее.
- </p>
- </div>
- <pre class="userinput"><kbd class="command">cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h &gt; \
- `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-gcc" title=
- "8.28.2. Содержимое пакета GCC">Раздел&nbsp;8.28.2,
- «Содержимое пакета GCC.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-linux-headers" name=
- "ch-tools-linux-headers"></a>5.4. Заголовочные файлы
- Linux-6.7.4 API
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Заголовочные файлы Linux API (в linux-6.7.4.tar.xz)
- предоставляют API ядра для использования Glibc.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.5
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 5.4.1. Установка заголовочных файлов
- </h3>
- <p>
- Ядро Linux должно предоставлять интерфейс прикладного
- программирования (API) для использования системной
- библиотекой C (Glibc в LFS). Это делается путем установки
- заголовочных файлов C, которые поставляются в архиве с
- исходным кодом ядра Linux.
- </p>
- <p>
- Убедитесь, что в пакете нет устаревших файлов:
- </p>
- <pre class="userinput"><kbd class=
- "command">make mrproper</kbd></pre>
- <p>
- Теперь извлеките видимые пользователю заголовочные файлы ядра
- из исходного кода. Рекомендуемый способ make <span class=
- "quote">«<span class="quote">headers_install</span>»</span>
- использовать нельзя, так как для этого требуется <span class=
- "application">rsync</span>, который может быть недоступен.
- Заголовочные файлы сначала помещаются в <code class=
- "filename">/usr</code>, а затем копируются в нужное место.
- </p>
- <pre class="userinput"><kbd class="command">make headers
-find usr/include -type f ! -name '*.h' -delete
-</kbd><kbd class="command">cp -rv usr/include $LFS/usr</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-linux-headers" name=
- "contents-linux-headers"></a>5.4.2. Содержимое заголовочных
- файлов Linux API
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные заголовочные
- файлы::</strong> <span class=
- "segbody">/usr/include/asm/*.h,
- /usr/include/asm-generic/*.h, /usr/include/drm/*.h,
- /usr/include/linux/*.h, /usr/include/misc/*.h,
- /usr/include/mtd/*.h, /usr/include/rdma/*.h,
- /usr/include/scsi/*.h, /usr/include/sound/*.h,
- /usr/include/video/*.h, and /usr/include/xen/*.h</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги::</strong>
- <span class="segbody">/usr/include/asm,
- /usr/include/asm-generic, /usr/include/drm,
- /usr/include/linux, /usr/include/misc, /usr/include/mtd,
- /usr/include/rdma, /usr/include/scsi, /usr/include/sound,
- /usr/include/video, and /usr/include/xen</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm3316" name="idm3316"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="asm" name="asm"></a><span class=
- "term"><code class=
- "filename">/usr/include/asm/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API ASM
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="asm-generic" name=
- "asm-generic"></a><span class="term"><code class=
- "filename">/usr/include/asm-generic/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API ASM Generic
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="drm" name="drm"></a><span class=
- "term"><code class=
- "filename">/usr/include/drm/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API DRM
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="linux" name="linux"></a><span class=
- "term"><code class=
- "filename">/usr/include/linux/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API Linux
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="misc" name="misc"></a><span class=
- "term"><code class=
- "filename">/usr/include/misc/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API Miscellaneous
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mtd" name="mtd"></a><span class=
- "term"><code class=
- "filename">/usr/include/mtd/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы API MTD
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rdma" name="rdma"></a><span class=
- "term"><code class=
- "filename">/usr/include/rdma/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API RDMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="scsi" name="scsi"></a><span class=
- "term"><code class=
- "filename">/usr/include/scsi/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API SCSI
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sound" name="sound"></a><span class=
- "term"><code class=
- "filename">/usr/include/sound/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API Sound
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="video" name="video"></a><span class=
- "term"><code class=
- "filename">/usr/include/video/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API Video
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xen" name="xen"></a><span class=
- "term"><code class=
- "filename">/usr/include/xen/*.h</code></span>
- </p>
- </td>
- <td>
- <p>
- Заголовочные файлы Linux API Xen
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-glibc" name="ch-tools-glibc"></a>5.5.
- Glibc-2.39
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Glibc содержит основную библиотеку C. Эта библиотека
- предоставляет основные процедуры для выделения памяти, поиска
- в каталогах, открытия и закрытия файлов, чтения и записи
- файлов, обработки строк, сопоставления с образцом, арифметики
- и так далее
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">846
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 5.5.1. Установка пакета Glibc
- </h3>
- <p>
- Во-первых, создайте символическую ссылку для соответствия
- требованиям LSB. Кроме того, для совместимости с x86_64
- создайте символическую ссылку, необходимую для правильной
- работы загрузчика динамической библиотеки:
- </p>
- <pre class="userinput"><kbd class="command">case $(uname -m) in
- i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
- ;;
- x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
- ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
- ;;
-esac</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Приведенная выше команда верна. Команда <span class=
- "command"><strong>ln</strong></span> имеет несколько
- вариантов синтаксиса, поэтому обязательно ознакомьтесь с
- <span class="command"><strong>info coreutils
- ln</strong></span> и <a class="ulink" href=
- "https://man.archlinux.org/man/ln.1">ln(1)</a>, прежде чем
- сообщать об ошибке.
- </p>
- </div>
- <p>
- Некоторые программы, использующие Glibc, применяют
- несовместимый с FHS каталог <code class=
- "filename">/var/db</code> для хранения своих данных времени
- выполнения. Установите следующий патч, чтобы такие программы
- хранили свои данные в местах, совместимых с FHS:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../glibc-2.39-fhs-1.patch</kbd></pre>
- <p>
- В документации к Glibc рекомендуется собирать Glibc в
- отдельном каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Убедитесь, что утилиты <span class=
- "command"><strong>ldconfig</strong></span> and <span class=
- "command"><strong>sln</strong></span> установлены в
- <code class="filename">/usr/sbin</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo "rootsbindir=/usr/sbin" &gt; configparms</kbd></pre>
- <p>
- Затем подготовьте Glibc к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure \
- --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(../scripts/config.guess) \
- --enable-kernel=4.19 \
- --with-headers=$LFS/usr/include \
- --disable-nscd \
- libc_cv_slibdir=/usr/lib</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--host=$LFS_TGT,
- --build=$(../scripts/config.guess)</code></em></span>
- </dt>
- <dd>
- <p>
- Комбинация этих опций указывает на то, что система
- сборки Glibc настраивается на кросс-компиляцию с
- использованием кросс-компоновщика и кросс-компилятора в
- <code class="filename">$LFS/tools</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-kernel=4.19</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет Glibc выполнять компиляцию
- библиотеки с поддержкой ядра 4.19 и более поздних
- версий. Поддержка более старых ядер не включена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-headers=$LFS/usr/include</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент позволяет скомпилировать библиотеку с
- заголовочными файлами, недавно установленными в
- каталоге $LFS/usr/include, таким образом, пакету будет
- известно, какие функции есть у ядра, чтобы
- оптимизировать себя.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>libc_cv_slibdir=/usr/lib</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент гарантирует, что библиотека будет
- установлена в /usr/lib вместо стандартного /lib64 на
- 64-битных машинах.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-nscd</code></em></span>
- </dt>
- <dd>
- <p>
- Параметр отключает сборку демона кэша службы имен,
- который больше не используется.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- На этом этапе может появиться следующее предупреждение:
- </p>
- <div class="blockquote">
- <blockquote class="blockquote">
- <pre class="screen"><code class=
- "computeroutput">configure: WARNING:
-*** These auxiliary programs are missing or
-*** incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.</code></pre>
- </blockquote>
- </div>
- <p>
- Отсутствующая или несовместимая программа <span class=
- "command"><strong>msgfmt</strong></span>, как правило,
- безвредна. <span class=
- "command"><strong>msgfmt</strong></span> является частью
- пакета Gettext, который должен предоставлять
- хост-дистрибутив.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Поступали сообщения о том, что этот пакет может не
- компилироваться при <span class="quote">«<span class=
- "quote">параллельной сборке</span>»</span>. Если это
- произойдет, повторно запустите команду make с параметром
- <code class="option">-j1</code>.
- </p>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Если переменная <code class="envar">LFS</code> настроена
- неправильно, и, несмотря на рекомендации, вы выполняете
- сборку от имени пользователя <code class=
- "systemitem">root</code>, следующая команда установит
- только что собранный Glibc в вашу хост-систему, что, скорее
- всего, сделает её непригодной для использования. Поэтому
- дважды проверьте, правильность настройки среды и что вы
- вошли в систему не под учетной записью <code class=
- "systemitem">root</code>, прежде чем запускать следующую
- команду.
- </p>
- </div>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение опции <span class="command"><strong>make
- install</strong></span>:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>DESTDIR=$LFS</code></em></span>
- </dt>
- <dd>
- <p>
- Переменная make <code class="envar">DESTDIR</code>
- используется почти всеми пакетами для определения места
- установки пакета. Если она не задана, по умолчанию для
- установки используется корневой каталог (<code class=
- "filename">/</code>). Здесь мы указываем, что пакет
- должен быть установлен в $LFS, который станет корневым
- каталогом в <a class="xref" href="#ch-tools-chroot"
- title="7.4. Вход в окружение Chroot">Раздел&nbsp;7.4,
- «Вход в окружение Chroot»</a>.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Исправьте жестко запрограммированный путь к исполняемому
- загрузчику в <span class=
- "command"><strong>ldd</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd</kbd></pre>
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- На этом этапе необходимо остановиться и убедиться, что
- основные функции (компиляция и компоновка) нового
- кросс-тулчейна работают должным образом. Чтобы выполнить
- проверку работоспособности, выполните следующие команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo 'int main(){}' | $LFS_TGT-gcc -xc -
-readelf -l a.out | grep ld-linux</kbd></pre>
- <p>
- Если все работает правильно, ошибок быть не должно и вывод
- последней команды будет иметь вид:
- </p>
- <pre class="screen"><code class=
- "computeroutput">[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</code></pre>
- <p>
- Обратите внимание, что для 32-разрядных машин имя
- интерпретатора будет <code class=
- "filename">/lib/ld-linux.so.2</code>.
- </p>
- <p>
- Если выходные данные отображаются не так, как указано выше,
- или их вообще нет, значит, что-то сделано неправильно.
- Разберитесь с проблемой и повторите шаги выше, чтобы
- исправить ее. Эта проблема должна быть решена, прежде чем
- вы продолжите.
- </p>
- <p>
- Как только все будет хорошо, удалите тестовый файл:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v a.out</kbd></pre>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Сборка пакетов в следующей главе послужит дополнительной
- проверкой правильности сборки временного кросс-тулчейна.
- Если какой-либо пакет, особенно Binutils или GCC, не
- удается собрать, это указывает на то, что что-то пошло не
- так с установленными ранее Binutils, GCC, или Glibc.
- </p>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-glibc" title=
- "8.5.3. Содержимое пакета Glibc">Раздел&nbsp;8.5.3,
- «Содержимое пакета Glibc.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-libstdcpp" name=
- "ch-tools-libstdcpp"></a>5.6. Libstdc++ из GCC-13.2.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Libstdc++ — это стандартная библиотека C++. Она нужна для
- компиляции кода C++ (часть GCC написана на C++), когда мы
- собирали <a class="xref" href="#ch-tools-gcc-pass1" title=
- "5.3. GCC-13.2.0 - Проход 1">GCC-Проход 1</a>, нам пришлось
- отложить её установку, потому что она зависит от библиотеки
- Glibc, которой еще не было в целевом каталоге.
- </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">1.1
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 5.6.1. Установка библиотеки Libstdc++
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- <span class="application">Libstdc++</span> является частью
- исходников GCC. Сначала вы должны распаковать архив GCC и
- перейти в каталог <code class="filename">gcc-13.2.0</code>.
- </p>
- </div>
- <p>
- Создайте отдельный каталог сборки для libstdc++ и перейдите в
- него:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте libstdc++ к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../libstdc++-v3/configure \
- --host=$LFS_TGT \
- --build=$(../config.guess) \
- --prefix=/usr \
- --disable-multilib \
- --disable-nls \
- --disable-libstdcxx-pch \
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--host=...</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает, что должен использоваться кросс-компилятор,
- который мы только что собрали, вместо того, который
- находится в <code class="filename">/usr/bin</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-libstdcxx-pch</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент предотвращает установку предварительно
- скомпилированных include-файлов, которые на данном
- этапе не нужны.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает каталог установки для include-файлов.
- Поскольку libstdc++ является стандартной библиотекой
- C++ для LFS, этот каталог должен соответствовать
- местоположению, в котором компилятор C++ (<span class=
- "command"><strong>$LFS_TGT-g++</strong></span>) будет
- искать стандартные включаемые файлы C++. При обычной
- сборке эта информация автоматически передается в
- Libstdc++ при выполнении <span class=
- "command"><strong>configure</strong></span> из каталога
- верхнего уровня. В нашем случае эта информация должна
- быть указана явно. Компилятор C++ добавит путь sysroot
- <code class="filename">$LFS</code> (указанный при
- сборке GCC Проход 1) к пути поиска include-файлов,
- поэтому фактически он будет искать в <code class=
- "filename">$LFS/tools/$LFS_TGT/include/c++/13.2.0</code>.
- Комбинация переменной <em class=
- "parameter"><code>DESTDIR</code></em> (в приведенной
- ниже команде <span class="command"><strong>make
- install</strong></span>) и этого аргумента обеспечивает
- установку заголовочных файлов туда.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте Libstdc++, выполнив:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Удалите архивные файлы libtool, поскольку они потенциально
- опасны при кросс-компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете приведена в <a class=
- "xref" href="#contents-gcc" title=
- "8.28.2. Содержимое пакета GCC">Раздел&nbsp;8.28.2,
- «Содержимое пакета GCC.»</a>
- </p>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-temporary-tools" name=
- "chapter-temporary-tools"></a>Глава 6. Кросс-Компиляция
- временных инструментов
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-introduction-cross" name=
- "ch-tools-introduction-cross"></a>6.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этой главе рассказывается, как выполнить кросс-компиляцию
- базовых утилит с использованием только что собранного
- кросс-тулчейна. Эти утилиты установлены в свое конечное
- местоположение, но пока не могут быть использованы. Выполняемые
- инструкции по-прежнему зависят от инструментария хоста. Тем не
- менее, установленные библиотеки используются при компоновке.
- </p>
- <p>
- Использование утилит станет возможным в следующей главе после
- входа в среду <span class="quote">«<span class=
- "quote">chroot</span>»</span>. Все пакеты из этой главы, должны
- быть собраны до того, как мы это сделаем. Поэтому пока наша
- система зависима от хост-системы.
- </p>
- <p>
- Еще раз напомним, что неправильная настройка <code class=
- "envar">LFS</code> вместе со сборкой от <code class=
- "systemitem">root</code> может сделать ваш компьютер
- непригодным для использования. Всю эту главу нужно выполнить от
- имени пользователя <code class="systemitem">lfs</code>, в его
- рабочем окружении, как описано в <a class="xref" href=
- "#ch-preps-settingenviron" title=
- "4.4. Настройка окружения">Раздел&nbsp;4.4, «Настройка
- окружения»</a>.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-m4" name="ch-tools-m4"></a>6.2. M4-1.4.19
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет M4 содержит макропроцессор.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">31 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.2.1. Установка пакета M4
- </h3>
- <p>
- Подготовьте пакет M4 к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-m4" title=
- "8.12.2. Содержимое пакета M4">Раздел&nbsp;8.12.2,
- «Содержимое пакета M4.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-ncurses" name="ch-tools-ncurses"></a>6.3.
- Ncurses-6.4-20230520
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Ncurses содержит библиотеки для независимой от
- терминала обработки ввода/вывода
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">51 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.3.1. Установка пакета Ncurses
- </h3>
- <p>
- Во-первых, убедитесь, что <span class=
- "command"><strong>gawk</strong></span> найден первым во время
- настройки:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i s/mawk// configure</kbd></pre>
- <p>
- Затем выполните следующие команды, чтобы собрать программу
- <span class="quote">«<span class="quote">tic</span>»</span>
- на хосте сборки:
- </p>
- <pre class="userinput"><kbd class="command">mkdir build
-pushd build
- ../configure
- make -C include
- make -C progs tic
-popd</kbd></pre>
- <p>
- Подготовьте Ncurses к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./config.guess) \
- --mandir=/usr/share/man \
- --with-manpage-format=normal \
- --with-shared \
- --without-normal \
- --with-cxx-shared \
- --without-debug \
- --without-ada \
- --disable-stripping \
- --enable-widec</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-manpage-format=normal</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент предотвращает установку Ncurses сжатых
- страниц руководства, это может произойти, если сам
- дистрибутив хоста содержит сжатые страницы руководства.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-shared</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент позволяет Ncurses собирать и
- устанавливать разделяемые библиотеки C.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-normal</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент предотвращает сборку и установку
- статических библиотек C.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-debug</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент предотвращает сборку и установку
- отладочных библиотек.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-cxx-shared</code></em></span>
- </dt>
- <dd>
- <p>
- Это аргумент позволяет Ncurses собирать и устанавливать
- общие привязки C++. А также предотвращает сборку и
- установку статических привязок C++.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-ada</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент гарантирует, что Ncurses будет собран без
- поддержки компилятора Ada, который может присутствовать
- на хосте, но будет недоступен, как только мы войдем в
- среду <span class=
- "command"><strong>chroot</strong></span>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-stripping</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент не позволяет системе сборки использовать
- программу <span class=
- "command"><strong>strip</strong></span> с хоста.
- Использование инструментов хоста в кросс-компилируемой
- программе может привести к сбою.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-widec</code></em></span>
- </dt>
- <dd>
- <p>
- Этот аргумент указывает, что необходимо скомпилировать
- библиотеки расширенных символов (такие как,
- <code class="filename">libncursesw.so.6.4-20230520</code>)
- вместо обычных (таких как, <code class=
- "filename">libncurses.so.6.4-20230520</code>). Эти
- библиотеки расширенных символов можно использовать как
- в многобайтовой, так и традиционной 8-битной локали, в
- то время как обычные библиотеки корректно работают
- только в 8-битных локалях. Библиотеки расширенных
- символов и обычные совместимы на уровне исходного кода,
- но не совместимы в двоичном.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
-ln -sv libncursesw.so $LFS/usr/lib/libncurses.so
-sed -e 's/^#if.*XOPEN.*$/#if 1/' \
- -i $LFS/usr/include/curses.h</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров установки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>TIC_PATH=$(pwd)/build/progs/tic</code></em></span>
- </dt>
- <dd>
- <p>
- Нам нужно передать путь до только что собранной
- программы <span class=
- "command"><strong>tic</strong></span>, которая работает
- на сборочной машине, чтобы база данных терминала была
- создана без ошибок.
- </p>
- </dd>
- <dt>
- <span class="term"><span class="command"><strong>ln -sv
- libncursesw.so
- $LFS/usr/lib/libncurses.so</strong></span></span>
- </dt>
- <dd>
- <p>
- Библиотека <code class="filename">libncurses.so</code>
- необходима для нескольких пакетов, которые мы скоро
- соберем. Мы создаем эту символическую ссылку, чтобы
- использовать <code class=
- "filename">libncursesw.so</code> в качестве замены.
- </p>
- </dd>
- <dt>
- <span class="term"><span class="command"><strong>sed -e
- 's/^#if.*XOPEN.*$/#if 1/' ...</strong></span></span>
- </dt>
- <dd>
- <p>
- Заголовочный файл <code class=
- "filename">curses.h</code> содержит определения
- различных структур данных Ncurses. С разными
- определениями макросов препроцессора могут
- использоваться два разных набора определений структуры
- данных: 8-битное определение совместимо с <code class=
- "filename">libncurses.so</code>, а определение
- расширенного набора символов совместимо с <code class=
- "filename">libncursesw.so</code> . Поскольку мы
- используем <code class="filename">libncursesw.so</code>
- вместо <code class="filename">libncurses.so</code>,
- отредактируйте заголовочный файл, чтобы он всегда
- использовал определение структуры данных расширенного
- набора символов, совместимое с <code class="filename">.
- libncursesw.so</code>.
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-ncurses" title=
- "8.29.2. Содержимое пакета Ncurses">Раздел&nbsp;8.29.2,
- «Содержимое пакета Ncurses.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-bash" name="ch-tools-bash"></a>6.4.
- Bash-5.2.21
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Bash содержит Bourne-Again Shell.
- </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">67 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.4.1. Установка пакета Bash
- </h3>
- <p>
- Подготовьте Bash к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --build=$(sh support/config.guess) \
- --host=$LFS_TGT \
- --without-bash-malloc</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-bash-malloc</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает использование функции
- распределения памяти (<code class=
- "function">malloc</code>) Bash, которая, как известно,
- вызывает ошибки сегментации. Если опция отключена, Bash
- будет использовать функции <code class=
- "function">malloc</code> из Glibc, которые более
- стабильны.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Создайте символическую ссылку для программ, которые
- используют <span class="command"><strong>sh</strong></span>
- как оболочку:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv bash $LFS/bin/sh</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-bash" title=
- "8.35.2. Содержимое пакета Bash">Раздел&nbsp;8.35.2,
- «Содержимое пакета Bash.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-coreutils" name=
- "ch-tools-coreutils"></a>6.5. Coreutils-9.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Coreutils содержит основные утилиты, необходимые каждой
- операционной системе.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">173
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.5.1. Установка пакета Coreutils
- </h3>
- <p>
- Подготовьте Coreutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --enable-install-program=hostname \
- --enable-no-install-program=kill,uptime</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><code class=
- "envar">--enable-install-program=hostname</code></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет создать и установить двоичный
- файл <span class=
- "command"><strong>hostname</strong></span> – по
- умолчанию он отключен, но требуется для набора тестов
- Perl.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Переместите программы в их конечное местоположение. Хотя во
- временной среде в этом нет необходимости, мы должны это
- сделать, потому что некоторые программы жестко прописывают
- местоположение исполняемых файлов:
- </p>
- <pre class="userinput"><kbd class=
- "command">mv -v $LFS/usr/bin/chroot $LFS/usr/sbin
-mkdir -pv $LFS/usr/share/man/man8
-mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-coreutils" title=
- "8.57.2. Содержимое пакета Coreutils">Раздел&nbsp;8.57.2,
- «Содержимое пакета Coreutils.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-diffutils" name=
- "ch-tools-diffutils"></a>6.6. Diffutils-3.10
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Diffutils содержит программы, которые показывают
- различия между файлами или каталогами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">29 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.6.1. Установка пакета Diffutils
- </h3>
- <p>
- Подготовьте Diffutils для компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-diffutils" title=
- "8.59.2. Содержимое пакета Diffutils">Раздел&nbsp;8.59.2,
- «Содержимое пакета Diffutils.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-file" name="ch-tools-file"></a>6.7.
- File-5.45
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет File содержит утилиту для определения типа указанного
- файла или файлов
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">37 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.7.1. Установка пакета File
- </h3>
- <p>
- Команда <span class="command"><strong>file</strong></span> на
- хосте сборки должна быть той же версии, что и собираемая,
- чтобы создать файл подписи. Выполните следующие команды,
- чтобы создать временную копию команды <span class=
- "command"><strong>file</strong></span>.
- </p>
- <pre class="userinput"><kbd class="command">mkdir build
-pushd build
- ../configure --disable-bzlib \
- --disable-libseccomp \
- --disable-xzlib \
- --disable-zlib
- make
-popd</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новой опции настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-*</code></em></span>
- </dt>
- <dd>
- <p>
- Сценарий конфигурации пытается использовать некоторые
- пакеты из основного дистрибутива, если существуют
- соответствующие файлы библиотек. Это может привести к
- сбою компиляции, если файлы библиотек существует, но
- отсутствуют соответствующие заголовочные файлы. Эти
- параметры предотвращают использование ненужных
- возможностей хоста.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Подготовьте файл для компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make FILE_COMPILE=$(pwd)/build/src/file</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Удалите архивный файл libtool, поскольку он потенциально
- опасен при кросс-компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v $LFS/usr/lib/libmagic.la</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-file" title=
- "8.10.2. Содержимое пакета File">Раздел&nbsp;8.10.2,
- «Содержимое пакета File.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-findutils" name=
- "ch-tools-findutils"></a>6.8. Findutils-4.9.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Findutils содержит программы для поиска файлов. Эти
- программы предназначены для поиска по всем файлам в дереве
- каталогов, а также для создания, обслуживания и поиска в базе
- данных (часто быстрее, чем рекурсивный поиск, но ненадежно,
- если база данных давно не обновлялась).Findutils также
- предоставляет программу <span class=
- "command"><strong>xargs</strong></span>, которую можно
- использовать для запуска указанной команды для каждого файла,
- выбранного при поиске.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">42 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.8.1. Установка пакета Findutils
- </h3>
- <p>
- Подготовьте Findutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --localstatedir=/var/lib/locate \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-findutils" title=
- "8.61.2. Содержимое пакета Findutils">Раздел&nbsp;8.61.2,
- «Содержимое пакета Findutils.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-gawk" name="ch-tools-gawk"></a>6.9.
- Gawk-5.3.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Gawk содержит программы для работы с текстовыми
- файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">47 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.9.1. Установка пакета Gawk
- </h3>
- <p>
- Во-первых, убедитесь, что некоторые ненужные файлы не будут
- установлены:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's/extras//' Makefile.in</kbd></pre>
- <p>
- Подготовьте Gawk к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-gawk" title=
- "8.60.2. Содержимое пакета Gawk">Раздел&nbsp;8.60.2,
- «Содержимое пакета Gawk.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-grep" name="ch-tools-grep"></a>6.10.
- Grep-3.11
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Grep содержит программы для поиска по содержимому
- файлов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">27 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.10.1. Установка пакета Grep
- </h3>
- <p>
- Подготовьте Grep к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-grep" title=
- "8.34.2. Содержимое пакета Grep">Раздел&nbsp;8.34.2,
- «Содержимое пакета Grep.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-gzip" name="ch-tools-gzip"></a>6.11.
- Gzip-1.13
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Gzip содержит программы для сжатия и распаковки файлов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">11 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.11.1. Установка пакета Gzip
- </h3>
- <p>
- Подготовьте Gzip к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --host=$LFS_TGT</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-gzip" title=
- "8.64.2. Содержимое пакета Gzip">Раздел&nbsp;8.64.2,
- «Содержимое пакета Gzip.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-make" name="ch-tools-make"></a>6.12.
- Make-4.4.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Make содержит программу, управляющую генерацией
- исполняемых и других файлов, из исходного кода.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">15 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.12.1. Установка пакета Make
- </h3>
- <p>
- Подготовьте Make к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --without-guile \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новой опции настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-guile</code></em></span>
- </dt>
- <dd>
- <p>
- Несмотря на то, что мы выполняем кросс-компиляцию,
- configure пытается использовать guile с узла сборки,
- если он его находит. Это приводит к сбою компиляции,
- этот аргумент предотвращает его использование.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-make" title=
- "8.68.2. Содержимое пакета Make">Раздел&nbsp;8.68.2,
- «Содержимое пакета Make.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-patch" name="ch-tools-patch"></a>6.13.
- Patch-2.7.6
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Patch содержит программу для изменения или создания
- файлов путём наложение <span class="quote">«<span class=
- "quote">патча</span>»</span>, обычно, создаваемого программой
- <span class="command"><strong>diff</strong></span>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">12 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.13.1. Установка пакета Patch
- </h3>
- <p>
- Подготовьте Patch к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-patch" title=
- "8.69.2. Содержимое пакета Patch">Раздел&nbsp;8.69.2,
- «Содержимое пакета Patch.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-sed" name="ch-tools-sed"></a>6.14. Sed-4.9
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Sed содержит потоковый редактор текста
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">21 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.14.1. Установка пакета Sed
- </h3>
- <p>
- Подготовьте Sed к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(./build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-sed" title=
- "8.30.2. Содержимое пакета Sed">Раздел&nbsp;8.30.2,
- «Содержимое пакета Sed.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-tar" name="ch-tools-tar"></a>6.15. Tar-1.35
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Tar предоставляет возможность создавать tar архивы, а
- также производить с ними различные манипуляции. Tar может
- распаковать предварительно созданный архив, добавить или
- обновить файлы в нём, вернуть список файлов в архиве.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">42 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.15.1. Установка пакета Tar
- </h3>
- <p>
- Подготовьте Tar к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess)</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-tar" title=
- "8.70.2. Содержимое пакета Tar">Раздел&nbsp;8.70.2,
- «Содержимое пакета Tar.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-xz" name="ch-tools-xz"></a>6.16. Xz-5.4.6
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Xz содержит программы для сжатия и распаковки файлов.
- Он предоставляет возможности для lzma и более новых форматов
- сжатия xz. Сжатие текстовых файлов с помощью <span class=
- "command"><strong>xz</strong></span> дает лучший процент
- сжатия, чем с традиционные <span class=
- "command"><strong>gzip</strong></span> или <span class=
- "command"><strong>bzip2</strong></span>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">22 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.16.1. Установка пакета Xz
- </h3>
- <p>
- Подготовьте Xz к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --host=$LFS_TGT \
- --build=$(build-aux/config.guess) \
- --disable-static \
- --docdir=/usr/share/doc/xz-5.4.6</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Удалите архивный файл libtool, поскольку он потенциально
- опасен при кросс-компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v $LFS/usr/lib/liblzma.la</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-xz" title=
- "8.8.2. Содержимое пакета Xz">Раздел&nbsp;8.8.2, «Содержимое
- пакета Xz.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-binutils-pass2" name=
- "ch-tools-binutils-pass2"></a>6.17. Binutils-2.42 - Проход
- 2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Binutils содержит компоновщик, ассемблер и другие
- инструменты для работы с объектными файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">537
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.17.1. Установка пакета Binutils
- </h3>
- <p>
- Система сборки Binutils использует содержащуюся в пакете
- копию libtool для линковки с внутренними статическими
- библиотеками, но копии libiberty и zlib, поставляемые с
- пакетом, не используют libtool. Это несоответствие может
- привести к тому, что созданные двоичные файлы будут ошибочно
- связаны с библиотеками из основного дистрибутива. Решение
- этой проблемы:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '6009s/$add_dir//' -i ltmain.sh</kbd></pre>
- <p>
- Создайте отдельный каталог для сборки:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте Binutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure \
- --prefix=/usr \
- --build=$(../config.guess) \
- --host=$LFS_TGT \
- --disable-nls \
- --enable-shared \
- --enable-gprofng=no \
- --disable-werror \
- --enable-64-bit-bfd \
- --enable-default-hash-style=gnu</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>
- Собирает <code class="filename">libbfd</code> как
- разделяемую библиотеку
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-64-bit-bfd</code></em></span>
- </dt>
- <dd>
- <p>
- Включает 64-разрядную поддержку (на хостах с меньшим
- размером слова). В 64-разрядных системах это может и не
- понадобиться, но вреда от этого не будет
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- Удалите архивные файлы libtool, поскольку они потенциально
- опасны при кросс-компиляции, также удалите ненужные
- статические библиотеки
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-binutils" title=
- "8.19.2. Содержимое пакета Binutils">Раздел&nbsp;8.19.2,
- «Содержимое пакета Binutils.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-gcc-pass2" name=
- "ch-tools-gcc-pass2"></a>6.18. GCC-13.2.0 - Проход 2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GCC содержит коллекцию компиляторов GNU, которая
- включает компиляторы C и C++.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">4.4 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">4.8
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 6.18.1. Установка пакета GCC
- </h3>
- <p>
- Как и при первой сборке GCC, требуются пакеты GMP, MPFR и
- MPC. Распакуйте архивы и переименуйте каталоги:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xf ../mpfr-4.2.1.tar.xz
-mv -v mpfr-4.2.1 mpfr
-tar -xf ../gmp-6.3.0.tar.xz
-mv -v gmp-6.3.0 gmp
-tar -xf ../mpc-1.3.1.tar.gz
-mv -v mpc-1.3.1 mpc</kbd></pre>
- <p>
- При сборке на x86_64 измените имя каталога по умолчанию для
- 64-разрядных библиотек на <span class="quote">«<span class=
- "quote">lib</span>»</span>:
- </p>
- <pre class="userinput"><kbd class="command">case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
-esac</kbd></pre>
- <p>
- Переопределите правила сборки заголовочных файлов libgcc и
- libstdc++, чтобы разрешить создание этих библиотек с
- поддержкой потоков POSIX:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/thread_header =/s/@.*@/gthr-posix.h/' \
- -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in</kbd></pre>
- <p>
- Снова создайте отдельный каталог сборки:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Перед началом сборки GCC не забудьте отключить все переменные
- среды, которые переопределяют флаги оптимизации по умолчанию.
- </p>
- <p>
- Теперь подготовьте GCC к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure \
- --build=$(../config.guess) \
- --host=$LFS_TGT \
- --target=$LFS_TGT \
- LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \
- --prefix=/usr \
- --with-build-sysroot=$LFS \
- --enable-default-pie \
- --enable-default-ssp \
- --disable-nls \
- --disable-multilib \
- --disable-libatomic \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libsanitizer \
- --disable-libssp \
- --disable-libvtv \
- --enable-languages=c,c++</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-build-sysroot=$LFS</code></em></span>
- </dt>
- <dd>
- <p>
- Обычно, использование <em class=
- "parameter"><code>--host</code></em> гарантирует, что
- для сборки GCC используется кросс-компилятор, и этот
- компилятор знает, что он должен искать заголовочные
- файлы и библиотеки в <code class=
- "filename">$LFS</code>. Но сборочная система GCC
- использует другие инструменты, которые не знают об этом
- местоположении. Этот параметр необходим для того, чтобы
- они могли найти нужные файлы в <code class=
- "filename">$LFS</code>, а не на хосте.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--target=$LFS_TGT</code></em></span>
- </dt>
- <dd>
- <p>
- Поскольку мы выполняем кросс-компиляцию GCC, невозможно
- создать целевые библиотеки (<code class=
- "filename">libgcc</code> и <code class=
- "filename">libstdc++</code>) с ранее скомпилированными
- двоичными файлами GCC, потому что эти двоичные файлы не
- будут работать на хост-дистрибутиве. Система сборки GCC
- по умолчанию попытается использовать компиляторы C и
- C++ хоста в качестве обходного пути. Сейчас не
- поддерживается создание целевых библиотек GCC с помощью
- другой версии GCC, поэтому использование компиляторов
- хоста может привести к сбою сборки. Этот параметр
- гарантирует сборку библиотек с помощью GCC собранного
- на первом проходе.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>LDFLAGS_FOR_TARGET=...</code></em></span>
- </dt>
- <dd>
- <p>
- Разрешить <code class="filename">libstdc++</code>
- использовать общую библиотеку <code class=
- "filename">libgcc</code>, собранную на этом этапе,
- вместо статической версии, собранной в GCC Проход 1.
- Это необходимо для поддержки обработки исключений C++
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-libsanitizer</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает библиотеки среды выполнения GCC sanitizer.
- Они не нужны для временного набора инструментов. Этот
- параметр необходим для сборки GCC без установки
- <code class="systemitem">libcrypt</code> для целевого
- объекта. В <a class="xref" href="#ch-tools-gcc-pass1"
- title="5.3. GCC-13.2.0 - Проход 1">GCC-Проход 1</a> это
- решалось с помощью параметра <em class=
- "parameter"><code>--disable-libstdcxx</code></em>, но
- теперь мы должны передать его явно.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$LFS install</kbd></pre>
- <p>
- В качестве завершающего штриха создайте символическую ссылку
- на утилиту. Многие программы и скрипты используют
- <span class="command"><strong>cc</strong></span> вместо
- <span class="command"><strong>gcc</strong></span>, чтобы
- сделать программы более универсальными и, следовательно, для
- совместимости со всеми типами UNIX-систем, где компилятор GNU
- C не всегда установлен. Наличие <span class=
- "command"><strong>cc</strong></span> оставляет системному
- администратору право самостоятельно решать, какой компилятор
- C устанавливать:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv gcc $LFS/usr/bin/cc</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <p>
- Подробная информация об этом пакете находится в <a class=
- "xref" href="#contents-gcc" title=
- "8.28.2. Содержимое пакета GCC">Раздел&nbsp;8.28.2,
- «Содержимое пакета GCC.»</a>
- </p>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-chroot-temporary-tools" name=
- "chapter-chroot-temporary-tools"></a>Глава 7. Вход в
- окружение Chroot и создание дополнительных временных
- инструментов
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-introduction-chroot" name=
- "ch-tools-introduction-chroot"></a>7.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <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="#ch-tools-chroot" title=
- "7.4. Вход в окружение Chroot">Раздел&nbsp;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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-changingowner" name=
- "ch-tools-changingowner"></a>7.2. Смена владельца
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="admon note">
- <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 -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
-case $(uname -m) in
- x86_64) chown -R root:root $LFS/lib64 ;;
-esac</kbd></pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-kernfs" name="ch-tools-kernfs"></a>7.3.
- Подготовка виртуальных файловых систем ядра
- </h2>
- </div>
- </div>
- </div>
- <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">
- <h3 class="sect2">
- <a id="ch-tools-bindmount" name=
- "ch-tools-bindmount"></a>7.3.1. Монтирование и заполнение
- /dev
- </h3>
- <p>
- Во время обычной загрузки ядро автоматически монтирует
- файловую систему <code class="systemitem">devtmpfs</code> в
- каталог <code class="filename">/dev</code>; ядро создает узлы
- устройств в этой виртуальной файловой системе в процессе
- загрузки или при первом обнаружении устройства, или доступе к
- нему. Демон udev может изменять владельца или разрешения
- узлов устройств, созданных ядром, или создавать новые узлы
- устройств или символические ссылки, чтобы облегчить работу
- разработчиков дистрибутива или системных администраторов.
- (Подробности смотрите в <a class="xref" href=
- "#ch-config-udev-device-node-creation" title=
- "9.3.2.2. Создание узла устройства">Раздел&nbsp;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">
- <h3 class="sect2">
- <a id="ch-tools-kernfsmount" name=
- "ch-tools-kernfsmount"></a>7.3.2. Монтирование виртуальных
- файловых систем ядра
- </h3>
- <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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-chroot" name="ch-tools-chroot"></a>7.4.
- Вход в окружение Chroot
- </h2>
- </div>
- </div>
- </div>
- <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=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;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">
- <h3>
- Примечание
- </h3>
- <p>
- Важно, чтобы все команды в оставшейся части этой главы и
- следующих главах выполнялись из среды chroot. Если вы
- покидаете эту среду по какой-либо причине (например, при
- перезагрузке), убедитесь, что файловые системы виртуального
- ядра смонтированы, как описано в <a class="xref" href=
- "#ch-tools-bindmount" title=
- "7.3.1. Монтирование и заполнение /dev">Раздел&nbsp;7.3.1,
- «Монтирование и заполнение /dev»</a> и <a class="xref" href=
- "#ch-tools-kernfsmount" title=
- "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел&nbsp;7.3.2,
- «Монтирование виртуальных файловых систем ядра»</a>, а затем
- войдите в среду chroot для продолжения установки.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-creatingdirs" name=
- "ch-tools-creatingdirs"></a>7.5. Создание каталогов
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Пришло время создать полную структуру каталогов в файловой
- системе LFS.
- </p>
- <div class="admon note">
- <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/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">
- <h3 class="sect2">
- 7.5.1. Примечание о соответствии требованиям FHS
- </h3>
- <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">
- <h3>
- Предупреждение
- </h3>
- <p>
- FHS не требует наличия каталога <code class=
- "filename">/usr/lib64</code>, и редакторы LFS решили его не
- использовать. Чтобы инструкции в LFS и BLFS работали
- корректно, крайне важно, чтобы этот каталог не существовал.
- Время от времени вам следует проверять, что он не
- существует, потому что его легко создать непреднамеренно, и
- это, вероятно, приведет к поломке вашей системы.
- </p>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-createfiles" name=
- "ch-tools-createfiles"></a>7.6. Создание основных файлов и
- символических ссылок
- </h2>
- </div>
- </div>
- </div>
- <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 &gt; /etc/hosts &lt;&lt; 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 &gt; /etc/passwd &lt;&lt; "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 &gt; /etc/group &lt;&lt; "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>
- Для некоторых тестов в <a class="xref" href=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a> требуется обычный пользователь. Добавим такого
- пользователя здесь и удалим эту учетную запись в конце главы.
- </p>
- <pre class="userinput"><kbd class=
- "command">echo "tester:x:101:101::/home/tester:/bin/bash" &gt;&gt; /etc/passwd
-echo "tester:x:101:" &gt;&gt; /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">
- <h3>
- Примечание
- </h3>
- <p>
- В файл <code class="filename">/run/utmp</code> записываются
- пользователи, которые в данный момент вошли в систему. Он
- создаётся динамически, в процессе выполнения сценариев
- загрузки.
- </p>
- </div>
- <div class="admon note">
- <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="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-gettext" name="ch-tools-gettext"></a>7.7.
- Gettext-0.22.4
- </h2>
- </div>
- </div>
- </div>
- <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">306
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.7.1. Установка пакета Gettext
- </h3>
- <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="#contents-gettext" title=
- "8.32.2. Содержимое пакета Gettext">Раздел&nbsp;8.32.2,
- «Содержимое пакета Gettext.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-bison" name="ch-tools-bison"></a>7.8.
- Bison-3.8.2
- </h2>
- </div>
- </div>
- </div>
- <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">
- <h3 class="sect2">
- 7.8.1. Установка пакета Bison
- </h3>
- <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="#contents-bison" title=
- "8.33.2. Содержимое пакета Bison">Раздел&nbsp;8.33.2,
- «Содержимое пакета Bison.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-perl" name="ch-tools-perl"></a>7.9.
- Perl-5.38.2
- </h2>
- </div>
- </div>
- </div>
- <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">280
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.9.1. Установка пакета Perl
- </h3>
- <p>
- Подготовьте Perl к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">sh Configure -des \
- -Dprefix=/usr \
- -Dvendorprefix=/usr \
- -Duseshrplib \
- -Dprivlib=/usr/lib/perl5/5.38/core_perl \
- -Darchlib=/usr/lib/perl5/5.38/core_perl \
- -Dsitelib=/usr/lib/perl5/5.38/site_perl \
- -Dsitearch=/usr/lib/perl5/5.38/site_perl \
- -Dvendorlib=/usr/lib/perl5/5.38/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/5.38/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>-Dvendorprefix=/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>-Duseshrplib</code></em></span>
- </dt>
- <dd>
- <p>
- Собрать библиотеку libperl, необходимую некоторым
- модулям Perl, как общую библиотеку вместо статической.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dprivlib,-Darchlib,-Dsitelib,...</code></em></span>
- </dt>
- <dd>
- <p>
- Эти настройки определяют, где Perl ищет установленные
- модули. Редакторы LFS решили поместить их в структуру
- каталогов, основанную на MAJOR.MINOR версии Perl
- (5.38), что позволяет обновлять Perl до более новых
- уровней исправлений (уровень исправления - это
- последняя разделенная точками часть в строке полной
- версии, например 5.38.2) без необходимости
- переустанавливать все модули.
- </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="#contents-perl" title=
- "8.42.2. Содержимое пакета Perl">Раздел&nbsp;8.42.2,
- «Содержимое пакета Perl.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-Python" name="ch-tools-Python"></a>7.10.
- Python-3.12.2
- </h2>
- </div>
- </div>
- </div>
- <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.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">598
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.10.1. Установка пакета Python
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Существует два пакета, имена которых начинаются с префикса
- <span class="quote">«<span class=
- "quote">python</span>»</span>. Сейчас необходимо
- распаковать файл <code class=
- "filename">Python-3.12.2.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">
- <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=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;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="#contents-python" title=
- "8.51.2. Содержимое пакета Python 3">Раздел&nbsp;8.51.2,
- «Содержимое пакета Python 3.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-texinfo" name="ch-tools-texinfo"></a>7.11.
- Texinfo-7.1
- </h2>
- </div>
- </div>
- </div>
- <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">
- <h3 class="sect2">
- 7.11.1. Установка пакета Texinfo
- </h3>
- <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="#contents-texinfo" title=
- "8.71.2. Содержимое пакета Texinfo">Раздел&nbsp;8.71.2,
- «Содержимое пакета Texinfo.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-util-linux" name=
- "ch-tools-util-linux"></a>7.12. Util-linux-2.39.3
- </h2>
- </div>
- </div>
- </div>
- <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">172
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.12.1. Установка пакета Util-linux
- </h3>
- <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 \
- --without-python \
- ADJTIME_PATH=/var/lib/hwclock/adjtime \
- --docdir=/usr/share/doc/util-linux-2.39.3</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="#contents-utillinux" title=
- "8.78.2. Содержимое пакета Util-linux">Раздел&nbsp;8.78.2,
- «Содержимое пакета Util-linux.»</a>
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-tools-cleanup" name="ch-tools-cleanup"></a>7.13.
- Очистка и сохранение временной системы
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.13.1. Очистка
- </h3>
- <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">
- <h3 class="sect2">
- 7.13.2. Резервное копирование
- </h3>
- <p>
- На данный момент основные программы и библиотеки собраны, и
- ваша система LFS находится в хорошем состоянии. Можно создать
- резервную копию вашей системы для последующего повторного
- использования. В случае фатальных сбоев в следующих главах
- часто оказывается, что удалить все и начать заново (более
- осторожно) — лучший вариант восстановления. К сожалению, все
- временные файлы также будут удалены. Чтобы не тратить лишнее
- время на повторную сборку того, что было успешно собрано,
- полезно создать резервную копию текущей системы LFS.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Все остальные шаги в этом разделе являются необязательными.
- Тем не менее, как только вы начнете устанавливать пакеты в
- <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;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">
- <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=
- "#ch-partitioning-aboutlfs" title=
- "2.6. Установка переменной $LFS">Раздел&nbsp;2.6,
- «Установка переменной $LFS»</a>.
- </p>
- </div>
- <p>
- Перед созданием резервной копии размонтируйте виртуальные
- файловые системы:
- </p>
- <pre class="userinput"><kbd class=
- "command">mountpoint -q $LFS/dev/shm &amp;&amp; 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">
- <h3>
- Примечание
- </h3>
- <p>
- Поскольку архив резервной копии сжимается, процесс занимает
- довольно много времени (более 10 минут) даже на достаточно
- быстрой системе.
- </p>
- </div>
- <pre class="userinput"><kbd class="command">cd $LFS
-tar -cJpf $HOME/lfs-temp-tools-12.1.tar.xz .</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы переходите к главе 8, не забудьте повторно войти в
- среду chroot, как описано в разделе <span class=
- "quote">«<span class="quote">Важно</span>»</span> ниже.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 7.13.3. Восстановление
- </h3>
- <p>
- В случае, если были допущены какие-либо ошибки и вам нужно
- начать все сначала, вы можете использовать эту резервную
- копию для восстановления системы и сэкономить время на
- восстановление. Поскольку исходники находятся в папке
- <code class="filename">$LFS</code>, они также включены в
- архив резервной копии, поэтому их не нужно загружать
- повторно. Убедившись, что переменная <code class=
- "envar">$LFS</code> настроена правильно, вы можете
- восстановить резервную копию, выполнив следующие команды:
- </p>
- <div class="admon warning">
- <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.1.tar.xz</code></pre>
- <p>
- Еще раз проверьте, правильно ли настроено окружение, и
- продолжайте сборку остальной части системы.
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Если вы покинули среду chroot, чтобы создать резервную
- копию или перезапустить сборку с помощью восстановления, не
- забудьте проверить, что виртуальные файловые системы все
- еще смонтированы (<span class="command"><strong>findmnt |
- grep $LFS</strong></span>). Если они не смонтированы,
- перемонтируйте их сейчас, как описано в <a class="xref"
- href="#ch-tools-kernfs" title=
- "7.3. Подготовка виртуальных файловых систем ядра">Раздел&nbsp;7.3,
- «Подготовка виртуальных файловых систем ядра»</a>, и
- повторно войдите в среду chroot (см. <a class="xref" href=
- "#ch-tools-chroot" title=
- "7.4. Вход в окружение Chroot">Раздел&nbsp;7.4, «Вход в
- окружение Chroot»</a>), прежде чем продолжить.
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="part4" name="part4"></a>Часть&nbsp;IV.&nbsp;Сборка
- системы LFS
- </h1>
- </div>
- </div>
- </div>
- <div class="part">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-building-system" name=
- "chapter-building-system"></a>Глава 8. Установка базового
- системного программного обеспечения
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-introduction" name=
- "ch-system-introduction"></a>8.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В этой главе мы приступаем к сборке конечной системы LFS.
- </p>
- <p>
- Установка программного обеспечения проста. Хотя во многих
- случаях инструкции по установке можно было бы сделать короче и
- универсальнее, мы решили предоставить полные инструкции для
- каждого пакета, чтобы свести к минимуму вероятность ошибок.
- Ключом к пониманию того, что заставляет систему Linux работать,
- является знание того, для чего используется каждый пакет и
- зачем он вам (или системе) может понадобиться.
- </p>
- <p>
- Мы не рекомендуем использовать оптимизации. С ними программа
- может работать немного быстрее, но также они могут вызвать
- сложности при компиляции и проблемы при запуске программы. Если
- пакет не компилируется при использовании оптимизации,
- попробуйте скомпилировать его без оптимизации и посмотрите,
- решает ли это проблему. Даже если пакет компилируется при
- использовании оптимизации, существует риск, что он может быть
- скомпилирован неправильно из-за сложных взаимодействий между
- кодом и инструментами сборки. Также обратите внимание, что
- параметры <code class="option">-march</code> и <code class=
- "option">-mtune</code>, не тестировались со значениями
- отличными от указанных в книге. Это может вызвать проблемы с
- пакетами набора инструментов (Binutils, GCC и Glibc). Небольшие
- потенциальные плюсы, достигаемые за счет оптимизации, часто
- перевешиваются рисками. Тем кто собирает LFS впервые
- рекомендуется делать это без пользовательских оптимизаций.
- </p>
- <p>
- С другой стороны, мы сохраняем оптимизацию включенной в
- конфигурации пакетов по умолчанию. Кроме того, иногда мы явно
- включаем оптимизированную конфигурацию, предоставляемую
- пакетом, но не включенную по умолчанию. Сопровождающие пакета
- уже протестировали эти конфигурации и считают их безопасными,
- поэтому маловероятно, что они сломают сборку. Как правило,
- конфигурация по умолчанию уже включает параметры <code class=
- "option">-O2</code> или <code class="option">-O3</code>,
- поэтому результирующая система по-прежнему будет работать очень
- быстро без какой-либо пользовательской оптимизации и в то же
- время будет стабильной.
- </p>
- <p>
- Перед инструкцией по установке на каждой странице представлена
- информация о пакете, включая краткое описание того, что он
- содержит, примерное время, необходимое для сборки, и сколько
- места на диске требуется в процессе сборки. После инструкции по
- установке идет список программ и библиотек (вместе с кратким
- описанием), которые устанавливает пакет.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Для всех пакетов в <a class="xref" href=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a> значения SBU и требуемое дисковое
- пространство указано с учетом тестов. Значения SBU были
- рассчитаны с использованием четырех ядер ЦП (-j4) для всех
- операций, если не указано иное.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.1.1. О библиотеках
- </h3>
- <p>
- Как правило, редакторы LFS не рекомендуют собирать и
- устанавливать статические библиотеки. Большинство статических
- библиотек устарели в современной системе Linux. Кроме того,
- линковка статической библиотеки с программой может быть
- вредна. Если для устранения проблемы безопасности требуется
- обновление библиотеки, все программы, использующие
- статическую библиотеку, необходимо будет повторно
- перелинковать с новой библиотекой. Поскольку использование
- статических библиотек не всегда очевидно, соответствующие
- программы (и процедуры, необходимые для линковки) могут быть
- даже неизвестны.
- </p>
- <p>
- В инструкциях этой главы мы удаляем или отключаем установку
- большинства статических библиотек. Обычно это делается путем
- передачи параметра <code class=
- "option">--disable-static</code> при выполнении <span class=
- "command"><strong>configure</strong></span>. Иногда
- необходимо использовать альтернативные методы. В некоторых
- случаях, в частности в пакетах Glibc и GCC, использование
- статических библиотек остается важным элементом процесса
- сборки пакетов.
- </p>
- <p>
- Более подробное обсуждение библиотек смотрите <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/introduction/libraries.html">
- Библиотеки: статические или общие?</a> в книге BLFS.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-pkgmgt" name="ch-system-pkgmgt"></a>8.2.
- Управление пакетами
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Управление пакетами — часто cпрашиваемое дополнение к книге
- LFS. Менеджер пакетов позволяет отслеживать установку файлов,
- упрощая удаление и обновление пакетов. Хороший менеджер пакетов
- также будет обрабатывать конфигурационные файлы, чтобы
- сохранить пользовательские настройки при переустановке или
- обновлении пакета. Прежде чем вы начнете задаваться вопросом,
- НЕТ—в этом разделе не будет ни говориться, ни рекомендоваться
- какой-либо конкретный менеджер пакетов. Что он действительно
- предоставляет, так это обзор наиболее популярных методов и
- того, как они работают. Идеальным менеджером пакетов для вас
- может быть один из этих методов или комбинация двух и более
- методов. В этом разделе кратко упоминаются проблемы, которые
- могут возникнуть при обновлении пакетов.
- </p>
- <p>
- Некоторые причины, по которым менеджер пакетов не упоминается в
- LFS или BLFS представлены ниже:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Рассмотрение управления пакетами отвлекает внимание от
- целей этих книг—обучения тому, как строится система
- Linux.
- </p>
- </li>
- <li class="listitem">
- <p>
- Существует множество решений для управления пакетами,
- каждое из которых имеет свои сильные и слабые стороны.
- Трудно найти такое, которое удовлетворит всех.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Есть несколько советов, написанных на тему управления пакетами.
- Посетите проект <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/">Советы</a>
- возможно вы найдете решение, которое соответствует вашим
- потребностям.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="pkgmgmt-upgrade-issues" name=
- "pkgmgmt-upgrade-issues"></a>8.2.1. Проблемы с обновлением
- </h3>
- <p>
- Менеджер пакетов упрощает обновление до более новых версий
- после их выпуска. Как правило, инструкции в книгах LFS и BLFS
- можно использовать для обновления до более новых версий. Вот
- некоторые моменты, о которых следует помнить при обновлении
- пакетов, особенно в работающей системе.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Если нужно обновить ядро Linux (например, с 5.10.17 до
- 5.10.18 или 5.11.1), дополнительно пересобирать ничего
- не нужно. Система продолжит нормально работать
- благодаря четко определенной границе между ядром и
- пользовательским пространством. В частности, заголовки
- Linux API не нужно обновлять вместе с ядром. Вам просто
- нужно перезагрузить систему, чтобы использовать
- обновленное ядро.
- </p>
- </li>
- <li class="listitem">
- <p>
- Если необходимо обновить Glibc до более новой версии
- (например, с Glibc-2.36 до Glibc-2.39) необходимо
- выполнить некоторые дополнительные действия, чтобы
- избежать поломки системы. Подробности читайте в
- <a class="xref" href="#ch-system-glibc" title=
- "8.5. Glibc-2.39">Раздел&nbsp;8.5, «Glibc-2.39»</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- Если пакет, содержащий общую библиотеку, обновляется и
- имя библиотеки изменилось, то любые пакеты, динамически
- связанные с библиотекой, необходимо перекомпилировать,
- чтобы связать с более новой библиотекой. (Обратите
- внимание, что между версией пакета и именем библиотеки
- нет никакой связи.) Например, рассмотрим пакет
- foo-1.2.3, который устанавливает общую библиотеку с
- именем <code class="filename">libfoo.so.1</code>.
- Предположим, вы обновили пакет до более новой версии
- foo-1.2.4, которая устанавливает общую библиотеку с
- именем <code class="filename">libfoo.so.2</code>, все
- пакеты, которые динамически связаны с <code class=
- "filename">libfoo.so.1</code>, должны быть
- перекомпилированы для связи с <code class=
- "filename">libfoo.so.2</code>, чтобы использовать новую
- версию библиотеки. Вы не должны удалять старые
- библиотеки, пока все зависимые пакеты не будут
- перекомпилированы.
- </p>
- </li>
- <li class="listitem">
- <p>
- Если пакет (прямо или косвенно) связан как со старым,
- так и с новым именем общей библиотеки (например, пакет
- ссылается как на <code class=
- "filename">libfoo.so.2</code>, так и на <code class=
- "filename">libbar.so.1</code>, в то время как последний
- ссылается на <code class=
- "filename">libfoo.so.3</code>), пакет может работать
- неправильно, поскольку разные версии общей библиотеки
- содержат несовместимые определения для некоторых имен
- символов. Это может быть вызвано перекомпиляцией
- некоторых, но не всех, пакетов, связанных со старой
- общей библиотекой, после обновления пакета,
- предоставляющего общую библиотеку. Чтобы избежать этой
- проблемы, пользователям необходимо как можно скорее
- пересобрать каждый пакет, связанный с общей
- библиотекой, с обновленной версией (например, с
- libfoo.so.2 на libfoo.so.3).
- </p>
- </li>
- <li class="listitem">
- <p>
- Если пакет, содержащий общую библиотеку, обновляется, а
- имя библиотеки не меняется, но уменьшается номер версии
- <span class="bold"><strong>файла</strong></span>
- библиотеки (например, библиотека по-прежнему называется
- <code class="filename">libfoo.so.1</code>, но имя файла
- библиотеки изменилось с <code class=
- "filename">libfoo.so.1.25</code> на <code class=
- "filename">libfoo.so.1.24</code>), следует удалить файл
- библиотеки ранее установленной версии (в данном случае
- <code class="filename">libfoo.so.1.25</code>). В
- противном случае, команда <span class=
- "command"><strong>ldconfig</strong></span> (запущенная
- самостоятельно с помощью командной строки или при
- установке какого-либо пакета) приведёт к сбросу
- символической ссылки <code class=
- "filename">libfoo.so.1</code>, которая будет указывать
- на старый файл библиотеки, потому что кажется, что она
- имеет <span class="quote">«<span class="quote">более
- новую</span>»</span> версию, поскольку её номер версии
- больше. Такая ситуация может произойти, если вам нужно
- понизить версию пакета или авторы изменили схему
- управления версиями файлов библиотеки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Если пакет, содержащий общую библиотеку, обновляется, а
- имя библиотеки не меняется, но устраняется серьезная
- проблема (особенно уязвимость в системе безопасности),
- необходимо перезапустить все работающие программы,
- связанные с общей библиотекой. Следующая команда,
- запущенная от имени пользователя <code class=
- "systemitem">root</code> после завершения обновления,
- выведет список программ, которые использует старые
- версии этих библиотек (замените <em class=
- "replaceable"><code>libfoo</code></em> именем
- библиотеки):
- </p>
- <pre class="userinput"><kbd class=
- "command">grep -l '<em class=
- "replaceable"><code>libfoo</code></em>.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u</kbd></pre>
- <p>
- Если для доступа к системе используется <span class=
- "application">OpenSSH</span> и он связан с обновленной
- библиотекой, вам необходимо перезапустить службу
- <span class="command"><strong>sshd</strong></span>,
- затем выйти из системы, снова войти в систему и
- повторно выполнить предыдущую команду, чтобы убедиться,
- что удаленные библиотеки более не используются.
- </p>
- </li>
- <li class="listitem">
- <p>
- Если исполняемая программа или библиотека перезаписаны,
- процессы, использующие код или данные из них, могут
- завершиться сбоем. Правильный способ обновить программу
- или общую библиотеку, не вызывая сбоя процесса, - это
- сначала удалить его, а затем установить новую версию.
- Команда <span class=
- "command"><strong>install</strong></span>,
- предоставляемая <span class=
- "application">Coreutils</span>, уже реализовала это, и
- большинство пакетов используют ее для установки
- двоичных файлов и библиотек. Это означает, что большую
- часть времени вас не будет беспокоить эта проблема.
- Однако процесс установки некоторых пакетов (в
- частности, SpiderMonkey в BLFS) просто перезаписывает
- файл, если он существует, и вызывает сбой. Поэтому
- безопаснее сохранить свою работу и закрыть ненужные
- запущенные программы перед обновлением пакета.
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.2.2. Методы управления пакетами
- </h3>
- <p>
- Ниже приведены некоторые распространенные методы управления
- пакетами. Прежде чем принять решение о менеджере пакетов,
- проведите исследование различных методов, особенно недостатки
- каждой конкретной схемы.
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm4964" name="idm4964"></a>8.2.2.1. Всё у
- меня в голове!
- </h4>
- </div>
- </div>
- </div>
- <p>
- Да, это метод управления пакетами. Некоторым людям не нужен
- менеджер пакетов, потому что они хорошо знакомы с пакетами
- и знают, какие файлы устанавливаются каждым пакетом.
- Некоторым пользователям также не требуется какое-либо
- управление пакетами, поскольку они планируют пересобирать
- всю систему при каждом изменении пакета.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm4967" name="idm4967"></a>8.2.2.2. Установка
- в отдельные каталоги
- </h4>
- </div>
- </div>
- </div>
- <p>
- Это упрощенный метод управления пакетами, для которого не
- требуется специальная программа управления. Каждый пакет
- устанавливается в отдельный каталог. Например, пакет
- foo-1.1 устанавливается в <code class=
- "filename">/opt/foo-1.1</code>, а символическая ссылка
- создается из <code class="filename">/opt/foo</code> в
- <code class="filename">/opt/foo-1.1</code>. Когда
- появляется новая версия foo-1.2, она устанавливается в
- <code class="filename">/opt/foo-1.2</code> и предыдущая
- символическая ссылка заменяется символической ссылкой на
- новую версию.
- </p>
- <p>
- Переменные окружения, такие как <code class=
- "envar">PATH</code>, <code class="envar">MANPATH</code>,
- <code class="envar">INFOPATH</code>, <code class=
- "envar">PKG_CONFIG_PATH</code>, <code class=
- "envar">CPPFLAGS</code>, <code class="envar">LDFLAGS</code>
- и файл конфигурации <code class=
- "filename">/etc/ld.so.conf</code>, возможно, потребуется
- расширить, включив соответствующие подкаталоги в
- <code class="filename">/opt/foo-x.y</code>.
- </p>
- <p>
- Этот подход используется в книге BLFS для установки
- некоторых очень больших пакетов, чтобы упростить их
- обновление. Если вы устанавливаете много таких пакетов, эта
- схема становится неуправляемой. Некоторые пакеты (например,
- заголовки Linux API и Glibc) могут плохо работать с такой
- структурой. <span class="bold"><strong>Никогда не
- используйте её в масштабах всей системы.</strong></span>
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm4985" name="idm4985"></a>8.2.2.3.
- Управление пакетами с использованием символических
- ссылок
- </h4>
- </div>
- </div>
- </div>
- <p>
- Это разновидность предыдущей техники.Каждый пакет
- устанавливается аналогично, но вместо создания
- символической ссылки на общее имя пакета, каждому файлу
- создаётся символическая ссылка в иерархии каталогов
- <code class="filename">/usr</code>. Это исключает
- необходимость модификации значений переменных окружения.
- Хотя такие ссылки могут быть созданы пользователем, многие
- менеджеры пакетов используют именной такой подход. Наиболее
- популярные из них - Stow, Epkg, Graft и Depot.
- </p>
- <p>
- Установку нужно сымитировать, чтобы пакет думал, что он
- установлен в <code class="filename">/usr</code>, хотя на
- самом деле он установлен в иерархии <code class=
- "filename">/usr/pkg</code>. Установка таким способом обычно
- является нетривиальной задачей. Например, предположим, что
- вы устанавливаете пакет libfoo-1.1. Следующие инструкции
- могут привести к неправильной установке пакета:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr/pkg/libfoo/1.1
-make
-make install</kbd></pre>
- <p>
- Установка будет выполнена, но зависимые пакеты не смогут
- ссылаться на libfoo. Если вы скомпилируете пакет, который
- ссылается на libfoo, вы заметите, что он связан с
- <code class=
- "filename">/usr/pkg/libfoo/1.1/lib/libfoo.so.1</code>
- вместо <code class="filename">/usr/lib/libfoo.so.1</code>,
- как вы ожидаете. Правильный подход заключается в
- использовании переменной <code class="envar">DESTDIR</code>
- для управления установкой. Этот подход работает следующим
- образом:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr
-make
-make DESTDIR=/usr/pkg/libfoo/1.1 install</kbd></pre>
- <p>
- Большинство пакетов поддерживают этот подход, но есть и
- такие, которые этого не делают. Для несовместимых пакетов
- вам может потребоваться либо установить пакет вручную, либо
- вы можете установить проблемные пакеты в <code class=
- "filename">/opt</code>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5002" name="idm5002"></a>8.2.2.4. На основе
- временной метки
- </h4>
- </div>
- </div>
- </div>
- <p>
- В этом методе файлу присваивается временная метка перед
- установкой пакета. После установки простое использование
- команды <span class="command"><strong>find</strong></span>
- с соответствующими параметрами может создать журнал всех
- файлов, установленных после создания файла с временной
- метки. Менеджером пакетов, использующим этот подход,
- является install-log.
- </p>
- <p>
- Хотя преимущество этой схемы в том, что она проста, у нее
- есть два недостатка. Если во время установки, файлы
- устанавливаются с отметкой времени, отличной от текущего
- времени, эти файлы не будут отслеживаться менеджером
- пакетов. Кроме того, эта схема может использоваться только
- при установке пакетов по одному. Журналы ненадежны, если
- два пакета устанавливаются одновременно на двух разных
- консолях.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5007" name="idm5007"></a>8.2.2.5.
- Отслеживание сценариев установки
- </h4>
- </div>
- </div>
- </div>
- <p>
- При таком подходе, записываются команды, выполняемые
- сценариями установки. Есть два метода, которые можно
- использовать:
- </p>
- <p>
- Переменная среды <code class="envar">LD_PRELOAD</code>
- может быть установлена так, чтобы она указывала на
- библиотеку, которую нужно предварительно загрузить перед
- установкой. Во время установки эта библиотека отслеживает
- устанавливаемые пакеты, присоединяясь к различным
- исполняемым файлам, таким как <span class=
- "command"><strong>cp</strong></span>, <span class=
- "command"><strong>install</strong></span>, <span class=
- "command"><strong>mv</strong></span>, и отслеживая
- системные вызовы, изменяющие файловую систему. Чтобы этот
- подход работал, все исполняемые файлы должны быть
- динамически связаны без битов suid или sgid.
- Предварительная загрузка библиотеки может вызвать некоторые
- нежелательные побочные эффекты во время установки. Поэтому
- рекомендуется выполнить некоторые тесты, чтобы убедиться,
- что менеджер пакетов ничего не сломает и что он
- регистрирует все соответствующие файлы.
- </p>
- <p>
- Другой метод заключается в использовании <span class=
- "command"><strong>strace</strong></span>, который
- регистрирует все системные вызовы, сделанные во время
- выполнения сценариев установки.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5017" name="idm5017"></a>8.2.2.6. Создание
- архивов пакетов
- </h4>
- </div>
- </div>
- </div>
- <p>
- В этой схеме установка пакета имитируется в отдельном
- дереве, как описано ранее в разделе управление пакетами с
- использованием символических ссылок. После установки из
- установленных файлов создается архив пакета. Затем этот
- архив используется для установки пакета на локальный
- компьютер или даже на другие компьютеры.
- </p>
- <p>
- Этот подход используется большинством менеджеров пакетов,
- имеющихся в коммерческих дистрибутивах. Примерами
- менеджеров пакетов, которые следуют этому подходу, являются
- RPM (который, кстати, требуется согласно спецификации
- <a class="ulink" href=
- "https://refspecs.linuxfoundation.org/lsb.shtml">Linux
- Standard Base Specification</a>), pkg-utils, apt Debian и
- система Portage Gentoo. Описание того, как использовать
- этот стиль управления пакетами для систем LFS, находится по
- адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/fakeroot.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/fakeroot.txt</a>.
- </p>
- <p>
- Создание файлов пакетов, содержащих информацию о
- зависимостях, является сложной задачей и выходит за рамки
- LFS.
- </p>
- <p>
- Slackware использует систему на основе <span class=
- "command"><strong>tar</strong></span> для архивов пакетов.
- Эта система намеренно не обрабатывает зависимости пакетов,
- как это делают более сложные менеджеры пакетов. Подробнее
- об управлении пакетами Slackware см. <a class="ulink" href=
- "https://www.slackbook.org/html/package-management.html">https://www.slackbook.org/html/package-management.html</a>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5027" name="idm5027"></a>8.2.2.7.
- Пользовательское управление пакетами
- </h4>
- </div>
- </div>
- </div>
- <p>
- Эта схема, уникальная для LFS, была разработана Маттиасом
- Бенкманом и доступна в проекте <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/">
- Hints</a>. В этой схеме каждый пакет устанавливается
- отдельным пользователем в стандартные папки. Файлы,
- принадлежащие пакету, легко идентифицируются путем проверки
- идентификатора пользователя. Особенности и недостатки этого
- подхода слишком сложны, чтобы описывать их в этом разделе.
- Для получения более подробной информации, пожалуйста,
- ознакомьтесь с советами по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/more_control_and_pkg_man.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/more_control_and_pkg_man.txt</a>.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.2.3. Развертывание LFS на нескольких системах
- </h3>
- <p>
- Одним из преимуществ системы LFS является отсутствие файлов,
- зависящих от положения файлов на диске. Клонировать сборку
- LFS на другой компьютер с той же архитектурой, что и у
- базовой системы, так же просто, как использовать <span class=
- "command"><strong>tar</strong></span> для архивации раздела
- LFS, содержащем корневой каталог (около 900 МБ в несжатом
- виде для базовой сборки LFS), скопировать этот файл по сети
- или с помощью CD / USB носителя в новую систему и распаковать
- его. После этого необходимо изменить несколько
- конфигурационных файлов. Файлы, которые, возможно,
- потребуется изменить представлены в списке ниже: <code class=
- "filename">/etc/hosts</code>, <code class=
- "filename">/etc/fstab</code>, <code class=
- "filename">/etc/passwd</code>, <code class=
- "filename">/etc/group</code>, <span class=
- "phrase"><code class="filename">/etc/shadow</code>,
- <code class="filename">/etc/ld.so.conf</code>, <code class=
- "filename">/etc/sysconfig/rc.site</code>, <code class=
- "filename">/etc/sysconfig/network</code>, и <code class=
- "filename">/etc/sysconfig/ifconfig.eth0</code>.</span>
- </p>
- <p>
- Возможно, потребуется собрать собственное ядро для новой
- системы в зависимости от различий в системном оборудовании и
- исходной конфигурации ядра.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Поступали некоторые сообщения о проблемах при копировании
- между похожими, но не идентичными архитектурами. Например,
- набор инструкций для Intel не идентичен набору инструкций
- для процессора AMD, и более поздние версии некоторых
- процессоров могут содержать инструкции, недоступные в более
- ранних версиях.
- </p>
- </div>
- <p>
- Наконец, новую систему необходимо сделать загрузочной так,
- как это описано в <a class="xref" href="#ch-bootable-grub"
- title=
- "10.4. Использование GRUB для настройки процесса загрузки">Раздел&nbsp;10.4,
- «Использование GRUB для настройки процесса загрузки»</a>.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-man-pages" name=
- "ch-system-man-pages"></a>8.3. Man-pages-6.06
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Man-pages содержит более 2400 справочных руководств.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">33 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.3.1. Установка пакета Man-pages
- </h3>
- <p>
- Удалите две справочные страницы для функций хэширования
- паролей. <span class="application">Libxcrypt</span>
- предоставит улучшенную версию этих справочных страниц:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v man3/crypt*</kbd></pre>
- <p>
- Установите пакет Man-pages выполнив команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">make prefix=/usr install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-manpages" name="contents-manpages"></a>8.3.2.
- Содержимое пакета Man-pages
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные файлы:</strong>
- <span class="segbody">различные справочные
- страницы</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5080" name="idm5080"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="man-pages" name="man-pages"></a><span class=
- "term"><code class="filename">man
- pages</code></span>
- </p>
- </td>
- <td>
- <p>
- Описывают функции языка программирования C, важные
- файлы устройств и важные файлы конфигурации.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-iana-etc" name=
- "ch-system-iana-etc"></a>8.4. Iana-Etc-20240125
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Iana-Etc предоставляет данные для сетевых служб и
- протоколов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">4.8
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.4.1. Установка пакета Iana-Etc
- </h3>
- <p>
- Для этого пакета необходимо лишь скопировать нужные файлы:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp services protocols /etc</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-iana-etc" name="contents-iana-etc"></a>8.4.2.
- Содержимое пакета Iana-Etc
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные файлы:</strong>
- <span class="segbody">/etc/protocols и
- /etc/services</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5113" name="idm5113"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="protocols" name="protocols"></a><span class=
- "term"><code class=
- "filename">/etc/protocols</code></span>
- </p>
- </td>
- <td>
- <p>
- Описывает различные интернет-протоколы DARPA,
- которые доступны из подсистемы TCP/IP
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="services" name="services"></a><span class=
- "term"><code class=
- "filename">/etc/services</code></span>
- </p>
- </td>
- <td>
- <p>
- Обеспечивает сопоставление понятных текстовых имен
- для интернет-сервисов с назначенными им номерами
- портов и типами протоколов.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-glibc" name="ch-system-glibc"></a>8.5.
- Glibc-2.39
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Glibc содержит основную библиотеку C. Эта библиотека
- предоставляет основные процедуры для выделения памяти, поиска
- в каталогах, открытия и закрытия файлов, чтения и записи
- файлов, обработки строк, сопоставления с образцом, арифметики
- и так далее
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">12 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">3.1
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.5.1. Установка пакета Glibc
- </h3>
- <p>
- Некоторые программы Glibc используют не совместимый с FHS
- каталог <code class="filename">/var/db</code> для хранения
- своих данных во время выполнения. Примените следующий патч,
- чтобы эти программы хранили свои данные в каталогах,
- совместимых с FHS:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../glibc-2.39-fhs-1.patch</kbd></pre>
- <p>
- Документация Glibc рекомендует выполнять компиляцию в
- отдельном каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Убедитесь, что утилиты <span class=
- "command"><strong>ldconfig</strong></span> и <span class=
- "command"><strong>sln</strong></span> будут установлены в
- <code class="filename">/usr/sbin</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo "rootsbindir=/usr/sbin" &gt; configparms</kbd></pre>
- <p>
- Подготовьте Glibc к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr \
- --disable-werror \
- --enable-kernel=4.19 \
- --enable-stack-protector=strong \
- --disable-nscd \
- libc_cv_slibdir=/usr/lib</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-werror</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает параметр -Werror, передаваемый GCC. Это
- необходимо для запуска набора тестов.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-kernel=4.19</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр сообщает системе сборки, что Glibc может
- использоваться с ядрами старше 4.19. Это значение
- используется для создание обходных путей на случай,
- если системный вызов, представленный в более поздней
- версии, нельзя будет использовать.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-stack-protector=strong</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр повышает безопасность системы за счет
- добавления дополнительного кода для проверки
- переполнения буфера. Обратите внимание, что Glibc
- всегда явно переопределяет параметры GCC по умолчанию,
- поэтому необходимо всегда указывать эту опцию, несмотря
- на то, что мы уже указали <code class=
- "option">--enable-default-ssp</code> для GCC.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-nscd</code></em></span>
- </dt>
- <dd>
- <p>
- Параметр отключает сборку демона кэша службы имен,
- который больше не используется.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>libc_cv_slibdir=/usr/lib</code></em></span>
- </dt>
- <dd>
- <p>
- Эта переменная устанавливает правильную библиотеку для
- всей системы. Мы не хотим, чтобы использовалась lib64
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- В этом разделе набор тестов для Glibc считается критически
- важным. Ни в коем случае не пропускайте его.
- </p>
- </div>
- <p>
- Как правило, несколько тестов не проходят. Ошибки
- тестирования, перечисленные ниже, можно игнорировать.
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Вы можете увидеть, что ряд тестов завершились неудачей. Набор
- тестов Glibc в некоторой степени зависит от хост-системы.
- Несколько ошибок из более чем 5000 тестов можно игнорировать.
- Список наиболее распространенных проблем последних версий
- LFS:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Известно, что <span class=
- "emphasis"><em>io/tst-lchmod</em></span> не работает в
- среде chroot LFS.
- </p>
- </li>
- <li class="listitem">
- <p>
- Известно, что некоторые тесты, например <span class=
- "emphasis"><em>nss/tst-nss-files-hosts-multi</em></span>
- и <span class=
- "emphasis"><em>nptl/tst-thread-affinity*</em></span>
- завершаются неудачей из-за тайм-аута (особенно когда
- система работает относительно медленно и/или набор
- тестов запущен в несколько потоков). Эти тесты могут
- быть идентифицированы с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep "Timed out" -l $(find -name \*.out)</kbd></pre>
- <p>
- Можно повторно запустить отдельный тест, увеличив
- таймаут с помощью команды <span class=
- "command"><strong>TIMEOUTFACTOR=<em class=
- "replaceable"><code>&lt;factor&gt;</code></em> make
- test t=<em class="replaceable"><code>&lt;test
- name&gt;</code></em></strong></span>. Например,
- <span class="command"><strong>TIMEOUTFACTOR=10 make
- test t=nss/tst-nss-files-hosts-multi</strong></span>
- перезапустит <span class=
- "emphasis"><em>nss/tst-nss-files-hosts-multi</em></span>,
- увеличив начальный таймаут в 10 раз.
- </p>
- </li>
- <li class="listitem">
- <p>
- Кроме того, некоторые тесты могут завершиться неудачно
- при использовании относительно старой модели процессора
- (например, <span class=
- "emphasis"><em>elf/tst-cpu-features-cpuinfo</em></span>)
- или версии ядра хоста (например, <span class=
- "emphasis"><em>stdlib/tst-arc4random-thread</em></span>).
- </p>
- </li>
- </ul>
- </div>
- <p>
- На этапе установки Glibc будет жаловаться на отсутствие файла
- <code class="filename">/etc/ld.so.conf</code>, хотя это
- безобидное сообщение, предотвратить его появление можно с
- помощью команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">touch /etc/ld.so.conf</kbd></pre>
- <p>
- Исправьте Makefile, чтобы пропустить устаревшую проверку
- работоспособности, которая завершается неудачей в современной
- конфигурации Glibc:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- При обновлении Glibc до новой минорной версии (например, с
- Glibc-2.36 до Glibc-2.39) в работающей системе LFS вам
- необходимо принять некоторые дополнительные меры
- предосторожности, чтобы избежать поломки системы:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Обновление Glibc в системе LFS до версии 11.0 не
- поддерживается. Пересоберите LFS, если вы используете
- такую старую систему, но вам нужна более новая Glibc.
- </p>
- </li>
- <li class="listitem">
- <p>
- При обновлении системы LFS до версии 12.0 установите
- <span class="application">Libxcrypt</span> следуя
- инструкции <a class="xref" href=
- "#ch-system-libxcrypt" title=
- "8.26. Libxcrypt-4.4.36">Раздел&nbsp;8.26,
- «Libxcrypt-4.4.36.»</a>. В дополнение к обычной
- установке <span class="application">Libxcrypt</span>,
- <span class="bold"><strong>вы ДОЛЖНЫ следовать
- примечанию со страницы Libxcrypt, чтобы установить
- <code class="filename">libcrypt.so.1*</code> (заменив
- <code class="filename">libcrypt.so.1</code> из
- предыдущей установки Glibc)</strong></span>.
- </p>
- </li>
- <li class="listitem">
- <p>
- При обновлении системы LFS до версии 12.1 удалите
- программу <span class=
- "command"><strong>nscd</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -f /usr/sbin/nscd</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Обновите ядро и перезагрузитесь, если оно старше 4.19
- (проверьте текущую версию с помощью <span class=
- "command"><strong>uname -r</strong></span>) или, если
- вы хотите обновить имеющееся ядро, выполните действия
- из <a class="xref" href="#ch-bootable-kernel" title=
- "10.3. Linux-6.7.4">Раздел&nbsp;10.3,
- «Linux-6.7.4.»</a>
- </p>
- </li>
- <li class="listitem">
- <p>
- Обновите заголовочные файлы API ядра, если они старше
- 4.19 (проверьте текущую версию с помощью <span class=
- "command"><strong>cat
- /usr/include/linux/version.h</strong></span>) или,
- если вы просто хотите обновить их, следуйте <a class=
- "xref" href="#ch-tools-linux-headers" title=
- "5.4. Заголовочные файлы Linux-6.7.4 API">Раздел&nbsp;5.4,
- «Заголовочные файлы Linux-6.7.4 API»</a> (но удалив
- <code class="envar">$LFS</code> из команды
- <span class="command"><strong>cp</strong></span>).
- </p>
- </li>
- <li class="listitem">
- <p>
- Выполните установку <code class=
- "envar">DESTDIR</code> и обновите общие библиотеки
- Glibc в системе с помощью одной команды <span class=
- "command"><strong>install</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/*.so.* /usr/lib</kbd></pre>
- </li>
- </ul>
- </div>
- <p>
- Крайне важно строго следовать описанным выше шагам, если вы
- не совсем понимаете, что делаете. <span class=
- "bold"><strong>Любое неожиданное отклонение может сделать
- систему полностью непригодной для использования. ВЫ
- ПРЕДУПРЕЖДЕНЫ.</strong></span>
- </p>
- <p>
- Затем продолжайте выполнять команды <span class=
- "command"><strong>make install</strong></span>,
- <span class="command"><strong>sed</strong></span> для
- <code class="filename">/usr/bin/ldd</code> и команды для
- установки локалей. Как только они будут выполнены,
- перезагрузите систему.
- </p>
- </div>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Исправьте жестко заданный путь к исполняемому загрузчику в
- скрипте <span class="command"><strong>ldd</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</kbd></pre>
- <p>
- Затем установите локали, которые дадут возможность системе
- отвечать на разных языках. Ни одна из локалей не требуется
- системе, но если некоторые из них отсутствуют, то наборы
- тестов ряда пакетов будут пропускать важные тестовые
- сценарии.
- </p>
- <p>
- Отдельные локали можно установить с помощью программы
- <span class="command"><strong>localedef</strong></span>.
- Например, вторая команда <span class=
- "command"><strong>localedef</strong></span> приведенная ниже,
- объединяет определение независимой от набора символов локали
- <code class="filename">/usr/share/i18n/locales/cs_CZ</code> с
- набором символов <code class=
- "filename">/usr/share/i18n/charmaps/UTF-8.gz</code> и
- добавляет результат в файл <code class=
- "filename">/usr/lib/locale/locale-archive</code>. Следующие
- инструкции установят минимальный набор локалей, необходимый
- для оптимального охвата тестов
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv /usr/lib/locale
-localedef -i C -f UTF-8 C.UTF-8
-localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
-localedef -i de_DE -f ISO-8859-1 de_DE
-localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
-localedef -i de_DE -f UTF-8 de_DE.UTF-8
-localedef -i el_GR -f ISO-8859-7 el_GR
-localedef -i en_GB -f ISO-8859-1 en_GB
-localedef -i en_GB -f UTF-8 en_GB.UTF-8
-localedef -i en_HK -f ISO-8859-1 en_HK
-localedef -i en_PH -f ISO-8859-1 en_PH
-localedef -i en_US -f ISO-8859-1 en_US
-localedef -i en_US -f UTF-8 en_US.UTF-8
-localedef -i es_ES -f ISO-8859-15 es_ES@euro
-localedef -i es_MX -f ISO-8859-1 es_MX
-localedef -i fa_IR -f UTF-8 fa_IR
-localedef -i fr_FR -f ISO-8859-1 fr_FR
-localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
-localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
-localedef -i is_IS -f ISO-8859-1 is_IS
-localedef -i is_IS -f UTF-8 is_IS.UTF-8
-localedef -i it_IT -f ISO-8859-1 it_IT
-localedef -i it_IT -f ISO-8859-15 it_IT@euro
-localedef -i it_IT -f UTF-8 it_IT.UTF-8
-localedef -i ja_JP -f EUC-JP ja_JP
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2&gt; /dev/null || true
-localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
-localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
-localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
-localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
-localedef -i se_NO -f UTF-8 se_NO.UTF-8
-localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
-localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
-localedef -i zh_CN -f GB18030 zh_CN.GB18030
-localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
-localedef -i zh_TW -f UTF-8 zh_TW.UTF-8</kbd></pre>
- <p>
- Кроме того, установите локаль для вашей страны, языка и
- набора символов.
- </p>
- <p>
- В качестве альтернативы, установите сразу все локали
- перечисленные в файле <code class=
- "filename">glibc-2.39/localedata/SUPPORTED</code> (он
- включает все локали из списка выше и многие другие), выполнив
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">make localedata/install-locales</kbd></pre>
- <p>
- Затем используйте команду <span class=
- "command"><strong>localedef</strong></span> для создания и
- установки локалей, не перечисленных в файле <code class=
- "filename">glibc-2.39/localedata/SUPPORTED</code>, когда они
- вам понадобятся. Например, для некоторых тестов в этой главе
- потребуются следующие две локали:
- </p>
- <pre class="userinput"><kbd class=
- "command">localedef -i C -f UTF-8 C.UTF-8
-localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2&gt; /dev/null || true</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Glibc теперь использует libidn2 для разрешения
- интернационализированных доменных имен. Если такая функция
- необходима, то инструкцию по установке libidn2 можно найти
- на странице <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libidn2.html">
- BLFS libidn2</a>.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-glibc" name="conf-glibc"></a>8.5.2. Настройка
- Glibc
- </h3>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5298" name="idm5298"></a>8.5.2.1.
- Добавление nsswitch.conf
- </h4>
- </div>
- </div>
- </div>
- <p>
- Необходимо создать файл <code class=
- "filename">/etc/nsswitch.conf</code>, потому что
- настроенный по умолчанию Glibc плохо работает в сетевой
- среде.
- </p>
- <p>
- Создайте новый фай <code class=
- "filename">/etc/nsswitch.conf</code>, выполнив следующие
- действия:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/nsswitch.conf
-
-passwd: files
-group: files
-shadow: files
-
-hosts: files dns
-networks: files
-
-protocols: files
-services: files
-ethers: files
-rpc: files
-
-# End /etc/nsswitch.conf</code>
-EOF</kbd></pre>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm5307" name="idm5307"></a>8.5.2.2.
- Добавление данных о часовом поясе
- </h4>
- </div>
- </div>
- </div>
- <p>
- Установите и настройте часовой пояс следующим образом:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xf ../../tzdata2024a.tar.gz
-
-ZONEINFO=/usr/share/zoneinfo
-mkdir -pv $ZONEINFO/{posix,right}
-
-for tz in etcetera southamerica northamerica europe africa antarctica \
- asia australasia backward; do
- zic -L /dev/null -d $ZONEINFO ${tz}
- zic -L /dev/null -d $ZONEINFO/posix ${tz}
- zic -L leapseconds -d $ZONEINFO/right ${tz}
-done
-
-cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
-zic -d $ZONEINFO -p America/New_York
-unset ZONEINFO</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение команд zic:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>zic -L
- /dev/null ...</code></em></span>
- </dt>
- <dd>
- <p>
- Создаёт часовые пояса posix без секунд координации.
- Обычно их помещают как в <code class=
- "filename">zoneinfo</code> так и в <code class=
- "filename">zoneinfo/posix</code>. Часовые пояса POSIX
- должны быть прописаны в <code class=
- "filename">zoneinfo</code>, иначе различные тесты
- будут сообщать об ошибках. На встраиваемых системах с
- небольшим диском, где часовые пояса никогда не будут
- обновляться, можно сэкономить примерно 1.9 MB не
- используя каталог <code class=
- "filename">posix</code>, однако некоторые приложения
- или наборы тестов могут вызывать сбои.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>zic -L
- leapseconds ...</code></em></span>
- </dt>
- <dd>
- <p>
- Создаёт правильные часовые пояса с секундами
- координации. На встраиваемых системах с небольшим
- диском, где часовые пояса никогда не будут
- обновляться, а правильность времени неважна, можно
- выиграть примерно 1.9 MB, исключив каталог
- <code class="filename">right</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>zic ...
- -p ...</code></em></span>
- </dt>
- <dd>
- <p>
- Создаёт файл <code class=
- "filename">posixrules</code>. Используется New York,
- потому что POSIX требует, чтобы правила перехода на
- летнее время соответствовали правилам США.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Один из способов определить местный часовой пояс —
- запустить следующий скрипт:
- </p>
- <pre class="userinput"><kbd class=
- "command">tzselect</kbd></pre>
- <p>
- После нескольких вопросов о местоположении скрипт выдаст
- наименование часового пояса (например <span class=
- "emphasis"><em>America/Edmonton</em></span>). В файле
- <code class="filename">/usr/share/zoneinfo</code>
- перечислены и другие возможные часовые пояса, такие как
- <span class="emphasis"><em>Canada/Eastern</em></span> или
- <span class="emphasis"><em>EST5EDT</em></span>, которые не
- распознаются скриптом, но могут быть использованы.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/localtime</code>
- выполнив:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sfv /usr/share/zoneinfo/<em class=
- "replaceable"><code>&lt;xxx&gt;</code></em> /etc/localtime</kbd></pre>
- <p>
- Замените <em class=
- "replaceable"><code>&lt;xxx&gt;</code></em> на имя
- выбранного часового пояса (например, Europe/Moscow).
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="conf-ld" name="conf-ld"></a>8.5.2.3. Настройка
- динамического загрузчика
- </h4>
- </div>
- </div>
- </div>
- <p>
- По умолчанию, динамический загрузчик (<code class=
- "filename">/lib/ld-linux.so.2</code>) ищет в каталоге
- <code class="filename">/usr/lib</code>, нужные для работы
- программ библиотеки. Однако, если библиотеки находятся в
- другом каталоге, то его необходимо указать в файле
- <code class="filename">/etc/ld.so.conf</code>, чтобы
- динамический загрузчик мог их найти. Два каталога -
- <code class="filename">/usr/local/lib</code> и <code class=
- "filename">/opt/lib</code> часто используются для
- дополнительных библиотек, поэтому добавьте их в пути поиска
- для динамического загрузчика.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/ld.so.conf</code> выполнив:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/ld.so.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/ld.so.conf
-/usr/local/lib
-/opt/lib
-</code>
-EOF</kbd></pre>
- <p>
- Динамический загрузчик может выполнить поиск в каталоге и
- включить содержимое найденных там файлов. Обычно такие
- файлы состоят из одной строки и содержат путь к библиотеке.
- Чтобы добавить эту возможность, выполните следующие
- команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt;&gt; /etc/ld.so.conf &lt;&lt; "EOF"
-<code class="literal"># Add an include directory
-include /etc/ld.so.conf.d/*.conf
-</code>
-EOF
-mkdir -pv /etc/ld.so.conf.d</kbd></pre>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-glibc" name="contents-glibc"></a>8.5.3.
- Содержимое пакета Glibc
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">gencat,
- getconf, getent, iconv, iconvconfig, ldconfig, ldd,
- lddlibc4, ld.so (symlink to ld-linux-x86-64.so.2 or
- ld-linux.so.2), locale, localedef, makedb, mtrace,
- pcprofiledump, pldd, sln, sotruss, sprof, tzselect,
- xtrace, zdump и zic</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">ld-linux-x86-64.so.2, ld-linux.so.2,
- libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so},
- libc_nonshared.a, libc_malloc_debug.so, libdl.{a,so.2},
- libg.a, libm.{a,so}, libmcheck.a, libmemusage.so,
- libmvec.{a,so}, libnsl.so.1, libnss_compat.so,
- libnss_dns.so, libnss_files.so, libnss_hesiod.so,
- libpcprofile.so, libpthread.{a,so.0}, libresolv.{a,so},
- librt.{a,so.1}, libthread_db.so и libutil.{a,so.1}</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/arpa,
- /usr/include/bits, /usr/include/gnu, /usr/include/net,
- /usr/include/netash, /usr/include/netatalk,
- /usr/include/netax25, /usr/include/neteconet,
- /usr/include/netinet, /usr/include/netipx,
- /usr/include/netiucv, /usr/include/netpacket,
- /usr/include/netrom, /usr/include/netrose,
- /usr/include/nfs, /usr/include/protocols,
- /usr/include/rpc, /usr/include/sys, /usr/lib/audit,
- /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf,
- /usr/share/i18n, /usr/share/zoneinfo и
- /var/lib/nss_db</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5380" name="idm5380"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="gencat" name="gencat"></a><span class=
- "term"><span class=
- "command"><strong>gencat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает каталоги сообщений
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getconf" name="getconf"></a><span class=
- "term"><span class=
- "command"><strong>getconf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает настройки системы для специфичных
- переменных файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getent" name="getent"></a><span class=
- "term"><span class=
- "command"><strong>getent</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Получает записи из административной базы данных
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="iconv" name="iconv"></a><span class=
- "term"><span class=
- "command"><strong>iconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет преобразование набора символов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="iconvconfig" name=
- "iconvconfig"></a><span class="term"><span class=
- "command"><strong>iconvconfig</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает быстрозагружаемые файлы настроек модуля
- <span class="command"><strong>iconv</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ldconfig" name="ldconfig"></a><span class=
- "term"><span class=
- "command"><strong>ldconfig</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает привязки времени выполнения
- динамического компоновщика
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ldd" name="ldd"></a><span class=
- "term"><span class=
- "command"><strong>ldd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает, какие общие библиотеки требуются каждой
- программе или общей библиотеке
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lddlibc4" name="lddlibc4"></a><span class=
- "term"><span class=
- "command"><strong>lddlibc4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Помогает <span class=
- "command"><strong>ldd</strong></span> работать с
- объектными файлами. Он не существует на более новых
- архитектурах, таких как x86_64
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="locale" name="locale"></a><span class=
- "term"><span class=
- "command"><strong>locale</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит различную информацию о текущей локали
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="localedef" name="localedef"></a><span class=
- "term"><span class=
- "command"><strong>localedef</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилирует спецификации локали
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="makedb" name="makedb"></a><span class=
- "term"><span class=
- "command"><strong>makedb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает простую базу данных на основе текстового
- ввода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mtrace" name="mtrace"></a><span class=
- "term"><span class=
- "command"><strong>mtrace</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает и интерпретирует файл трассировки памяти;
- отображает сводку в удобочитаемом формате
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pcprofiledump" name=
- "pcprofiledump"></a><span class="term"><span class=
- "command"><strong>pcprofiledump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает дамп информации, генерируемой при
- профилировании ПК
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pldd" name="pldd"></a><span class=
- "term"><span class=
- "command"><strong>pldd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перечисляет динамические общие объекты,
- используемые запущенными процессами.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sln" name="sln"></a><span class=
- "term"><span class=
- "command"><strong>sln</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Статически скомпонованная программа <span class=
- "command"><strong>ln</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sotruss" name="sotruss"></a><span class=
- "term"><span class=
- "command"><strong>sotruss</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отслеживает вызовы процедур общей библиотеки
- указанной команды
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sprof" name="sprof"></a><span class=
- "term"><span class=
- "command"><strong>sprof</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает и отображает данные профилирования общих
- объектов.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tzselect" name="tzselect"></a><span class=
- "term"><span class=
- "command"><strong>tzselect</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запрашивает у пользователя информацию о текущем
- местоположении системы и выводит описание
- соответствующего часового пояса.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xtrace" name="xtrace"></a><span class=
- "term"><span class=
- "command"><strong>xtrace</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отслеживает выполнение программы, отображая
- выполняемую в данный момент функцию
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zdump" name="zdump"></a><span class=
- "term"><span class=
- "command"><strong>zdump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выдает дамп часового пояса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zic" name="zic"></a><span class=
- "term"><span class=
- "command"><strong>zic</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор часовых поясов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld.so" name="ld.so"></a><span class=
- "term"><code class="filename">ld-*.so</code></span>
- </p>
- </td>
- <td>
- <p>
- Вспомогательная программа для исполняемых файлов
- общей библиотеки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libBrokenLocale" name=
- "libBrokenLocale"></a><span class=
- "term"><code class=
- "filename">libBrokenLocale</code></span>
- </p>
- </td>
- <td>
- <p>
- Используется внутри Glibc как грубый хак для
- запуска сломанных программ (например, некоторые
- приложения Motif). Прочитайте комментарии в
- <code class=
- "filename">glibc-2.39/locale/broken_cur_max.c</code>
- для получения дополнительной информации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libanl" name="libanl"></a><span class=
- "term"><code class="filename">libanl</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка, не содержащая функций. Ранее
- это была библиотека асинхронного поиска имен,
- функции которой теперь находятся в <code class=
- "filename">libc</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libc" name="libc"></a><span class=
- "term"><code class="filename">libc</code></span>
- </p>
- </td>
- <td>
- <p>
- Основная библиотека C
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libc_malloc_debug" name=
- "libc_malloc_debug"></a><span class=
- "term"><code class=
- "filename">libc_malloc_debug</code></span>
- </p>
- </td>
- <td>
- <p>
- Включает проверку выделения памяти при
- предварительной загрузке
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libdl" name="libdl"></a><span class=
- "term"><code class="filename">libdl</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка, не содержащая функций. Ранее
- была библиотекой интерфейса динамической
- компоновки, функции которой теперь находятся в
- <code class="filename">libc</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libg" name="libg"></a><span class=
- "term"><code class="filename">libg</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка без функций. Раньше была
- библиотекой среды выполнения для <span class=
- "command"><strong>g++</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libm" name="libm"></a><span class=
- "term"><code class="filename">libm</code></span>
- </p>
- </td>
- <td>
- <p>
- Математическая библиотека
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmvec" name="libmvec"></a><span class=
- "term"><code class="filename">libmvec</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека векторных математических вычислений,
- подключаемая по мере необходимости при
- использовании <code class="filename">libm</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmcheck" name="libmcheck"></a><span class=
- "term"><code class=
- "filename">libmcheck</code></span>
- </p>
- </td>
- <td>
- <p>
- Включает проверку выделения памяти при подключении
- к
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmemusage" name=
- "libmemusage"></a><span class="term"><code class=
- "filename">libmemusage</code></span>
- </p>
- </td>
- <td>
- <p>
- Используется <span class=
- "command"><strong>memusage</strong></span> для
- сбора информации об использовании памяти программой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libnsl" name="libnsl"></a><span class=
- "term"><code class="filename">libnsl</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека сетевых служб, которая в настоящее время
- устарела
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libnss" name="libnss"></a><span class=
- "term"><code class=
- "filename">libnss_*</code></span>
- </p>
- </td>
- <td>
- <p>
- Модули Name Service Switch, содержащие функции для
- разрешения имен хостов, имен пользователей, имен
- групп, псевдонимов, служб, протоколов и т. д.
- Загружаются <code class="filename">libc</code> в
- соответствии с конфигурацией в <code class=
- "filename">/etc/nsswitch.conf</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libpcprofile" name=
- "libpcprofile"></a><span class="term"><code class=
- "filename">libpcprofile</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции профилирования, используемые для
- отслеживания времени, потраченного процессором в
- конкретных строках исходного кода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libpthread" name=
- "libpthread"></a><span class="term"><code class=
- "filename">libpthread</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка, не содержащая функций. Ранее
- содержала функции, обеспечивающие большинство
- интерфейсов, заданных POSIX.1c Threads Extensions
- (расширения реализации потоков) и интерфейсы
- семафоров, указанных в POSIX.1b Real-time Extension
- (расширения реального времени), теперь эти функции
- находятся в <code class="filename">libc</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libresolv" name="libresolv"></a><span class=
- "term"><code class=
- "filename">libresolv</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции создания, пересылки и
- интерпретации пакетов, используемых на серверах
- доменных имен в сети интернет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="librt" name="librt"></a><span class=
- "term"><code class="filename">librt</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, реализующие большую часть
- интерфейсов, определяемых в POSIX.1b Real-time
- Extension (расширения реального времени)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libthread_db" name=
- "libthread_db"></a><span class="term"><code class=
- "filename">libthread_db</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, полезные для сборки отладчиков
- для многопоточных программ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libutil" name="libutil"></a><span class=
- "term"><code class="filename">libutil</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка, не содержащая функций. Ранее
- содержал код для <span class="quote">«<span class=
- "quote">стандартных</span>»</span> функций,
- используемых во многих утилитах Unix. Эти функции
- теперь находятся в <code class=
- "filename">libc</code>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-zlib" name="ch-system-zlib"></a>8.6.
- Zlib-1.3.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Zlib содержит подпрограммы сжатия и распаковки,
- используемые некоторыми программами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">6.4
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.6.1. Установка пакета Zlib
- </h3>
- <p>
- Подготовьте Zlib к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Удалите бесполезную статическую библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/libz.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-zlib" name="contents-zlib"></a>8.6.2.
- Содержимое пакета Zlib
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libz.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5712" name="idm5712"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libz" name="libz"></a><span class=
- "term"><code class="filename">libz</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции сжатия и распаковки, используемые
- некоторыми программами.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-bzip2" name="ch-system-bzip2"></a>8.7.
- Bzip2-1.0.8
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Bzip2 содержит программы для сжатия и распаковки
- файлов. Сжатие текстовых файлов с помощью <span class=
- "command"><strong>bzip2</strong></span> даёт больший процент
- сжатия, чем традиционный <span class=
- "command"><strong>gzip</strong></span>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">7.2
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.7.1. Установка пакета Bzip2
- </h3>
- <p>
- Примените патч, который установит документацию для этого
- пакета:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch</kbd></pre>
- <p>
- Следующая команда гарантирует установку символических ссылок
- с относительным путём:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile</kbd></pre>
- <p>
- Убедитесь, что справочные страницы установлены в правильном
- месте:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile</kbd></pre>
- <p>
- Подготовьте Bzip2 к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">make -f Makefile-libbz2_so
-make clean</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>-f
- Makefile-libbz2_so</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет выполнить сборку, с
- использованием другого <code class=
- "filename">Makefile</code>, в данном случае
- <code class="filename">Makefile-libbz2_so</code>,
- который создает динамическую библиотеку <code class=
- "filename">libbz2.so</code> и связывает с ней Bzip2.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте и протестируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make PREFIX=/usr install</kbd></pre>
- <p>
- Установите библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -av libbz2.so.* /usr/lib
-ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so</kbd></pre>
- <p>
- Установите общий бинарный файл <span class=
- "command"><strong>bzip2</strong></span> в каталог
- <code class="filename">/usr/bin</code>, и замените две копии
- <span class="command"><strong>bzip2</strong></span>
- символическими ссылками:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -v bzip2-shared /usr/bin/bzip2
-for i in /usr/bin/{bzcat,bunzip2}; do
- ln -sfv bzip2 $i
-done</kbd></pre>
- <p>
- Удалите ненужную статическую библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/libbz2.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-bzip2" name="contents-bzip2"></a>8.7.2.
- Содержимое пакета Bzip2
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bunzip2 (ссылка
- на bzip2), bzcat (ссылка на bzip2), bzcmp (ссылка на
- bzdiff), bzdiff, bzegrep (ссылка на bzgrep), bzfgrep
- (ссылка на bzgrep), bzgrep, bzip2, bzip2recover, bzless
- (ссылка на bzmore) и bzmore</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libbz2.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/bzip2-1.0.8</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5788" name="idm5788"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bunzip2" name="bunzip2"></a><span class=
- "term"><span class=
- "command"><strong>bunzip2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает bzip-файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzcat" name="bzcat"></a><span class=
- "term"><span class=
- "command"><strong>bzcat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает в поток стандартного вывода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzcmp" name="bzcmp"></a><span class=
- "term"><span class=
- "command"><strong>bzcmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>cmp</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzdiff" name="bzdiff"></a><span class=
- "term"><span class=
- "command"><strong>bzdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>diff</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzegrep" name="bzegrep"></a><span class=
- "term"><span class=
- "command"><strong>bzegrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>egrep</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzfgrep" name="bzfgrep"></a><span class=
- "term"><span class=
- "command"><strong>bzfgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>fgrep</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzgrep" name="bzgrep"></a><span class=
- "term"><span class=
- "command"><strong>bzgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>grep</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzip2" name="bzip2"></a><span class=
- "term"><span class=
- "command"><strong>bzip2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает файлы, используя алгоритм сжатия текста с
- блочной сортировкой Барроуза — Уилера и кодирование
- Хафмана; степень сжатия лучше, чем у более
- традиционных архиваторов, использующих алгоритмы
- <span class="quote">«<span class=
- "quote">Lempel-Ziv</span>»</span>, например
- <span class="command"><strong>gzip</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzip2recover" name=
- "bzip2recover"></a><span class="term"><span class=
- "command"><strong>bzip2recover</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Пытается восстанавливать данные из поврежденных
- архивов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzless" name="bzless"></a><span class=
- "term"><span class=
- "command"><strong>bzless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>less</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bzmore" name="bzmore"></a><span class=
- "term"><span class=
- "command"><strong>bzmore</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу <span class=
- "command"><strong>more</strong></span> для bzip
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libbz2" name="libbz2"></a><span class=
- "term"><code class="filename">libbz2</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, реализующая сжатие данных без потерь с
- использованием алгоритма Барроуза-Уилера.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-xz" name="ch-system-xz"></a>8.8. Xz-5.4.6
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Xz содержит программы для сжатия и распаковки файлов.
- Он предоставляет возможности для lzma и более новых форматов
- сжатия xz. Сжатие текстовых файлов с помощью <span class=
- "command"><strong>xz</strong></span> дает лучший процент
- сжатия, чем с традиционные <span class=
- "command"><strong>gzip</strong></span> или <span class=
- "command"><strong>bzip2</strong></span>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">25 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.8.1. Установка пакета Xz
- </h3>
- <p>
- Подготовьте Xz к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/xz-5.4.6</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-xz" name="contents-xz"></a>8.8.2. Содержимое
- пакета Xz
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">lzcat (ссылка
- на xz), lzcmp (ссылка на xzdiff), lzdiff (ссылка на
- xzdiff), lzegrep (ссылка на xzgrep), lzfgrep (ссылка на
- xzgrep), lzgrep (ссылка на xzgrep), lzless (ссылка на
- xzless), lzma (ссылка на xz), lzmadec, lzmainfo, lzmore
- (ссылка на xzmore), unlzma (ссылка на xz), unxz (ссылка
- на xz), xz, xzcat (ссылка на xz), xzcmp (ссылка на
- xzdiff), xzdec, xzdiff, xzegrep (ссылка на xzgrep),
- xzfgrep (ссылка на xzgrep), xzgrep, xzless и
- xzmore</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">liblzma.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/lzma и
- /usr/share/doc/xz-5.4.6</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm5923" name="idm5923"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="lzcat" name="lzcat"></a><span class=
- "term"><span class=
- "command"><strong>lzcat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает в стандартный поток вывода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzcmp" name="lzcmp"></a><span class=
- "term"><span class=
- "command"><strong>lzcmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>cmp</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzdiff" name="lzdiff"></a><span class=
- "term"><span class=
- "command"><strong>lzdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>diff</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzegrep" name="lzegrep"></a><span class=
- "term"><span class=
- "command"><strong>lzegrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>egrep</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzfgrep" name="lzfgrep"></a><span class=
- "term"><span class=
- "command"><strong>lzfgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>fgrep</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzgrep" name="lzgrep"></a><span class=
- "term"><span class=
- "command"><strong>lzgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>grep</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzless" name="lzless"></a><span class=
- "term"><span class=
- "command"><strong>lzless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>less</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzma" name="lzma"></a><span class=
- "term"><span class=
- "command"><strong>lzma</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает или распаковывает файлы в формате LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzmadec" name="lzmadec"></a><span class=
- "term"><span class=
- "command"><strong>lzmadec</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Небольшой и быстрый декодер для файлов сжатых LZMA.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzmainfo" name="lzmainfo"></a><span class=
- "term"><span class=
- "command"><strong>lzmainfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает информацию, хранящуюся в заголовке
- сжатого файла LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lzmore" name="lzmore"></a><span class=
- "term"><span class=
- "command"><strong>lzmore</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>more</strong></span> для файлов
- сжатых LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unlzma" name="unlzma"></a><span class=
- "term"><span class=
- "command"><strong>unlzma</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает файлы в формате LZMA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unxz" name="unxz"></a><span class=
- "term"><span class=
- "command"><strong>unxz</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает файлы в формате XZ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xz" name="xz"></a><span class=
- "term"><span class=
- "command"><strong>xz</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает или распаковывает файлы в формате XZ.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzcat" name="xzcat"></a><span class=
- "term"><span class=
- "command"><strong>xzcat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает в стандартный поток вывода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzcmp" name="xzcmp"></a><span class=
- "term"><span class=
- "command"><strong>xzcmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>cmp</strong></span> для сжатых XZ
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzdec" name="xzdec"></a><span class=
- "term"><span class=
- "command"><strong>xzdec</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Небольшой и быстрый декодер для файлов сжатых XZ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzdiff" name="xzdiff"></a><span class=
- "term"><span class=
- "command"><strong>xzdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>diff</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzegrep" name="xzegrep"></a><span class=
- "term"><span class=
- "command"><strong>xzegrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>egrep</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzfgrep" name="xzfgrep"></a><span class=
- "term"><span class=
- "command"><strong>xzfgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>fgrep</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzgrep" name="xzgrep"></a><span class=
- "term"><span class=
- "command"><strong>xzgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>grep</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzless" name="xzless"></a><span class=
- "term"><span class=
- "command"><strong>xzless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>less</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xzmore" name="xzmore"></a><span class=
- "term"><span class=
- "command"><strong>xzmore</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>more</strong></span> для сжатых
- XZ файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="liblzma" name="liblzma"></a><span class=
- "term"><code class="filename">liblzma</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, реализующая сжатие данных без потерь с
- блочной сортировкой с использованием алгоритма
- Lempel-Ziv-Markov
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-zstd" name="ch-system-zstd"></a>8.9.
- Zstd-1.5.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Zstandard — это алгоритм сжатия в реальном времени,
- обеспечивающий высокую степень сжатия. Он предлагает очень
- широкий диапазон компромиссов между сжатием и скоростью при
- поддержке очень быстрого декодера.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">77 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.9.1. Установка пакета Zstd
- </h3>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make prefix=/usr</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В выходных данных теста есть несколько мест, выводящих
- сообщение 'failed'. Они ожидаемы, и только 'FAIL' является
- фактическим сбоем теста. Сбоев при тестировании быть не
- должно.
- </p>
- </div>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make prefix=/usr install</kbd></pre>
- <p>
- Удалите статическую библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v /usr/lib/libzstd.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-zstd" name="contents-zstd"></a>8.9.2.
- Содержимое пакета Zstd
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">zstd, zstdcat
- (ссылка на zstd), zstdgrep, zstdless, zstdmt (ссылка на
- zstd) и unzstd (ссылка на zstd)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libzstd.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6144" name="idm6144"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="zstd" name="zstd"></a><span class=
- "term"><span class=
- "command"><strong>zstd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает или распаковывает файлы в формате ZSTD
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zstdgrep" name="zstdgrep"></a><span class=
- "term"><span class=
- "command"><strong>zstdgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>grep</strong></span> на сжатых
- ZSTD файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zstdless" name="zstdless"></a><span class=
- "term"><span class=
- "command"><strong>zstdless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>less</strong></span> на сжатых
- ZSTD файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libzstd" name="libzstd"></a><span class=
- "term"><code class="filename">libzstd</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, реализующая сжатие данных без потерь, с
- использованием алгоритма ZSTD
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-file" name="ch-system-file"></a>8.10.
- File-5.45
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет File содержит утилиту для определения типа указанного
- файла или файлов
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">17 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.10.1. Установка пакета File
- </h3>
- <p>
- Подготовьте File к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-file" name="contents-file"></a>8.10.2.
- Содержимое пакета File
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">file</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libmagic.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6211" name="idm6211"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="file" name="file"></a><span class=
- "term"><span class=
- "command"><strong>file</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Пытается классифицировать каждый указанный файл; он
- делает это, выполняя серию тестов—тесты файловой
- системы, тесты магических чисел и языковые тесты.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmagic" name="libmagic"></a><span class=
- "term"><code class=
- "filename">libmagic</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции распознавания магических чисел
- используемые программой <span class=
- "command"><strong>file</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-readline" name=
- "ch-system-readline"></a>8.11. Readline-8.2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Readline представляет собой набор библиотек,
- предлагающих возможности редактирования прямо в командной
- строке и просмотра истории команд.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">16 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.11.1. Установка пакета Readline
- </h3>
- <p>
- Переустановка пакета Readline приводит к перемещению старых
- библиотек в &lt;libraryname&gt;.old. Обычно это не вызывает
- проблем, но в некоторых случаях могут возникать ошибки
- линковки с <span class=
- "command"><strong>ldconfig</strong></span>. Этого можно
- избежать, выполнив следующие две команды sed:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/MV.*old/d' Makefile.in
-sed -i '/{OLDSUFF}/c:' support/shlib-install</kbd></pre>
- <p>
- Теперь устраните проблему, выявленную разработчиками:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../readline-8.2-upstream_fixes-3.patch</kbd></pre>
- <p>
- Подготовьте Readline к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --with-curses \
- --docdir=/usr/share/doc/readline-8.2</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение нового параметра configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-curses</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр сообщает Readline, что он может найти
- функции библиотеки termcap в библиотеке curses, а не в
- отдельной библиотеке termcap. Это позволит
- сгенерировать корректный файл <code class=
- "filename">readline.pc</code>.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make SHLIB_LIBS="-lncursesw"</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>SHLIB_LIBS="-lncursesw"</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр принудительно линкует Readline с
- библиотекой <code class="filename">libncursesw</code>.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- С этим пакетом не поставляется набор тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make SHLIB_LIBS="-lncursesw" install</kbd></pre>
- <p>
- По желанию установите документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-readline" name=
- "contents-readline"></a>8.11.2. Содержимое пакета Readline
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libhistory.so
- и libreadline.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/readline и
- /usr/share/doc/readline-8.2</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6287" name="idm6287"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libhistory" name=
- "libhistory"></a><span class="term"><code class=
- "filename">libhistory</code></span>
- </p>
- </td>
- <td>
- <p>
- Обеспечивает согласованный пользовательский
- интерфейс для вызова строк из истории
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libreadline" name=
- "libreadline"></a><span class="term"><code class=
- "filename">libreadline</code></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет набор команд для управления текстом,
- введенным в интерактивном сеансе программы.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-m4" name="ch-system-m4"></a>8.12.
- M4-1.4.19
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет M4 содержит макропроцессор.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">49 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.12.1. Установка пакета M4
- </h3>
- <p>
- Подготовьте M4 к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-m4" name="contents-m4"></a>8.12.2. Содержимое
- пакета M4
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">m4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6336" name="idm6336"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="m4" name="m4"></a><span class=
- "term"><span class=
- "command"><strong>m4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует указанные файлы, одновременно расширяя
- содержащиеся в них макросы. Эти макросы являются
- либо встроенными, либо определяемыми пользователем
- и могут принимать любое количество аргументов.
- Помимо выполнения макросов, <span class=
- "command"><strong>m4</strong></span> имеет
- встроенные функции для включения указанных файлов,
- выполнения команд Unix, выполнения целочисленной
- арифметики, манипулирования текстом, рекурсии и
- т.д. Программа <span class=
- "command"><strong>m4</strong></span> может
- использоваться либо как интерфейс к компилятору,
- либо как самостоятельный макропроцессор
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-bc" name="ch-system-bc"></a>8.13. Bc-6.7.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Bc содержит язык для обработки чисел произвольной
- точности.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">7.8
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.13.1. Установка пакета Bc
- </h3>
- <p>
- Подготовьте Bc к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">CC=gcc ./configure --prefix=/usr -G -O3 -r</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>CC=gcc</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр определяет используемый компилятор
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-G</code></em></span>
- </dt>
- <dd>
- <p>
- Пропускает часть тестов, которые не будут работать,
- пока не будет установлена программа bc.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-O3</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает используемый уровень оптимизации.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-r</code></em></span>
- </dt>
- <dd>
- <p>
- Включает использование <span class=
- "application">Readline</span> для улучшения функции
- редактирования строк в bc.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать bc, запустите:
- </p>
- <pre class="userinput"><kbd class=
- "command">make test</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-bc" name="contents-bc"></a>8.13.2. Содержимое
- пакета Bc
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bc и dc</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6403" name="idm6403"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bc" name="bc"></a><span class=
- "term"><span class=
- "command"><strong>bc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Калькулятор командной строки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dc" name="dc"></a><span class=
- "term"><span class=
- "command"><strong>dc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Калькулятор командной строки с обратной польской
- нотацией
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-flex" name="ch-system-flex"></a>8.14.
- Flex-2.6.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Flex содержит инструмент для генерации программ,
- распознающих заданные шаблоны в тексте
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">33 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.14.1. Установка пакета Flex
- </h3>
- <p>
- Подготовьте Flex к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --docdir=/usr/share/doc/flex-2.6.4 \
- --disable-static</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Для тестирования пакета (около 0,5 SBU) выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Некоторые программы пока не знают о <span class=
- "command"><strong>flex</strong></span> и пытаются запустить
- его предшественника - <span class=
- "command"><strong>lex</strong></span>. Чтобы обеспечить их
- работоспособность, создайте символическую ссылку <span class=
- "command"><strong>lex</strong></span>, которая запускает
- <code class="filename">flex</code> в режиме эмуляции
- <span class="command"><strong>lex</strong></span>, а также
- создайте символическую ссылку на справочную страницу
- <span class="command"><strong>lex</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv flex /usr/bin/lex
-ln -sv flex.1 /usr/share/man/man1/lex.1</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-flex" name="contents-flex"></a>8.14.2.
- Содержимое пакета Flex
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">flex, flex++
- (ссылка на flex), и lex (ссылка на flex)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libfl.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/flex-2.6.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6465" name="idm6465"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="flex" name="flex"></a><span class=
- "term"><span class=
- "command"><strong>flex</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для создания программ, распознающих
- текст по шаблону; это позволяет гибко указывать
- правила поиска паттернов, устраняя необходимость
- разработки специализированной программы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="flexpp" name="flexpp"></a><span class=
- "term"><span class=
- "command"><strong>flex++</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Расширение flex используется для генерации кода и
- классов C++. Является символической ссылкой на
- <span class="command"><strong>flex</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lex" name="lex"></a><span class=
- "term"><span class=
- "command"><strong>lex</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символическая ссылка, запускает <span class=
- "command"><strong>flex</strong></span> в режиме
- эмуляции <span class=
- "command"><strong>lex</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libfl" name="libfl"></a><span class=
- "term"><code class="filename">libfl</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека <code class="filename">flex</code>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-tcl" name="ch-system-tcl"></a>8.15.
- Tcl-8.6.13
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет <span class="application">Tcl</span> содержит Tool
- Command Language, надежный скриптовый язык общего назначения.
- Пакет <span class="application">Expect</span> написан на
- языке <span class="application">Tcl</span> (произносится как
- "тикл").
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">2.7 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">89 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.15.1. Установка пакета Tcl
- </h3>
- <p>
- Этот пакет и следующие два (Expect и DejaGNU) устанавливаются
- для поддержки возможности тестирования Binutils, GCC и других
- пакетов. Установка трех пакетов для целей тестирования может
- показаться избыточной, но вы будете чувствовать себя
- увереннее, когда знаете, что наиболее важные инструменты
- работают правильно.
- </p>
- <p>
- Подготовьте Tcl к компиляции:
- </p>
- <pre class="userinput"><kbd class="command">SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr \
- --mandir=/usr/share/man</kbd></pre>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
- -e "s|$SRCDIR|/usr/include|" \
- -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.5|/usr/lib/tdbc1.1.5|" \
- -e "s|$SRCDIR/pkgs/tdbc1.1.5/generic|/usr/include|" \
- -e "s|$SRCDIR/pkgs/tdbc1.1.5/library|/usr/lib/tcl8.6|" \
- -e "s|$SRCDIR/pkgs/tdbc1.1.5|/usr/include|" \
- -i pkgs/tdbc1.1.5/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.3|/usr/lib/itcl4.2.3|" \
- -e "s|$SRCDIR/pkgs/itcl4.2.3/generic|/usr/include|" \
- -e "s|$SRCDIR/pkgs/itcl4.2.3|/usr/include|" \
- -i pkgs/itcl4.2.3/itclConfig.sh
-
-unset SRCDIR</kbd></pre>
- <p>
- Различные инструкции <span class="quote">«<span class=
- "quote">sed</span>»</span> после команды <span class=
- "quote">«<span class="quote">make</span>»</span> удаляют
- ссылки на каталог сборки из файлов конфигурации и заменяют их
- на созданные каталоги. Это необязательно для остальной части
- LFS, но может понадобиться в случае, когда пакет, собранный
- позже, использует Tcl.
- </p>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make test</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Сделайте установленную библиотеку доступной для записи, чтобы
- позже можно было удалить отладочные символы:
- </p>
- <pre class="userinput"><kbd class=
- "command">chmod -v u+w /usr/lib/libtcl8.6.so</kbd></pre>
- <p>
- &gt;Установите заголовочные файлы Tcl. Они потребуются для
- следующего пакета - Expect.
- </p>
- <pre class="userinput"><kbd class=
- "command">make install-private-headers</kbd></pre>
- <p>
- Теперь создайте необходимую символическую ссылку:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sfv tclsh8.6 /usr/bin/tclsh</kbd></pre>
- <p>
- Переименуйте справочную страницу, которая конфликтует со
- справочной страницей Perl:
- </p>
- <pre class="userinput"><kbd class=
- "command">mv /usr/share/man/man3/{Thread,Tcl_Thread}.3</kbd></pre>
- <p>
- При необходимости установите документацию, выполнив следующие
- команды:
- </p>
- <pre class="userinput"><kbd class="command">cd ..
-tar -xf ../tcl8.6.13-html.tar.gz --strip-components=1
-mkdir -v -p /usr/share/doc/tcl-8.6.13
-cp -v -r ./html/* /usr/share/doc/tcl-8.6.13</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-tcl" name="contents-tcl"></a>8.15.2.
- Содержимое пакета Tcl
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">tclsh (ссылка
- на tclsh8.6) и tclsh8.6</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libtcl8.6.so и
- libtclstub8.6.a</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6556" name="idm6556"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="tclsh8.6" name="tclsh8.6"></a><span class=
- "term"><span class=
- "command"><strong>tclsh8.6</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Командная оболочка Tcl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tclsh" name="tclsh"></a><span class=
- "term"><span class=
- "command"><strong>tclsh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ссылка на tclsh8.6
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libtcl8.6.so" name=
- "libtcl8.6.so"></a><span class="term"><code class=
- "filename">libtcl8.6.so</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека Tcl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libtclstub8.6.a" name=
- "libtclstub8.6.a"></a><span class=
- "term"><code class=
- "filename">libtclstub8.6.a</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека-заглушка Tcl
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-expect" name="ch-system-expect"></a>8.16.
- Expect-5.45.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет <span class="application">Expect</span> содержит
- инструменты для автоматизации работы интерактивных
- приложений, таких как <span class=
- "command"><strong>telnet</strong></span>, <span class=
- "command"><strong>ftp</strong></span>, <span class=
- "command"><strong>passwd</strong></span>, <span class=
- "command"><strong>fsck</strong></span>, <span class=
- "command"><strong>rlogin</strong></span> и <span class=
- "command"><strong>tip</strong></span>, с помощью скриптовых
- диалогов и макросов. Кроме того <span class=
- "application">Expect</span> полезен для тестирования
- перечисленных выше приложений, а также для решения сложных
- задач взаимодействия с другими средствами. Фреймворк
- <span class="application">DejaGnu</span> написан на языке
- <span class="application">Expect</span>.
- </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">3.9
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.16.1. Установка пакета Expect
- </h3>
- <p>
- Expect для работы необходим псевдотерминал(PTY). Убедитесь,
- что PTY работают правильно в среде chroot, выполнив простой
- тест:
- </p>
- <pre class="userinput"><kbd class=
- "command">python3 -c 'from pty import spawn; spawn(["echo", "ok"])'</kbd></pre>
- <p>
- Эта команда должна вывести <code class=
- "computeroutput">ok</code>. Если вместо этого вывод содержит
- <code class="computeroutput">OSError: out of pty
- devices</code>, то среда не настроена для правильной работы
- PTY. Вам необходимо выйти из среды chroot, ещё раз прочитать
- <a class="xref" href="#ch-tools-kernfs" title=
- "7.3. Подготовка виртуальных файловых систем ядра">Раздел&nbsp;7.3,
- «Подготовка виртуальных файловых систем ядра»</a> и
- убедиться, что файловая система <code class=
- "systemitem">devpts</code> (и другие файловые системы
- виртуального ядра) смонтирована правильно. Затем повторно
- войдите в среду chroot, следуя инструкции <a class="xref"
- href="#ch-tools-chroot" title=
- "7.4. Вход в окружение Chroot">Раздел&nbsp;7.4, «Вход в
- окружение Chroot»</a>. Эту проблему необходимо решить, прежде
- чем вы продолжите, иначе наборы тестов, зависимые от Expect
- (например, наборы тестов Bash, Binutils, GCC, GDBM и,
- конечно, самого Expect), потерпят фатальный сбой, а также
- могут произойти другие незначительные сбои.
- </p>
- <p>
- Подготовьте Expect к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --with-tcl=/usr/lib \
- --enable-shared \
- --mandir=/usr/share/man \
- --with-tclinclude=/usr/include</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-tcl=/usr/lib</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр необходим для указания <span class=
- "command"><strong>configure</strong></span> где
- находится скрипт <span class=
- "command"><strong>tclConfig.sh</strong></span>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-tclinclude=/usr/include</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр явно указывает Expect, где искать
- внутренние заголовки Tcl.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make test</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-expect" name="contents-expect"></a>8.16.2.
- Содержимое пакета Expect
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">expect</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libexpect5.45.4.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6654" name="idm6654"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="expect" name="expect"></a><span class=
- "term"><span class=
- "command"><strong>expect</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Взаимодействует с другими интерактивными
- программами в соответствии со сценарием
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libexpect" name="libexpect"></a><span class=
- "term"><code class=
- "filename">libexpect-5.45.4.so</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, которые позволяют использовать
- Expect в качестве расширения Tcl или
- непосредственно из C или C++ (без Tcl).
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-dejagnu" name=
- "ch-system-dejagnu"></a>8.17. DejaGNU-1.6.3
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет <span class="application">DejaGnu</span> содержит
- фреймворк для запуска наборов тестов на инструментах GNU. Он
- написан на <span class=
- "command"><strong>expect</strong></span>, который в свою
- очередь использует <span class="application">Tcl</span>
- (командный язык инструментов).
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">6.9
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.17.1. Установка пакета DejaGNU
- </h3>
- <p>
- Разработчики рекомендуют собирать DejaGNU в отдельном
- каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте DejaGNU к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
-makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-install -v -dm755 /usr/share/doc/dejagnu-1.6.3
-install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-dejagnu" name="contents-dejagnu"></a>8.17.2.
- Содержимое пакета DejaGNU
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">dejagnu и
- runtest</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6706" name="idm6706"></a>Short Descriptions
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="dejagnu" name="dejagnu"></a><span class=
- "term"><span class=
- "command"><strong>dejagnu</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вспомогательная программа запуска команд DejaGNU
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="runtest" name="runtest"></a><span class=
- "term"><span class=
- "command"><strong>runtest</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Скрипт-обертка, который находит соответствующую
- оболочку <span class=
- "command"><strong>expect</strong></span> и
- запускает DejaGnu
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-pkgconf" name=
- "ch-system-pkgconf"></a>8.18. Pkgconf-2.1.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет pkgconf является преемником pkg-config и содержит
- инструмент, который позволяет передавать пути установки или
- пути к библиотекам для инструментов сборки на этапе настройки
- (configure) и сборки(make) пакетов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">4.6
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.18.1. Установка пакета Pkgconf
- </h3>
- <p>
- Подготовьте Pkgconf к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/pkgconf-2.1.1</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>
- <p>
- Для обеспечения совместимости с исходным Pkg-config, создайте
- две символические ссылки:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv pkgconf /usr/bin/pkg-config
-ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-pkgconf" name="contents-pkgconf"></a>8.18.2.
- Содержимое пакета Pkgconf
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">pkgconf,
- pkg-config (ссылка на pkgconf) и bomtool</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libpkgconf.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/pkgconf-2.1.1</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6760" name="idm6760"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="pkgconf" name="pkgconf"></a><span class=
- "term"><span class=
- "command"><strong>pkgconf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Возвращает метаданные указанной библиотеки или
- пакета
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bomtool" name="bomtool"></a><span class=
- "term"><span class=
- "command"><strong>bomtool</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует спецификацию программного обеспечения из
- файлов pkg-config с расширением .pc
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libpkgconf" name=
- "libpkgconf"></a><span class="term"><code class=
- "filename">libpkgconf</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит большую часть функций pkgconf, позволяя
- другим инструментам, таким как IDE и компиляторы,
- использовать его фреймворки
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-binutils" name=
- "ch-system-binutils"></a>8.19. Binutils-2.42
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Binutils содержит компоновщик, ассемблер и другие
- инструменты для работы с объектными файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">2.2 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">2.7
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.19.1. Установка пакета Binutils
- </h3>
- <p>
- Документация Binutils рекомендует выполнять компиляцию в
- отдельном каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте Binutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr \
- --sysconfdir=/etc \
- --enable-gold \
- --enable-ld=default \
- --enable-plugins \
- --enable-shared \
- --disable-werror \
- --enable-64-bit-bfd \
- --with-system-zlib \
- --enable-default-hash-style=gnu</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-gold</code></em></span>
- </dt>
- <dd>
- <p>
- Собирает компоновщик gold и устанавливает его как
- ld.gold (вместе с компоновщиком по умолчанию).
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-ld=default</code></em></span>
- </dt>
- <dd>
- <p>
- Собирает оригинальный компоновщик bfd и устанавливает
- его как ld (компоновщик по умолчанию) и как ld.bfd
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-plugins</code></em></span>
- </dt>
- <dd>
- <p>
- Включает поддержку плагинов для компоновщика.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-system-zlib</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает, что необходимо использовать установленную
- библиотеку zlib вместо сборки собственной.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make tooldir=/usr</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>tooldir=/usr</code></em></span>
- </dt>
- <dd>
- <p>
- Обычно для tooldir (каталога, в котором будут
- расположены исполняемые файлы) установлено значение
- <code class=
- "filename">$(exec_prefix)/$(target_alias)</code>.
- Например, машины x86_64 преобразуют это значение в
- <code class=
- "filename">/usr/x86_64-unknown-linux-gnu</code>.
- Поскольку это пользовательская система, то целевой
- каталог в <code class="filename">/usr</code> не
- требуется. Параметр <code class=
- "filename">$(exec_prefix)/$(target_alias)</code>
- использовался, если бы система применялась для
- кросс-компиляции (например, при компиляции пакета на
- компьютере Intel, который генерирует код, который может
- быть выполнен на компьютерах PowerPC).
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Набор тестов для Binutils в этом разделе считается
- критически важным. Ни в коем случае не пропускайте его.
- </p>
- </div>
- <p>
- Выполните тестирование:
- </p>
- <pre class="userinput"><kbd class=
- "command">make -k check</kbd></pre>
- <p>
- Чтобы получить список неудачных тестов, запустите:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep '^FAIL:' $(find -name '*.log')</kbd></pre>
- <p>
- Двенадцать тестов завершаются неудачно в наборе тестов gold,
- когда GCC собирается с параметрами <code class=
- "option">--enable-default-pie</code> и <code class=
- "option">--enable-default-ssp</code>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make tooldir=/usr install</kbd></pre>
- <p>
- Удалите бесполезные статические библиотеки:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-binutils" name=
- "contents-binutils"></a>8.19.2. Содержимое пакета Binutils
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">addr2line, ar,
- as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd,
- ld.gold, nm, objcopy, objdump, ranlib, readelf, size,
- strings и strip</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libbfd.so,
- libctf.so, libctf-nobfd.so, libgprofng.so, libopcodes.so
- и libsframe.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/ldscripts</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm6867" name="idm6867"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="addr2line" name="addr2line"></a><span class=
- "term"><span class=
- "command"><strong>addr2line</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит адреса программ в имена файлов и номера
- строк; учитывая адрес и имя исполняемого файла,
- использует отладочную информацию в исполняемом
- файле, для определения файла исходного кода и
- номера строки, ассоциированной с адресом
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ar" name="ar"></a><span class=
- "term"><span class=
- "command"><strong>ar</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создаёт, изменяет и распаковывает архивы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="as" name="as"></a><span class=
- "term"><span class=
- "command"><strong>as</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ассемблер, который собирает результат работы
- <span class="command"><strong>gcc</strong></span> в
- объектные файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="c-filt" name="c-filt"></a><span class=
- "term"><span class=
- "command"><strong>c++filt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется компоновщиком для исправления символов
- C++ и Java и предотвращения конфликтов
- перегруженных функций.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dwp" name="dwp"></a><span class=
- "term"><span class=
- "command"><strong>dwp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита для упаковки DWARF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="elfedit" name="elfedit"></a><span class=
- "term"><span class=
- "command"><strong>elfedit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет ELF заголовки в ELF файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gprof" name="gprof"></a><span class=
- "term"><span class=
- "command"><strong>gprof</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает в графическом виде информацию о
- профилировании
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gprofng" name="gprofng"></a><span class=
- "term"><span class=
- "command"><strong>gprofng</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Собирает и анализирует данные о производительности
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld" name="ld"></a><span class=
- "term"><span class=
- "command"><strong>ld</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компоновщик, который объединяет несколько объектных
- и архивных файлов в один файл, перемещая их данные
- и связывая символическими ссылками
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld.gold" name="ld.gold"></a><span class=
- "term"><span class=
- "command"><strong>ld.gold</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Урезанная версия ld, которая поддерживает только
- формат объектных файлов elf
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ld.bfd" name="ld.bfd"></a><span class=
- "term"><span class=
- "command"><strong>ld.bfd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>ld</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nm" name="nm"></a><span class=
- "term"><span class=
- "command"><strong>nm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит список символов, используемых в данном
- объектном файле
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="objcopy" name="objcopy"></a><span class=
- "term"><span class=
- "command"><strong>objcopy</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует один тип объектного файла в другой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="objdump" name="objdump"></a><span class=
- "term"><span class=
- "command"><strong>objdump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о данном объектном файле;
- можно указать параметры, определяющие, какая
- конкретно информация будет отображаться.
- Отображаемая информация полезна для программистов,
- которые работают над инструментами, используемыми
- при компиляции
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ranlib" name="ranlib"></a><span class=
- "term"><span class=
- "command"><strong>ranlib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает индекс содержимого архива и сохраняет его в
- архиве; в индексе перечислены все символы,
- определенные в перемещаемых объектных файлах,
- содержащихся в архиве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="readelf" name="readelf"></a><span class=
- "term"><span class=
- "command"><strong>readelf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о двоичных файлах типа ELF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="size" name="size"></a><span class=
- "term"><span class=
- "command"><strong>size</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает размеры секций и общий размер указанных
- объектных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="strings" name="strings"></a><span class=
- "term"><span class=
- "command"><strong>strings</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит для каждого указанного файла
- последовательности печатаемых символов, которые
- имеют по крайней мере указанную длину (по умолчанию
- четыре); для объектных файлов по умолчанию
- печатаются только строки из секций инициализации и
- загрузки, в то время как для других файлов он
- сканирует весь файл.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="strip" name="strip"></a><span class=
- "term"><span class=
- "command"><strong>strip</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет символы из объектных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libbfd" name="libbfd"></a><span class=
- "term"><code class="filename">libbfd</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека дескрипторов двоичных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libctf" name="libctf"></a><span class=
- "term"><code class="filename">libctf</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека отладки формата Compat ANSI-C Type
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libctf-nobfd" name=
- "libctf-nobfd"></a><span class="term"><code class=
- "filename">libctf-nobfd</code></span>
- </p>
- </td>
- <td>
- <p>
- Вариант libctf, не использующий функциональность
- libbfd.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgprofng" name=
- "libgprofng"></a><span class="term"><code class=
- "filename">libgprofng</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, содержащая большинство подпрограмм,
- используемых <span class=
- "command"><strong>gprofng</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libopcodes" name=
- "libopcodes"></a><span class="term"><code class=
- "filename">libopcodes</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для работы с опкодами—<span class=
- "quote">«<span class=
- "quote">читаемыми</span>»</span> версиями
- инструкций для процессора. Используется для сборки
- таких утилит как <span class=
- "command"><strong>objdump</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libsframe" name="libsframe"></a><span class=
- "term"><code class=
- "filename">libsframe</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для поддержки обратной
- онлайн-трассировки с использованием простого
- декодера разделов .sframe.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gmp" name="ch-system-gmp"></a>8.20.
- GMP-6.3.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GMP содержит математические библиотеки. Они содержат
- полезные функции для арифметики с произвольной точностью.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">54 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.20.1. Установка пакета GMP
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы выполняете сборку для 32-разрядной архитектуры x86,
- но ваш процессор, способен выполнять 64-разрядный код,
- <span class="emphasis"><em>и</em></span> вы указали в
- переменных окружения <code class="envar">CFLAGS</code>,
- скрипт configure попытается выполнить настройку для
- 64-разрядной системы и завершится ошибкой. Чтобы избежать
- этого, необходимо вызвать команду configure с приведенным
- ниже параметром
- </p>
- <pre class="userinput"><kbd class="command"><em class=
- "parameter"><code>ABI=32</code></em> ./configure ...</kbd></pre>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Настройки GMP по умолчанию собирают библиотеки,
- оптимизированные для процессора хоста. Если требуются
- библиотеки, подходящие для процессоров с меньшей
- производительностью, чем у процессора хоста, можно собрать
- общие библиотеки, добавив параметр <code class=
- "option">--host=none-linux-gnu</code> в команде
- <span class="command"><strong>configure</strong></span>.
- </p>
- </div>
- <p>
- Подготовьте GMP к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --enable-cxx \
- --disable-static \
- --docdir=/usr/share/doc/gmp-6.3.0</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-cxx</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр включает поддержку C++
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--docdir=/usr/share/doc/gmp-6.3.0</code></em></span>
- </dt>
- <dd>
- <p>
- Эта переменная указывает местоположение для
- документации.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет и сгенерируйте HTML-документацию:
- </p>
- <pre class="userinput"><kbd class="command">make
-make html</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Набор тестов для GMP в этом разделе считается критически
- важным. Ни в коем случае не пропускайте его.
- </p>
- </div>
- <p>
- Проверьте результаты:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check 2&gt;&amp;1 | tee gmp-check-log</kbd></pre>
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- Код в GMP сильно оптимизирован для процессора, на котором
- он собран. Иногда код, определяющий процессор, неверно
- определяет возможности системы, и в тестах или других
- приложениях, использующих библиотеки gmp, возникают ошибки
- с сообщением <code class="computeroutput">Illegal
- instruction</code>. В этом случае gmp следует
- переконфигурировать с параметром <code class=
- "option">--host=none-linux-gnu</code> и пересобрать.
- </p>
- </div>
- <p>
- Убедитесь, что все 199 тестов в наборе пройдены. Проверьте
- результат, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</kbd></pre>
- <p>
- Установите пакет и его документацию:
- </p>
- <pre class="userinput"><kbd class="command">make install
-make install-html</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gmp" name="contents-gmp"></a>8.20.2.
- Содержимое пакета GMP
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libgmp.so и
- libgmpxx.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/gmp-6.3.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7116" name="idm7116"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libgmp" name="libgmp"></a><span class=
- "term"><code class="filename">libgmp</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит точные математические функции
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgmpxx" name="libgmpxx"></a><span class=
- "term"><code class=
- "filename">libgmpxx</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит точные математические функции C++
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-mpfr" name="ch-system-mpfr"></a>8.21.
- MPFR-4.2.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет MPFR содержит функции для двоичных вычислений с
- плавающей запятой произвольной точности.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">44 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.21.1. Установка пакета MPFR
- </h3>
- <p>
- Подготовьте MPFR к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --enable-thread-safe \
- --docdir=/usr/share/doc/mpfr-4.2.1</kbd></pre>
- <p>
- Скомпилируйте пакет и сгенерируйте HTML-документацию:
- </p>
- <pre class="userinput"><kbd class="command">make
-make html</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Набор тестов для MPFR в этом разделе считается критически
- важным. Ни в коем случае не пропускайте его.
- </p>
- </div>
- <p>
- Выполните тестирование и убедитесь, что все 198 тестов
- пройдены:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет и документацию к нему:
- </p>
- <pre class="userinput"><kbd class="command">make install
-make install-html</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-mpfr" name="contents-mpfr"></a>8.21.2.
- Содержимое пакета MPFR
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libmpfr.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/mpfr-4.2.1</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7169" name="idm7169"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libmpfr" name="libmpfr"></a><span class=
- "term"><code class="filename">libmpfr</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит математические функции с произвольной
- точностью
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-mpc" name="ch-system-mpc"></a>8.22.
- MPC-1.3.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет MPC содержит библиотеку для арифметики комплексных
- чисел с высокой точностью и правильным округлением
- результата.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">22 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.22.1. Установка пакета MPC
- </h3>
- <p>
- Подготовьте MPC к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/mpc-1.3.1</kbd></pre>
- <p>
- Скомпилируйте пакет и сгенерируйте HTML-документацию:
- </p>
- <pre class="userinput"><kbd class="command">make
-make html</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет и документацию к нему:
- </p>
- <pre class="userinput"><kbd class="command">make install
-make install-html</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-mpc" name="contents-mpc"></a>8.22.2.
- Содержимое пакета MPC
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libmpc.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/mpc-1.3.1</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7213" name="idm7213"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libmpc" name="libmpc"></a><span class=
- "term"><code class="filename">libmpc</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит сложные математические функции
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-attr" name="ch-system-attr"></a>8.23.
- Attr-2.5.2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Attr содержит утилиты для управления расширенными
- атрибутами объектов файловой системы.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">4.2
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.23.1. Установка пакета Attr
- </h3>
- <p>
- Подготовьте Attr к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --sysconfdir=/etc \
- --docdir=/usr/share/doc/attr-2.5.2</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Тесты необходимо запускать в файловой системе, которая
- поддерживает расширенные атрибуты, например, ext2, ext3 или
- ext4. Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-attr" name="contents-attr"></a>8.23.2.
- Содержимое пакета Attr
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">attr, getfattr,
- и setfattr</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libattr.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/attr и
- /usr/share/doc/attr-2.5.2</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7259" name="idm7259"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="attr" name="attr"></a><span class=
- "term"><span class=
- "command"><strong>attr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Расширяет атрибуты объектов файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getfattr" name="getfattr"></a><span class=
- "term"><span class=
- "command"><strong>getfattr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Получает расширенные атрибуты объектов файловой
- системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setfattr" name="setfattr"></a><span class=
- "term"><span class=
- "command"><strong>setfattr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает расширенные атрибуты объектов
- файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libattr" name="libattr"></a><span class=
- "term"><code class="filename">libattr</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит библиотечные функции для управления
- расширенными атрибутами.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-acl" name="ch-system-acl"></a>8.24.
- Acl-2.3.2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Acl содержит утилиты для администрирования списков
- контроля доступа, которые используются для определения
- расширенных дискреционных прав доступа к файлам и каталогам.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">6.3
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.24.1. Установка пакета Acl
- </h3>
- <p>
- Подготовьте Acl к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/acl-2.3.2</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Тесты Acl необходимо запускать в файловой системе,
- поддерживающей списки контроля доступа, после сборки пакета
- <span class="application">Coreutils</span> с использованием
- библиотек Acl. По желанию вернитесь к этому пакету и
- запустите <span class="command"><strong>make
- check</strong></span> после того, как будет собран пакет
- <span class="application">Coreutils</span>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-acl" name="contents-acl"></a>8.24.2.
- Содержимое пакета Acl
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">chacl, getfacl,
- и setfacl</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libacl.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/acl и
- /usr/share/doc/acl-2.3.2</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7327" name="idm7327"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="chacl" name="chacl"></a><span class=
- "term"><span class=
- "command"><strong>chacl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет список контроля доступа файла или каталога
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getfacl" name="getfacl"></a><span class=
- "term"><span class=
- "command"><strong>getfacl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Получает списки контроля доступа файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setfacl" name="setfacl"></a><span class=
- "term"><span class=
- "command"><strong>setfacl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает списки контроля доступа к файлам
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libacl" name="libacl"></a><span class=
- "term"><code class="filename">libacl</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит библиотечные функции для управления
- списками контроля доступа.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libcap" name="ch-system-libcap"></a>8.25.
- Libcap-2.69
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Libcap реализует интерфейсы пользовательского
- пространства для возможностей POSIX 1003.1e, доступных в
- ядрах Linux. Эти возможности разделяют полномочия
- суперпользователя root на набор отдельных привилегий.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">2.9
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.25.1. Установка пакета Libcap
- </h3>
- <p>
- Запретите установку статических библиотек:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/install -m.*STA/d' libcap/Makefile</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make prefix=/usr lib=lib</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение опции make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>lib=lib</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр устанавливает библиотеки в каталог
- <code class="filename">/usr/lib</code>, а не
- <code class="filename">/usr/lib64</code> на x86_64. На
- x86 это никак не влияет.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make test</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make prefix=/usr lib=lib install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-libcap" name="contents-libcap"></a>8.25.2.
- Содержимое пакета Libcap
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">capsh, getcap,
- getpcaps и setcap</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libcap.so и
- libpsx.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7401" name="idm7401"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="capsh" name="capsh"></a><span class=
- "term"><span class=
- "command"><strong>capsh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обёртка к оболочке для исследования и ограничения
- поддержки возможностей Linux
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getcap" name="getcap"></a><span class=
- "term"><span class=
- "command"><strong>getcap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет возможности файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getpcaps" name="getpcaps"></a><span class=
- "term"><span class=
- "command"><strong>getpcaps</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает возможности запрашиваемого процесса
- (процессов)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setcap" name="setcap"></a><span class=
- "term"><span class=
- "command"><strong>setcap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает возможности файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libcap" name="libcap"></a><span class=
- "term"><code class="filename">libcap</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции для управления возможностями POSIX
- 1003.1e.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libpsx" name="libpsx"></a><span class=
- "term"><code class="filename">libpsx</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции для поддержки семантики POSIX для
- системных вызовов, связанных с библиотекой pthread
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libxcrypt" name=
- "ch-system-libxcrypt"></a>8.26. Libxcrypt-4.4.36
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Libxcrypt содержит современную библиотеку для
- одностороннего хэширования паролей.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">15 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.26.1. Установка пакета Libxcrypt
- </h3>
- <p>
- Подготовьте Libxcrypt к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --enable-hashes=strong,glibc \
- --enable-obsolete-api=no \
- --disable-static \
- --disable-failure-tokens</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-hashes=strong,glibc</code></em></span>
- </dt>
- <dd>
- <p>
- Создает хэши, используя надежные алгоритмы хэширования,
- рекомендуемые для безопасности, и алгоритмы
- хэширования, предоставляемые традиционной библиотекой
- Glibc <code class="systemitem">libcrypt</code> для
- совместимости.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-obsolete-api=no</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает устаревшие функции API. Они не нужны для
- современной системы Linux, собранной из исходного кода.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-failure-tokens</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает признак токена сбоя. Он необходим для
- совместимости с традиционными хэш-библиотеками
- некоторых платформ, но система Linux, основанная на
- Glibc, в нем не нуждается.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- С помощью приведенных выше инструкций были отключены
- устаревшие функции API, поскольку ни один пакет,
- установленный путем компиляции из исходных кодов, не будет
- связываться с ними во время выполнения. Однако известные
- двоичные приложения, которые используют эти функции,
- требуют ABI версии 1. Если вам необходим этот функционал
- для какого-либо приложения, предоставляемого только в
- бинарном виде, или для совместимости с LSB, соберите пакет
- заново с помощью следующих команд:
- </p>
- <pre class="userinput"><kbd class="command">make distclean
-./configure --prefix=/usr \
- --enable-hashes=strong,glibc \
- --enable-obsolete-api=glibc \
- --disable-static \
- --disable-failure-tokens
-make
-cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib</kbd></pre>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-libxcrypt" name=
- "contents-libxcrypt"></a>8.26.2. Содержимое пакета Libxcrypt
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libcrypt.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7500" name="idm7500"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libcrypt" name="libcrypt"></a><span class=
- "term"><code class=
- "filename">libcrypt</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции для хэширования паролей
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-shadow" name="ch-system-shadow"></a>8.27.
- Shadow-4.14.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Shadow содержит программы для безопасной обработки
- паролей.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">49 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.27.1. Установка пакета Shadow
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы хотите принудительно использовать надежные пароли,
- обратитесь к инструкции <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/cracklib.html">
- https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/cracklib.html</a>
- для установки CrackLib перед сборкой. Затем добавьте
- параметр <em class=
- "parameter"><code>--with-libcrack</code></em> в приведенную
- ниже команду <span class=
- "command"><strong>configure</strong></span>.
- </p>
- </div>
- <p>
- Отключите установку <span class=
- "command"><strong>groups</strong></span> и ее справочных
- страниц, так как Coreutils предоставляет версию лучше. Кроме
- того, запретите установку страниц руководств, так как они
- были установлены в <a class="xref" href=
- "#ch-system-man-pages" title=
- "8.3. Man-pages-6.06">Раздел&nbsp;8.3, «Man-pages-6.06»</a>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's/groups$(EXEEXT) //' src/Makefile.in
-find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
-find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;</kbd></pre>
- <p>
- <a id="shadow-login_defs" name="shadow-login_defs"></a>Вместо
- используемого по умолчанию метода <span class=
- "emphasis"><em>crypt</em></span>, используйте более
- безопасный метод шифрования паролей <span class=
- "emphasis"><em>YESCRYPT</em></span>, который также позволяет
- использовать пароли длиннее 8 символов. Также необходимо
- изменить устаревшее местоположение для почтовых ящиков
- пользователей <code class="filename">/var/spool/mail</code>,
- которое Shadow использует по умолчанию, на используемое в
- настоящее время <code class="filename">/var/mail</code>. И
- удалите <code class="filename">/bin</code> и <code class=
- "filename">/sbin</code> из <code class="envar">PATH</code>,
- поскольку они являются просто символическими ссылками на их
- аналоги в <code class="filename">/usr</code>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы по какой-либо причине хотите включить <code class=
- "filename">/bin</code> и/или <code class=
- "filename">/sbin</code> в <code class="envar">PATH</code>,
- измените <code class="envar">PATH</code> в файле
- <code class="filename">.bashrc</code> после сборки LFS.
- </p>
- </div>
- <pre class="userinput"><kbd class=
- "command">sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD YESCRYPT:' \
- -e 's:/var/spool/mail:/var/mail:' \
- -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
- -i etc/login.defs</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если вы решили собрать Shadow с поддержкой Cracklib,
- выполните эту команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs</kbd></pre>
- </div>
- <p>
- Подготовьте Shadow к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">touch /usr/bin/passwd
-./configure --sysconfdir=/etc \
- --disable-static \
- --with-{b,yes}crypt \
- --without-libbsd \
- --with-group-name-max-length=32</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров конфигурации:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><span class="command"><strong>touch
- /usr/bin/passwd</strong></span></span>
- </dt>
- <dd>
- <p>
- Файл <code class="filename">/usr/bin/passwd</code>
- должен существовать, потому что его местоположение
- жестко задано в некоторых программах; если он не
- существует, скрипт установки создаст его не в том
- месте.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-{b,yes}crypt</code></em></span>
- </dt>
- <dd>
- <p>
- Оболочка расширяет это значение до двух параметров:
- <em class="parameter"><code>--with-bcrypt</code></em> и
- <em class=
- "parameter"><code>--with-yescrypt</code></em>. Они
- позволяют Shadow использовать алгоритмы Bcrypt и
- Yescrypt, реализованные в <span class=
- "application">Libxcrypt</span>, для хеширования
- паролей. Эти алгоритмы более безопасны (в частности,
- гораздо более устойчивы к атакам с использованием
- графических процессоров), чем традиционные алгоритмы
- SHA.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-group-name-max-length=32</code></em></span>
- </dt>
- <dd>
- <p>
- Максимально допустимая длина имени пользователя
- составляет 32 символа. Сделайте такую же длину для
- названия группы.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-libbsd</code></em></span>
- </dt>
- <dd>
- <p>
- Не используйте функцию readpassphrase из иблиотеки
- libbsd, которой нет в LFS. Вместо этого используйте
- внутреннюю копию.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- С этим пакетом не поставляется набор тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make exec_prefix=/usr install
-make -C man install-man</kbd></pre>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-shadow" name="conf-shadow"></a>8.27.2. Настройка
- Shadow
- </h3>
- <p>
- Этот пакет содержит утилиты для добавления, изменения и
- удаления пользователей и групп; установки и изменения их
- паролей; и выполнения других задач администрирования. Полное
- объяснение того, что означает <span class=
- "emphasis"><em>password shadowing</em></span>, см. в файле
- doc/HOWTO в дереве распакованных исходных текстов. При
- использовании Shadow имейте в виду, что программы, которым
- необходимо проверять пароли (дисплейные менеджеры,
- FTP-программы, демоны pop3 и т.д.), должны быть совместимы с
- Shadow. То есть они должны уметь работать с теневыми
- паролями.
- </p>
- <p>
- Чтобы включить поддержку теневых паролей, выполните следующую
- команду::
- </p>
- <pre class="userinput"><kbd class="command">pwconv</kbd></pre>
- <p>
- Чтобы включить использование теневых паролей для групп,
- запустите:
- </p>
- <pre class="userinput"><kbd class="command">grpconv</kbd></pre>
- <p>
- Конфигурация Shadow по умолчанию для утилиты <span class=
- "command"><strong>useradd</strong></span> имеет несколько
- особенностей, требующих пояснения. Во-первых, по умолчанию
- утилита <span class="command"><strong>useradd</strong></span>
- создает пользователя и группу с тем же названием, что и имя
- пользователя. По умолчанию, идентификатора пользователя (UID)
- и идентификатора группы (GID) начинаются с 1000. Это
- означает, что если вы не передадите дополнительные параметры
- в <span class="command"><strong>useradd</strong></span>,
- каждый пользователь будет членом уникальной группы в системе.
- Если такое поведение нежелательно, вам нужно передать один из
- параметров <em class="parameter"><code>-g</code></em> или
- <em class="parameter"><code>-N</code></em> в <span class=
- "command"><strong>useradd</strong></span> или изменить
- настройку <em class=
- "parameter"><code>USERGROUPS_ENAB</code></em> в файле
- <code class="filename">/etc/login.defs</code>. Смотрите
- справочную страницу <a class="ulink" href=
- "https://man.archlinux.org/man/useradd.8">useradd(8)</a> для
- получения дополнительной информации.
- </p>
- <p>
- Во-вторых, чтобы изменить параметры по умолчанию, необходимо
- создать файл <code class=
- "filename">/etc/default/useradd</code> и настроить его в
- соответствии с вашими потребностями. Создайте его:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -p /etc/default
-useradd -D --gid 999</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Пояснения к параметрам <code class=
- "filename">/etc/default/useradd</code></strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>GROUP=999</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр задает начальный номер группы,
- используемых в файле <code class=
- "filename">/etc/group</code>. Значение 999 берется из
- приведенного выше параметра <em class=
- "parameter"><code>--gid</code></em>. Вы можете
- установить любое значение. Обратите внимание, что
- <span class="command"><strong>useradd</strong></span>
- никогда не будет повторно использовать UID или GID.
- Если номер, указанный в этом параметре, уже
- используется будет выбран следующий доступный номер.
- Также обратите внимание, что если в вашей системе нет
- группы с идентификатором, равным этому номеру, при
- первом использовании <span class=
- "command"><strong>useradd</strong></span> без параметра
- <em class="parameter"><code>-g</code></em> — вы
- получите следующее сообщение об ошибке: <code class=
- "computeroutput">useradd: unknown GID 999</code>, даже
- если учетная запись была создана правильно. Поэтому мы
- создали группу <code class="systemitem">users</code> с
- этим идентификатором в <a class="xref" href=
- "#ch-tools-createfiles" title=
- "7.6. Создание основных файлов и символических ссылок">Раздел&nbsp;7.6,
- «Создание основных файлов и символических ссылок»</a>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>CREATE_MAIL_SPOOL=yes</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр заставит утилиту <span class=
- "command"><strong>useradd</strong></span> создавать
- файл почтового ящика для каждого нового пользователя.
- <span class="command"><strong>useradd</strong></span>
- сделает этот файл принадлежащим группе <code class=
- "systemitem">mail</code> с правами доступа 0660. Если
- вы предпочитаете, не создавать эти файлы, выполните
- следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/MAIL/s/yes/no/' /etc/default/useradd</kbd></pre>
- </dd>
- </dl>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.27.3. Установка пароля пользователя root
- </h3>
- <p>
- Придумайте пароль для <span class=
- "emphasis"><em>root</em></span> и установите командой:
- </p>
- <pre class="userinput"><kbd class=
- "command">passwd root</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-shadow" name="contents-shadow"></a>8.27.4.
- Содержимое пакета Shadow
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">chage, chfn,
- chgpasswd, chpasswd, chsh, expiry, faillog, getsubids,
- gpasswd, groupadd, groupdel, groupmems, groupmod, grpck,
- grpconv, grpunconv, login, logoutd, newgidmap, newgrp,
- newuidmap, newusers, nologin, passwd, pwck, pwconv,
- pwunconv, sg (ссылка на newgrp), su, useradd, userdel,
- usermod, vigr (ссылка на vipw) и vipw</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libsubid.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/default и
- /usr/include/shadow</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm7661" name="idm7661"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="chage" name="chage"></a><span class=
- "term"><span class=
- "command"><strong>chage</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения максимального количества
- дней между обязательными сменами пароля
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chfn" name="chfn"></a><span class=
- "term"><span class=
- "command"><strong>chfn</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения полного имени
- пользователя и другой информации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chgpasswd" name="chgpasswd"></a><span class=
- "term"><span class=
- "command"><strong>chgpasswd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для обновления паролей групп в
- пакетном режиме.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chpasswd" name="chpasswd"></a><span class=
- "term"><span class=
- "command"><strong>chpasswd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для обновления паролей пользователей в
- пакетном режиме.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chsh" name="chsh"></a><span class=
- "term"><span class=
- "command"><strong>chsh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения оболочки входа для
- пользователя.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="expiry" name="expiry"></a><span class=
- "term"><span class=
- "command"><strong>expiry</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет и применяет текущую политику истечения
- срока действия пароля
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="faillog" name="faillog"></a><span class=
- "term"><span class=
- "command"><strong>faillog</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для проверки журнала неудачных попыток
- входа в систему, для установки максимального
- количества неудачных попыток до блокировки учетной
- записи и для сброса счетчика неудачных попыток.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getsubids" name="getsubids"></a><span class=
- "term"><span class=
- "command"><strong>getsubids</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для перечисления подчиненных
- диапазонов идентификаторов для пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gpasswd" name="gpasswd"></a><span class=
- "term"><span class=
- "command"><strong>gpasswd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для добавления и удаления
- пользователей и администраторов в группы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groupadd" name="groupadd"></a><span class=
- "term"><span class=
- "command"><strong>groupadd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает группу с указанным именем
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groupdel" name="groupdel"></a><span class=
- "term"><span class=
- "command"><strong>groupdel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет группу с указанным именем
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groupmems" name="groupmems"></a><span class=
- "term"><span class=
- "command"><strong>groupmems</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет пользователю управлять своим собственным
- списком членов группы без привилегий
- суперпользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groupmod" name="groupmod"></a><span class=
- "term"><span class=
- "command"><strong>groupmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения имени группы или GID
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grpck" name="grpck"></a><span class=
- "term"><span class=
- "command"><strong>grpck</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет целостность файлов групп <code class=
- "filename">/etc/group</code> и <code class=
- "filename">/etc/gshadow</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grpconv" name="grpconv"></a><span class=
- "term"><span class=
- "command"><strong>grpconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает или изменяет файл теневых групп, используя
- для этого обычный файл групп
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grpunconv" name="grpunconv"></a><span class=
- "term"><span class=
- "command"><strong>grpunconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет <code class="filename">/etc/group</code>
- из <code class="filename">/etc/gshadow</code>, а
- затем удаляет последний
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="login" name="login"></a><span class=
- "term"><span class=
- "command"><strong>login</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется системой для того, чтобы пользователь
- мог войти в систему
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="logoutd" name="logoutd"></a><span class=
- "term"><span class=
- "command"><strong>logoutd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это демон, используемый для обеспечения соблюдения
- ограничений на время входа в систему и порты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="newgidmap" name="newgidmap"></a><span class=
- "term"><span class=
- "command"><strong>newgidmap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для сопоставления gid пространства
- имен пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="newgrp" name="newgrp"></a><span class=
- "term"><span class=
- "command"><strong>newgrp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения GID во время сеанса
- входа в систему
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="newuidmap" name="newuidmap"></a><span class=
- "term"><span class=
- "command"><strong>newuidmap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для сопоставления uid пространства
- имен пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="newusers" name="newusers"></a><span class=
- "term"><span class=
- "command"><strong>newusers</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для создания или изменения
- последовательности учетных записей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nologin" name="nologin"></a><span class=
- "term"><span class=
- "command"><strong>nologin</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает сообщение о том, что учетная запись
- недоступна; она предназначена для использования в
- качестве оболочки по умолчанию для отключенных
- учетных записей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="passwd" name="passwd"></a><span class=
- "term"><span class=
- "command"><strong>passwd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения пароля для учетной
- записи пользователя или группы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pwck" name="pwck"></a><span class=
- "term"><span class=
- "command"><strong>pwck</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет целостность файлов паролей <code class=
- "filename">/etc/passwd</code> и <code class=
- "filename">/etc/shadow</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pwconv" name="pwconv"></a><span class=
- "term"><span class=
- "command"><strong>pwconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает или изменяет файл теневых паролей,
- используя для этого обычный файл паролей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pwunconv" name="pwunconv"></a><span class=
- "term"><span class=
- "command"><strong>pwunconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет <code class="filename">/etc/passwd</code>
- из <code class="filename">/etc/shadow</code> а
- затем удаляет последний
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sg" name="sg"></a><span class=
- "term"><span class=
- "command"><strong>sg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет указанную команду в случае, если у
- пользователя идентификатор группы GID совпадает с
- идентификатором указанной группы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="su" name="su"></a><span class=
- "term"><span class=
- "command"><strong>su</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает оболочку с заменой идентификаторов
- пользователя и группы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="useradd" name="useradd"></a><span class=
- "term"><span class=
- "command"><strong>useradd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает нового пользователя с указанным именем,
- либо изменяет информацию, задаваемую по умолчанию
- для нового пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="userdel" name="userdel"></a><span class=
- "term"><span class=
- "command"><strong>userdel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет учетную запись указанного пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="usermod" name="usermod"></a><span class=
- "term"><span class=
- "command"><strong>usermod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для изменения имени пользователя,
- идентификатора пользователя (UID), оболочки,
- группы, домашнего каталога и т.д.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vigr" name="vigr"></a><span class=
- "term"><span class=
- "command"><strong>vigr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Редактирует файлы <code class=
- "filename">/etc/group</code> или <code class=
- "filename">/etc/gshadow</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vipw" name="vipw"></a><span class=
- "term"><span class=
- "command"><strong>vipw</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Редактирует файлы <code class=
- "filename">/etc/passwd</code> или <code class=
- "filename">/etc/shadow</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libsubid" name="libsubid"></a><span class=
- "term"><code class=
- "filename">libsubid</code></span>
- </p>
- </td>
- <td>
- <p>
- библиотека для обработки подчиненных диапазонов
- идентификаторов пользователей и групп
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gcc" name="ch-system-gcc"></a>8.28.
- GCC-13.2.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GCC содержит коллекцию компиляторов GNU, которая
- включает компиляторы C и C++.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">42 SBU (с
- тестами)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">5.5
- GB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.28.1. Установка пакета GCC
- </h3>
- <p>
- При сборке на x86_64 измените имя каталога по умолчанию для
- 64-битных библиотек на <span class="quote">«<span class=
- "quote">lib</span>»</span>:
- </p>
- <pre class="userinput"><kbd class="command">case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
-esac</kbd></pre>
- <p>
- Документация GCC рекомендует собирать GCC в отдельном
- каталоге:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте GCC к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr \
- LD=ld \
- --enable-languages=c,c++ \
- --enable-default-pie \
- --enable-default-ssp \
- --disable-multilib \
- --disable-bootstrap \
- --disable-fixincludes \
- --with-system-zlib</kbd></pre>
- <p>
- GCC поддерживает семь различных языков программирования, но
- предварительные условия для большинства из них еще не
- выполнены. См. страницу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/gcc.html">
- BLFS Book GCC</a> для получения инструкций о том, как собрать
- все языки, поддерживаемые GCC
- </p>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>LD=ld</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает скрипту configure использовать
- ld, установленный программой Binutils, собранной ранее
- в этой главе, а не кросс версию, которая использовалась
- бы в противном случае.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-fixincludes</code></em></span>
- </dt>
- <dd>
- <p>
- По умолчанию во время установки GCC некоторые системные
- заголовки будут <span class="quote">«<span class=
- "quote">исправлены</span>»</span> для использования с
- GCC. Это не обязательно для современной системы Linux и
- потенциально опасно, если пакет будет переустановлен
- после установки GCC. Этот параметр не позволяет GCC
- <span class="quote">«<span class=
- "quote">исправлять</span>»</span> заголовки.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-system-zlib</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает GCC ссылаться на установленную
- в системе копию библиотеки Zlib, а не на собственную
- внутреннюю копию.
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3><a id="pie-ssp-info" name="pie-ssp-info"></a>
- <p>
- PIE (позиционно-независимые исполняемые файлы) — это
- двоичные программы, которые можно загружать в любое место
- памяти. Без PIE функция безопасности под названием ASLR
- (рандомизация размещения адресного пространства) может
- применяться к общим библиотекам, но не к самим исполняемым
- файлам. Включение PIE позволяет использовать ASLR для
- исполняемых файлов в дополнение к общим библиотекам и
- смягчает некоторые атаки, основанные на фиксированных
- адресах конфиденциального кода или данных в исполняемых
- файлах.
- </p>
- <p>
- SSP (Stack Smashing Protection - защита от разрушения
- стека) — это метод, гарантирующий, что стек параметров не
- будет поврежден. Повреждение стека может, например,
- изменить адрес возврата подпрограммы, тем самым передав
- управление какому-то опасному коду (существующему в
- программе или общих библиотеках или каким-то образом
- внедренному злоумышленником).
- </p>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- В этом разделе набор тестов для GCC считается важным, но
- занимает много времени. Начинающим сборщикам не
- рекомендуется пропускать его. Время выполнения тестов можно
- значительно сократить, добавив -jx в приведенную ниже
- команду <span class="command"><strong>make -k
- check</strong></span>, где x - количество ядер процессора в
- вашей системе.
- </p>
- </div>
- <p>
- Известно, что один набор тестов GCC переполняет стек по
- умолчанию, поэтому увеличьте размер стека перед запуском
- тестов:
- </p>
- <pre class="userinput"><kbd class=
- "command">ulimit -s 32768</kbd></pre>
- <p>
- Выполните тестирование под непривилегированным пользователем,
- но не останавливайтесь на ошибках:
- </p>
- <pre class="userinput"><kbd class="command">chown -R tester .
-su tester -c "PATH=$PATH make -k check"</kbd></pre>
- <p>
- Чтобы получить сводку результатов набора тестов, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">../contrib/test_summary</kbd></pre>
- <p>
- Чтобы отфильтровать только итоговую сводку, передайте вывод
- через pipe <strong class="userinput"><code>grep -A7
- Summ</code></strong>.
- </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>
- и <a class="ulink" href=
- "https://gcc.gnu.org/ml/gcc-testresults/">https://gcc.gnu.org/ml/gcc-testresults/</a>.
- </p>
- <p>
- Известно, что восемь тестов gcc (из более чем 185 000):
- <code class="filename">pr56837.c</code> и семь тестов из
- каталога <code class="filename">analyzer</code> завершились
- неудачно. Также провалился один тест libstdc++ (из более чем
- 15 000) — это <code class="filename">copy.cc</code>.
- Известно, что для g++ 21 тест (из примерно 250 000), 14
- тестов <span class="quote">«<span class=
- "quote">AddressSanitizer*</span>»</span> и 7 тестов
- <code class="filename">interception-malloc-test-1.C</code>
- завершились неудачно. Кроме того, несколько тестов из
- каталога <code class="filename">vect</code> завершаются
- неудачно, если оборудование не поддерживает AVX.
- </p>
- <p>
- Не всегда удается избежать неожиданных сбоев. Разработчики
- GCC обычно знают об этих проблемах, но еще не решили их. Если
- результаты теста не сильно отличаются от результатов по
- указанному выше URL-адресу, можно продолжать.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Каталог сборки GCC теперь принадлежит пользователю
- <code class="systemitem">tester</code>, и владелец каталога
- заголовочных файлов (и его содержимого) указан неверно.
- Измените владельца на пользователя и группу <code class=
- "systemitem">root</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">chown -v -R root:root \
- /usr/lib/gcc/$(gcc -dumpmachine)/13.2.0/include{,-fixed}</kbd></pre>
- <p>
- Создайте символическую ссылку, требуемую <a class="ulink"
- href=
- "https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s09.html">
- FHS</a> по "историческим" причинам.
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -svr /usr/bin/cpp /usr/lib</kbd></pre>
- <p>
- Многие пакеты используют имя <span class=
- "command"><strong>cc</strong></span> для вызова компилятора
- языка Си. Мы уже создали <span class=
- "command"><strong>cc</strong></span> как символическую ссылку
- в <a class="xref" href="#ch-tools-gcc-pass2" title=
- "6.18. GCC-13.2.0 - Проход 2">GCC-Проход 2</a>, теперь
- создайте символическую ссылку на его справочную страницу:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv gcc.1 /usr/share/man/man1/cc.1</kbd></pre>
- <p>
- Добавьте символическую ссылку совместимости, чтобы включить
- сборку программ с оптимизацией времени компоновки (LTO):
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/13.2.0/liblto_plugin.so \
- /usr/lib/bfd-plugins/</kbd></pre>
- <p>
- Теперь, когда наш окончательный набор инструментов готов,
- важно еще раз убедиться, что компиляция и компоновка будут
- работать так, как ожидалось. Мы сделаем это, выполнив
- проверку работоспособности:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo 'int main(){}' &gt; dummy.c
-cc dummy.c -v -Wl,--verbose &amp;&gt; dummy.log
-readelf -l a.out | grep ': /lib'</kbd></pre>
- <p>
- Ошибок быть не должно, и вывод последней команды будет (с
- учетом платформо-зависимых различий в имени динамического
- компоновщика):
- </p>
- <pre class="screen"><code class=
- "computeroutput">[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</code></pre>
- <p>
- Теперь убедитесь, что мы настроили использование правильных
- стартовых файлов:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log</kbd></pre>
- <p>
- Вывод последней команды должен быть:
- </p>
- <pre class="screen"><code class=
- "computeroutput">/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/Scrt1.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crtn.o succeeded</code></pre>
- <p>
- В зависимости от архитектуры вашего компьютера вышеуказанные
- параметры могут незначительно отличаться. Разница будет
- заключаться в имени каталога после <code class=
- "filename">/usr/lib/gcc</code>. Здесь важно обратить внимание
- на то, что <span class="command"><strong>gcc</strong></span>
- нашел все три файла <code class="filename">crt*.o</code> в
- каталоге <code class="filename">/usr/lib</code>.
- </p>
- <p>
- Убедитесь, что компилятор ищет правильные заголовочные файлы:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep -B4 '^ /usr/include' dummy.log</kbd></pre>
- <p>
- Эта команда должна вернуть следующий вывод:
- </p>
- <pre class="screen"><code class=
- "computeroutput">#include &lt;...&gt; search starts here:
- /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include
- /usr/local/include
- /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include-fixed
- /usr/include</code></pre>
- <p>
- Опять же, имя каталога может отличаться от указанного выше, в
- зависимости от архитектуры вашей системы.
- </p>
- <p>
- Затем убедитесь, что новый компоновщик использует правильные
- пути поиска:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</kbd></pre>
- <p>
- Ссылки на пути, содержащие компоненты с '-linux-gnu', следует
- игнорировать, но в противном случае вывод последней команды
- должен быть таким:
- </p>
- <pre class="screen"><code class=
- "computeroutput">SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")
-SEARCH_DIR("/usr/local/lib64")
-SEARCH_DIR("/lib64")
-SEARCH_DIR("/usr/lib64")
-SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");</code></pre>
- <p>
- 32-разрядная система может использовать несколько других
- каталогов. Например, вот вывод с компьютера i686:
- </p>
- <pre class="screen"><code class=
- "computeroutput">SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
-SEARCH_DIR("/usr/local/lib32")
-SEARCH_DIR("/lib32")
-SEARCH_DIR("/usr/lib32")
-SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
-SEARCH_DIR("/usr/local/lib")
-SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib");</code></pre>
- <p>
- Затем убедитесь, что мы используем правильную libc:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep "/lib.*/libc.so.6 " dummy.log</kbd></pre>
- <p>
- Вывод последней команды должен быть:
- </p>
- <pre class="screen"><code class=
- "computeroutput">attempt to open /usr/lib/libc.so.6 succeeded</code></pre>
- <p>
- Убедитесь, что GCC использует правильный динамический
- компоновщик:
- </p>
- <pre class="userinput"><kbd class=
- "command">grep found dummy.log</kbd></pre>
- <p>
- Вывод последней команды должен быть (с учетом различий в
- имени динамического компоновщика, зависящих от платформы):
- </p>
- <pre class="screen"><code class=
- "computeroutput">found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</code></pre>
- <p>
- Если вывод выглядит не так, как показано выше, или вообще не
- получен, значит, где-то серьезная ошибка. Изучите и повторите
- шаги, чтобы выяснить, в чем проблема, и исправьте ее. Любые
- проблемы должны быть решены, прежде чем вы продолжите
- процесс.
- </p>
- <p>
- Как только все заработает правильно, удалите тестовые файлы:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -v dummy.c a.out dummy.log</kbd></pre>
- <p>
- Наконец, переместите файл:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv /usr/share/gdb/auto-load/usr/lib
-mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gcc" name="contents-gcc"></a>8.28.2.
- Содержимое пакета GCC
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">c++, cc (link
- to gcc), cpp, g++, gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov,
- gcov-dump, gcov-tool, и lto-dump</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libasan.{a,so}, libatomic.{a,so}, libcc1.so,
- libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a,
- libgomp.{a,so}, libhwasan.{a,so}, libitm.{a,so},
- liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so},
- libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so},
- libstdc++exp.a, libstdc++fs.a, libsupc++.a,
- libtsan.{a,so} и libubsan.{a,so}</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/c++, /usr/lib/gcc,
- /usr/libexec/gcc и /usr/share/gcc-13.2.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8081" name="idm8081"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="c" name="c"></a><span class=
- "term"><span class=
- "command"><strong>c++</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор С++
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cc" name="cc"></a><span class=
- "term"><span class=
- "command"><strong>cc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор C
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cpp" name="cpp"></a><span class=
- "term"><span class=
- "command"><strong>cpp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Препроцессор C; он используется компилятором для
- расширения инструкций #include, #define и подобные
- директивы в исходных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="g" name="g"></a><span class=
- "term"><span class=
- "command"><strong>g++</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор C++
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcc" name="gcc"></a><span class=
- "term"><span class=
- "command"><strong>gcc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор C
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcc-ar" name="gcc-ar"></a><span class=
- "term"><span class=
- "command"><strong>gcc-ar</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обертка над <span class=
- "command"><strong>ar</strong></span>, добавляющая
- плагин в командную строку. Эта программа
- используется только для добавления "оптимизации
- времени компоновки" и бесполезна с параметрами
- сборки по умолчанию.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcc-nm" name="gcc-nm"></a><span class=
- "term"><span class=
- "command"><strong>gcc-nm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обертка над <span class=
- "command"><strong>nm</strong></span>, добавляющая
- плагин в командную строку. Эта программа
- используется только для добавления "оптимизации
- времени компоновки" и бесполезна с параметрами
- сборки по умолчанию.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcc-ranlib" name=
- "gcc-ranlib"></a><span class="term"><span class=
- "command"><strong>gcc-ranlib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обертка над <span class=
- "command"><strong>ranlib</strong></span>,
- добавляющая плагин в командную строку. Эта
- программа используется только для добавления
- "оптимизации времени компоновки" и бесполезна с
- параметрами сборки по умолчанию.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcov" name="gcov"></a><span class=
- "term"><span class=
- "command"><strong>gcov</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент тестирования; он используется для
- анализа программ, чтобы определить, где оптимизация
- будет иметь наибольший эффект.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcov-dump" name="gcov-dump"></a><span class=
- "term"><span class=
- "command"><strong>gcov-dump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Автономный инструмент для дампа профилей gcda and
- gcno
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gcov-tool" name="gcov-tool"></a><span class=
- "term"><span class=
- "command"><strong>gcov-tool</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Автономный инструмент обработки профиля gcda
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lto-dump" name="lto-dump"></a><span class=
- "term"><span class=
- "command"><strong>lto-dump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для создания дампа объектных файлов,
- созданных GCC с включенным LTO.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libasan" name="libasan"></a><span class=
- "term"><code class="filename">libasan</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека времени выполнения Address Sanitizer
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libatomic" name="libatomic"></a><span class=
- "term"><code class=
- "filename">libatomic</code></span>
- </p>
- </td>
- <td>
- <p>
- Встроенная библиотека времени выполнения GCC atomic
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libcc1" name="libcc1"></a><span class=
- "term"><code class="filename">libcc1</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, которая позволяет GDB использовать GCC
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgcc" name="libgcc"></a><span class=
- "term"><code class="filename">libgcc</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит средства поддержки времени исполнения для
- <span class="command"><strong>gcc</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgcov" name="libgcov"></a><span class=
- "term"><code class="filename">libgcov</code></span>
- </p>
- </td>
- <td>
- <p>
- Эта библиотека компонуется с программой, когда в
- GCC включено профилирование
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgomp" name="libgomp"></a><span class=
- "term"><code class="filename">libgomp</code></span>
- </p>
- </td>
- <td>
- <p>
- GNU реализация интерфейса OpenMP API
- мультиплатформенного параллельного программирования
- для языков C/C++ и Fortran с общим доступом к
- памяти
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libhwasan" name="libhwasan"></a><span class=
- "term"><code class=
- "filename">libhwasan</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека времени выполнения Hardware-Assisted
- Address Sanitizer (аппаратной очистки адресов)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libitm" name="libitm"></a><span class=
- "term"><code class="filename">libitm</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека транзакционной памяти GNU
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="liblsan" name="liblsan"></a><span class=
- "term"><code class="filename">liblsan</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека времени выполнения Leak Sanitizer
- (средств защиты от утечек)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="liblto_plugin" name=
- "liblto_plugin"></a><span class="term"><code class=
- "filename">liblto_plugin</code></span>
- </p>
- </td>
- <td>
- <p>
- Плагин GCC LTO позволяет Binutils обрабатывать
- объектные файлы, созданные GCC с включенным LTO.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libquadmath" name=
- "libquadmath"></a><span class="term"><code class=
- "filename">libquadmath</code></span>
- </p>
- </td>
- <td>
- <p>
- API математической библиотеки GCC Quad Precision
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libssp" name="libssp"></a><span class=
- "term"><code class="filename">libssp</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы, поддерживающие
- функциональность защиты стека GCC. Обычно они не
- используются, потому что Glibc также предоставляет
- эти подпрограммы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libstdc" name="libstdc"></a><span class=
- "term"><code class=
- "filename">libstdc++</code></span>
- </p>
- </td>
- <td>
- <p>
- Стандартная библиотека C++
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libstdcexp" name=
- "libstdcexp"></a><span class="term"><code class=
- "filename">libstdc++exp</code></span>
- </p>
- </td>
- <td>
- <p>
- Экспериментальная библиотека контрактов C++
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libstdcfs" name="libstdcfs"></a><span class=
- "term"><code class=
- "filename">libstdc++fs</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека файловой системы ISO/IEC TS 18822:2015
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libsupc" name="libsupc"></a><span class=
- "term"><code class=
- "filename">libsupc++</code></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет вспомогательные процедуры для языка
- программирования C++
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libtsan" name="libtsan"></a><span class=
- "term"><code class="filename">libtsan</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека времени выполнения Thread Sanitizer
- (средств очистки потоков)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libubsan" name="libubsan"></a><span class=
- "term"><code class=
- "filename">libubsan</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека времени выполнения Undefined Behavior
- Sanitizer (средств очистки неопределенного
- поведения)
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-ncurses" name=
- "ch-system-ncurses"></a>8.29. Ncurses-6.4-20230520
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Ncurses содержит библиотеки для независимой от
- терминала обработки ввода/вывода
- </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">45 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.29.1. Установка пакета Ncurses
- </h3>
- <p>
- Подготовьте Ncurses к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --mandir=/usr/share/man \
- --with-shared \
- --without-debug \
- --without-normal \
- --with-cxx-shared \
- --enable-pc-files \
- --enable-widec \
- --with-pkg-config-libdir=/usr/lib/pkgconfig</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-shared</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет Ncurses собирать и
- устанавливать общие библиотеки C.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-normal</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает сборку и установку большинства
- статических библиотек C.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--without-debug</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр предотвращает сборку и установку
- отладочных библиотек.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-cxx-shared</code></em></span>
- </dt>
- <dd>
- <p>
- Это аргумент позволяет Ncurses собирать и устанавливать
- общие привязки C++. А также предотвращает сборку и
- установку статических привязок C++.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-pc-files</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр генерирует и устанавливает файлы .pc для
- pkg-config.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-widec</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает, что при сборке пакета вместо
- обычных библиотек (например, <code class=
- "filename">libncurses.so.6.4</code>) будут
- использоваться библиотеки с расширенным набором
- символов (например, <code class=
- "filename">libncursesw.so.6.4</code>). Библиотеки с
- расширенным набором символов могут использоваться как с
- многобайтовыми локалями, так и с традиционными
- 8-битовыми локалями, тогда как обычные библиотеки
- работают только с 8-битовыми локалями. Библиотеки с
- расширенным набором символов и обычные библиотеки
- совместимы на уровне исходного кода, но не совместимыми
- на уровне двоичного.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- У этого пакета есть набор тестов, но его можно запустить
- только после того, как пакет будет установлен. Тесты
- находятся в каталоге <code class="filename">test/</code>.
- Дополнительные сведения смотрите в файле <code class=
- "filename">README</code> в этом каталоге.
- </p>
- <p>
- Установка этого пакета приведет к перезаписи <code class=
- "filename">libncursesw.so.6.4</code>. Это может привести к
- сбою процесса оболочки, который использует код и данные из
- файла библиотеки. Установите пакет с помощью <code class=
- "literal">DESTDIR</code> и правильно замените файл библиотеки
- с помощью команды <span class=
- "command"><strong>install</strong></span>(также
- отредактирован заголовочный файл <code class=
- "filename">curses.h</code>, чтобы обеспечить использование
- ABI расширенного набора символов, как это сделано в <a class=
- "xref" href="#ch-tools-ncurses" title=
- "6.3. Ncurses-6.4-20230520">Раздел&nbsp;6.3,
- «Ncurses-6.4-20230520»</a>).
- </p>
- <pre class="userinput"><kbd class=
- "command">make DESTDIR=$PWD/dest install
-install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib
-rm -v dest/usr/lib/libncursesw.so.6.4
-sed -e 's/^#if.*XOPEN.*$/#if 1/' \
- -i dest/usr/include/curses.h
-cp -av dest/* /</kbd></pre>
- <p>
- Многие приложения ожидают, что компоновщик может найти
- библиотеки Ncurses, не поддерживающие расширенный набор
- символов. Используя трюк ниже, свяжите такие приложения с
- библиотеками расширенного набора символов с помощью
- символических ссылок (обратите внимание, что ссылки
- <code class="filename">.so</code> безопасны только в том
- случае, если <code class="filename">curses.h</code>
- отредактирован так, чтобы всегда использовать ABI
- расширенного набора символов):
- </p>
- <pre class="userinput"><kbd class=
- "command">for lib in ncurses form panel menu ; do
- ln -sfv lib${lib}w.so /usr/lib/lib${lib}.so
- ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
-done</kbd></pre>
- <p>
- Убедитесь, что старые приложения, которым нужна <code class=
- "filename">-lcurses</code> для сборки, собираются правильно:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sfv libncursesw.so /usr/lib/libcurses.so</kbd></pre>
- <p>
- По желанию установите документацию Ncurses:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -v -R doc -T /usr/share/doc/ncurses-6.4-20230520</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- С помощью приведенных выше инструкций не создаются
- библиотеки Ncurses, не использующие расширенный набор
- символов, поскольку ни один пакет, установленный путем
- компиляции из исходного кода, не будет связан с ними во
- время выполнения. Тем не менее, известно что некоторые
- бинарные приложения, которые связаны с библиотекой Ncurses
- и не поддерживающие расширенный набор символов, требуют
- наличия версии 5. Если вам необходимо иметь такие
- библиотеки из-за какого-либо приложения, имеющегося только
- в бинарном виде, или для обеспечения совместимости с LSB,
- соберите пакет с помощью следующих команд:
- </p>
- <pre class="userinput"><kbd class="command">make distclean
-./configure --prefix=/usr \
- --with-shared \
- --without-normal \
- --without-debug \
- --without-cxx-binding \
- --with-abi-version=5
-make sources libs
-cp -av lib/lib*.so.5* /usr/lib</kbd></pre>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-ncurses" name="contents-ncurses"></a>8.29.2.
- Содержимое пакета Ncurses
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">captoinfo
- (ссылка на tic), clear, infocmp, infotocap (ссылка на
- tic), ncursesw6-config, reset (ссылка на tset), tabs,
- tic, toe, tput и tset</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libcurses.so
- (символическая ссылка), libform.so (символическая
- ссылка), libformw.so, libmenu.so (символическая ссылка),
- libmenuw.so, libncurses.so (символическая ссылка),
- libncursesw.so, libncurses++w.so, libpanel.so
- (символическая ссылка) и libpanelw.so,</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/tabset,
- /usr/share/terminfo и
- /usr/share/doc/ncurses-6.4-20230520</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8389" name="idm8389"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="captoinfo" name="captoinfo"></a><span class=
- "term"><span class=
- "command"><strong>captoinfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует описание termcap в описание terminfo
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="clear" name="clear"></a><span class=
- "term"><span class=
- "command"><strong>clear</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Очищает экран, если это возможно
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="infocmp" name="infocmp"></a><span class=
- "term"><span class=
- "command"><strong>infocmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает или показывает описания terminfo
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="infotocap" name="infotocap"></a><span class=
- "term"><span class=
- "command"><strong>infotocap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует описание terminfo в описание termcap
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ncursesw6-config" name=
- "ncursesw6-config"></a><span class=
- "term"><span class=
- "command"><strong>ncursesw6-config</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет информацию о конфигурации пакету
- ncurses
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="reset" name="reset"></a><span class=
- "term"><span class=
- "command"><strong>reset</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Повторно инициализирует терминал со значениями по
- умолчанию
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tabs" name="tabs"></a><span class=
- "term"><span class=
- "command"><strong>tabs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Очищает и устанавливает размеры табуляции в
- терминале
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tic" name="tic"></a><span class=
- "term"><span class=
- "command"><strong>tic</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор описания terminfo, преобразует файл
- terminfo из исходного формата в двоичный, который
- необходим для подпрограмм библиотеки ncurses [Файл
- terminfo содержит информацию о возможностях
- конкретного терминала.]
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="toe" name="toe"></a><span class=
- "term"><span class=
- "command"><strong>toe</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит список всех доступных типов терминалов, для
- каждого из которых указывается его имя и приводится
- описание
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tput" name="tput"></a><span class=
- "term"><span class=
- "command"><strong>tput</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет использовать в командной оболочке
- настройки, относящиеся к особенностям конкретного
- терминала; может также использоваться для сброса
- или инициализации терминала, либо для вывода
- полного имени терминала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tset" name="tset"></a><span class=
- "term"><span class=
- "command"><strong>tset</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Может использоваться для инициализации терминалов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libncursesw" name=
- "libncursesw"></a><span class="term"><code class=
- "filename">libncursesw</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, отображающие различными способами
- текст на экране терминала. Хорошим примером
- использования этих функций является меню,
- отображаемое командой <span class=
- "command"><strong>make menuconfig</strong></span>
- при настройке ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libncurses__w" name=
- "libncurses__w"></a><span class="term"><code class=
- "filename">libncurses++w</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции связывания C++ с другими
- библиотеками в пакете
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libformw" name="libformw"></a><span class=
- "term"><code class=
- "filename">libformw</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, реализующие формы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmenuw" name="libmenuw"></a><span class=
- "term"><code class=
- "filename">libmenuw</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, реализующие меню
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libpanelw" name="libpanelw"></a><span class=
- "term"><code class=
- "filename">libpanelw</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, реализующие панели
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-sed" name="ch-system-sed"></a>8.30.
- Sed-4.9
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Sed содержит потоковый редактор текста
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">30 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.30.1. Установка пакета Sed
- </h3>
- <p>
- Подготовьте Sed к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr</kbd></pre>
- <p>
- Скомпилируйте пакет и сгенерируйте HTML-документацию:
- </p>
- <pre class="userinput"><kbd class="command">make
-make html</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class="command">chown -R tester .
-su tester -c "PATH=$PATH make check"</kbd></pre>
- <p>
- Установите пакет и документацию к нему:
- </p>
- <pre class="userinput"><kbd class="command">make install
-install -d -m755 /usr/share/doc/sed-4.9
-install -m644 doc/sed.html /usr/share/doc/sed-4.9</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-sed" name="contents-sed"></a>8.30.2.
- Содержимое пакета Sed
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">sed</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/sed-4.9</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8539" name="idm8539"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="sed" name="sed"></a><span class=
- "term"><span class=
- "command"><strong>sed</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтрует и преобразует текстовые файлы за один
- проход
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-psmisc" name="ch-system-psmisc"></a>8.31.
- Psmisc-23.6
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Psmisc содержит программы для отображения информации о
- запущенных процессах.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">6.6
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.31.1. Установка пакета Psmisc
- </h3>
- <p>
- Подготовьте Psmisc к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-psmisc" name="contents-psmisc"></a>8.31.2.
- Содержимое пакета Psmisc
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">fuser, killall,
- peekfd, prtstat, pslog, pstree и pstree.x11 (ссылка на
- pstree)</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8581" name="idm8581"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="fuser" name="fuser"></a><span class=
- "term"><span class=
- "command"><strong>fuser</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает идентификаторы процессов (PID), которые
- используют данные файлы или файловые системы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="killall" name="killall"></a><span class=
- "term"><span class=
- "command"><strong>killall</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Уничтожает процессы по имени; посылает сигнал всем
- процессам, выполняющим любую из заданных команд
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="peekfd" name="peekfd"></a><span class=
- "term"><span class=
- "command"><strong>peekfd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Просмотривает файловые дескрипторы запущенного
- процесса с учетом его PID
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="prtstat" name="prtstat"></a><span class=
- "term"><span class=
- "command"><strong>prtstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию о процессе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pslog" name="pslog"></a><span class=
- "term"><span class=
- "command"><strong>pslog</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает текущий путь к журналам процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pstree" name="pstree"></a><span class=
- "term"><span class=
- "command"><strong>pstree</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает запущенные процессы в виде дерева
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pstree.x11" name=
- "pstree.x11"></a><span class="term"><span class=
- "command"><strong>pstree.x11</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- То же, что и <span class=
- "command"><strong>pstree</strong></span>, за
- исключением того, что он ожидает подтверждения
- перед выходом.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gettext" name=
- "ch-system-gettext"></a>8.32. Gettext-0.22.4
- </h2>
- </div>
- </div>
- </div>
- <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.4 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">250
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.32.1. Установка пакета Gettext
- </h3>
- <p>
- Подготовьте Gettext для компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/gettext-0.22.4</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет (это занимает много времени, около
- 3 SBU), выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-chmod -v 0755 /usr/lib/preloadable_libintl.so</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gettext" name="contents-gettext"></a>8.32.2.
- Содержимое пакета Gettext
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">autopoint,
- envsubst, gettext, gettext.sh, gettextize, msgattrib,
- msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec,
- msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt,
- msguniq, ngettext, recode-sr-latin, и xgettext</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libasprintf.so, libgettextlib.so,
- libgettextpo.so, libgettextsrc.so, libtextstyle.so и
- preloadable_libintl.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/gettext,
- /usr/share/doc/gettext-0.22.4, /usr/share/gettext и
- /usr/share/gettext-0.22.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8670" name="idm8670"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="autopoint" name="autopoint"></a><span class=
- "term"><span class=
- "command"><strong>autopoint</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует файлы стандартной инфраструктуры Gettext в
- пакет с исходным кодом
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="envsubst" name="envsubst"></a><span class=
- "term"><span class=
- "command"><strong>envsubst</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подставляет переменные окружения в строки,
- используемые командной оболочкой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gettext" name="gettext"></a><span class=
- "term"><span class=
- "command"><strong>gettext</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит сообщение с естественного языка на язык
- пользователя, осуществляя для этого поиск уже
- сделанного перевода в каталоге сообщений
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gettext.sh" name=
- "gettext.sh"></a><span class="term"><span class=
- "command"><strong>gettext.sh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- В основном служит библиотекой функций оболочки для
- gettext.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gettextize" name=
- "gettextize"></a><span class="term"><span class=
- "command"><strong>gettextize</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует все стандартные файлы Gettext в указанный
- каталог верхнего уровня пакета, чтобы начать его
- интернационализацию.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgattrib" name="msgattrib"></a><span class=
- "term"><span class=
- "command"><strong>msgattrib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтрует сообщения каталога переводов в
- соответствии с их атрибутами и управляет атрибутами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgcat" name="msgcat"></a><span class=
- "term"><span class=
- "command"><strong>msgcat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет указанные файлы <code class=
- "filename">.po</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgcmp" name="msgcmp"></a><span class=
- "term"><span class=
- "command"><strong>msgcmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает два файла <code class=
- "filename">.po</code>, чтобы проверить, что оба
- содержат один и тот же набор строк msgid
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgcomm" name="msgcomm"></a><span class=
- "term"><span class=
- "command"><strong>msgcomm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Находит сообщения, которые являются общими для
- указанных файлов <code class="filename">.po</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgconv" name="msgconv"></a><span class=
- "term"><span class=
- "command"><strong>msgconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует каталог переводов в другую кодировку
- символов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgen" name="msgen"></a><span class=
- "term"><span class=
- "command"><strong>msgen</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает каталог переводов на английский язык
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgexec" name="msgexec"></a><span class=
- "term"><span class=
- "command"><strong>msgexec</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Применяет команду ко всем переводам каталога
- переводов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgfilter" name="msgfilter"></a><span class=
- "term"><span class=
- "command"><strong>msgfilter</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Применяет фильтр ко всем переводам каталога
- переводов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgfmt" name="msgfmt"></a><span class=
- "term"><span class=
- "command"><strong>msgfmt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует каталог двоичных сообщений из каталога
- переводов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msggrep" name="msggrep"></a><span class=
- "term"><span class=
- "command"><strong>msggrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Извлекает все сообщения каталога переводов, которые
- соответствуют заданному шаблону или принадлежат
- нескольким указанным исходным файлам
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msginit" name="msginit"></a><span class=
- "term"><span class=
- "command"><strong>msginit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает новый файл <code class=
- "filename">.po</code>, инициализируя метаинформацию
- значениями из среды пользователя.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgmerge" name="msgmerge"></a><span class=
- "term"><span class=
- "command"><strong>msgmerge</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет два необработанных перевода в один файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msgunfmt" name="msgunfmt"></a><span class=
- "term"><span class=
- "command"><strong>msgunfmt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Декомпилирует каталог двоичных сообщений в
- необработанный текст перевода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="msguniq" name="msguniq"></a><span class=
- "term"><span class=
- "command"><strong>msguniq</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет дублирующиеся переводы в каталоге
- переводов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ngettext" name="ngettext"></a><span class=
- "term"><span class=
- "command"><strong>ngettext</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает перевод текстового сообщения на родной
- язык, грамматическая форма которого зависит от
- числа.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="recode-sr-latin" name=
- "recode-sr-latin"></a><span class=
- "term"><span class=
- "command"><strong>recode-sr-latin</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перекодирует сербский текст с кириллицы на
- латиницу.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xgettext" name="xgettext"></a><span class=
- "term"><span class=
- "command"><strong>xgettext</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Извлекает переводимые строки сообщений из заданных
- исходных файлов для создания первого шаблона
- перевода.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libasprintf" name=
- "libasprintf"></a><span class="term"><code class=
- "filename">libasprintf</code></span>
- </p>
- </td>
- <td>
- <p>
- Определяет класс <span class=
- "emphasis"><em>autosprintf</em></span>, который
- делает подпрограммы вывода в формате C пригодными
- для использования в программах на C++ для
- использования со строками <span class=
- "emphasis"><em>&lt;string&gt;</em></span> и
- потоками <span class=
- "emphasis"><em>&lt;iostream&gt;</em></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgettextlib" name=
- "libgettextlib"></a><span class="term"><code class=
- "filename">libgettextlib</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит общие подпрограммы, используемые
- различными программами Gettext; они не
- предназначены для общего использования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgettextpo" name=
- "libgettextpo"></a><span class="term"><code class=
- "filename">libgettextpo</code></span>
- </p>
- </td>
- <td>
- <p>
- Используется для написания специализированных
- программ, обрабатывающих файлы <code class=
- "filename">.po</code>; эта библиотека используется,
- когда стандартных приложений, поставляемых с
- Gettext (таких как <span class=
- "command"><strong>msgcomm</strong></span>,
- <span class=
- "command"><strong>msgcmp</strong></span>,
- <span class=
- "command"><strong>msgattrib</strong></span>, и
- <span class=
- "command"><strong>msgen</strong></span>),
- недостаточно.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgettextsrc" name=
- "libgettextsrc"></a><span class="term"><code class=
- "filename">libgettextsrc</code></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет общие подпрограммы, используемые
- различными программами Gettext; они не
- предназначены для общего использования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libtextstyle" name=
- "libtextstyle"></a><span class="term"><code class=
- "filename">libtextstyle</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека стилей текста
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="preloadable_libintl" name=
- "preloadable_libintl"></a><span class=
- "term"><code class=
- "filename">preloadable_libintl</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, предназначенная для использования
- LD_PRELOAD, которая помогает <code class=
- "filename">libintl</code> записывать в журнал
- непереведённые сообщения
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-bison" name="ch-system-bison"></a>8.33.
- Bison-3.8.2
- </h2>
- </div>
- </div>
- </div>
- <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">2.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">62 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.33.1. Установка пакета Bison
- </h3>
- <p>
- Подготовьте Bison к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Для тестирования пакета (около 5,5 SBU), выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-bison" name="contents-bison"></a>8.33.2.
- Содержимое пакета Bison
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bison и
- yacc</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">liby.a</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/bison</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8918" name="idm8918"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bison" name="bison"></a><span class=
- "term"><span class=
- "command"><strong>bison</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует из набора правил программу для анализа
- структуры текстовых файлов; Bison является заменой
- Yacc (Yet Another Compiler Compiler)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="yacc" name="yacc"></a><span class=
- "term"><span class=
- "command"><strong>yacc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обертка для <span class=
- "command"><strong>bison</strong></span>,
- предназначенная для программ, которые до сих пор
- вызывают <span class=
- "command"><strong>yacc</strong></span> вместо
- <span class=
- "command"><strong>bison</strong></span>; он
- вызывает <span class=
- "command"><strong>bison</strong></span> с
- параметром <em class=
- "parameter"><code>-y</code></em>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="liby" name="liby"></a><span class=
- "term"><code class="filename">liby</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека Yacc, содержащая реализации
- Yacc-совместимых функций <code class=
- "function">yyerror</code> и <code class=
- "function">main</code>; обычно эта библиотека не
- очень нужна, но требуется POSIX
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-grep" name="ch-system-grep"></a>8.34.
- Grep-3.11
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Grep содержит программы для поиска по содержимому
- файлов.
- </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">39 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.34.1. Установка пакета Grep
- </h3>
- <p>
- Во-первых, удалите предупреждение об использовании egrep и
- fgrep, которое приводит к сбою тестов некоторых пакетов:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i "s/echo/#echo/" src/egrep.sh</kbd></pre>
- <p>
- Подготовьте Grep к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-grep" name="contents-grep"></a>8.34.2.
- Содержимое пакета Grep
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">egrep, fgrep, и
- grep</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm8984" name="idm8984"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="egrep" name="egrep"></a><span class=
- "term"><span class=
- "command"><strong>egrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит строки, соответствующие расширенному
- регулярному выражению. Команда устарела, вместо неё
- используйте <span class="command"><strong>grep
- -E</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fgrep" name="fgrep"></a><span class=
- "term"><span class=
- "command"><strong>fgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит строки, соответствующие списку
- фиксированных строк. Команда устарела, вместо неё
- используйте <span class="command"><strong>grep
- -F</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grep" name="grep"></a><span class=
- "term"><span class=
- "command"><strong>grep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит строки, соответствующие простому
- регулярному выражению
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-bash" name="ch-system-bash"></a>8.35.
- Bash-5.2.21
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Bash содержит Bourne-Again Shell.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1.2 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">52 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.35.1. Установка пакета Bash
- </h3>
- <p>
- Во-первых, исправьте некоторые проблемы, выявленные
- разработчиками:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../bash-5.2.21-upstream_fixes-1.patch</kbd></pre>
- <p>
- Подготовьте Bash к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --without-bash-malloc \
- --with-installed-readline \
- --docdir=/usr/share/doc/bash-5.2.21</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение нового параметра настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-installed-readline</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает Bash использовать библиотеку
- <code class="filename">readline</code>, которая уже
- установлена в системе, а не собственную версию
- readline.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Перейдите к разделу <span class="quote">«<span class=
- "quote">Установка пакета</span>»</span>, если не планируете
- запускать тесты.
- </p>
- <p>
- Перед запуском тестов, убедитесь, что пользователь
- <code class="systemitem">tester</code> может писать в каталог
- с исходниками:
- </p>
- <pre class="userinput"><kbd class=
- "command">chown -R tester .</kbd></pre>
- <p>
- Набор тестов пакета предназначен для запуска пользователем
- без полномочий root, которому принадлежит терминал,
- подключенный к стандартному вводу. Чтобы удовлетворить это
- требование, создайте новый псевдотерминал с помощью
- <span class="application">Expect</span> и запустите тесты от
- имени пользователя <code class="systemitem">tester</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">su -s /usr/bin/expect tester &lt;&lt; "EOF"
-set timeout -1
-spawn make tests
-expect eof
-lassign [wait] _ _ _ value
-exit $value
-EOF</kbd></pre>
- <p>
- Набор тестов использует <span class=
- "command"><strong>diff</strong></span> для определения
- разницы между выводом тестового сценария и ожидаемым
- результатом. Любой вывод <span class=
- "command"><strong>diff</strong></span> (с префиксом
- <code class="computeroutput">&lt;</code> и <code class=
- "computeroutput">&gt;</code>) указывает на сбой теста, если
- нет сообщение о том, что различия можно проигнорировать.
- Известно, что один тест с именем <code class=
- "filename">run-builtins</code> не работает на некоторых
- хост-дистрибутивах, указывая на различия в первой строке
- выходных данных.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Запустите только что скомпилированную программу <span class=
- "command"><strong>bash</strong></span> (заменив ту, которая
- выполняется в данный момент):
- </p>
- <pre class="userinput"><kbd class=
- "command">exec /usr/bin/bash --login</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-bash" name="contents-bash"></a>8.35.2.
- Содержимое пакета Bash
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bash, bashbug и
- sh (ссылка на bash)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/bash, /usr/lib/bash,
- and /usr/share/doc/bash-5.2.21</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9073" name="idm9073"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bash" name="bash"></a><span class=
- "term"><span class=
- "command"><strong>bash</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Широко распространенный командный интерпретатор.
- Выполняет различные дополнения и подстановки в
- переданной командной строке перед её выполнением,
- что делает этот интерпретатор мощным инструментом
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="bashbug" name="bashbug"></a><span class=
- "term"><span class=
- "command"><strong>bashbug</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Скрипт, помогающий пользователю составлять и
- отправлять по почте отчеты об ошибках <span class=
- "command"><strong>bash</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sh" name="sh"></a><span class=
- "term"><span class=
- "command"><strong>sh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Симлинк на программу <span class=
- "command"><strong>bash</strong></span>; при вызове
- <span class="command"><strong>sh</strong></span>,
- <span class="command"><strong>bash</strong></span>
- пытается максимально точно имитировать поведение
- <span class="command"><strong>sh</strong></span>,
- при этом также соответствуя стандарту POSIX.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libtool" name=
- "ch-system-libtool"></a>8.36. Libtool-2.4.7
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Libtool содержит сценарий поддержки универсальной
- библиотеки GNU. Это упрощает использование общих библиотек
- благодаря согласованному переносимому интерфейсу.
- </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">45 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.36.1. Установка пакета Libtool
- </h3>
- <p>
- Подготовьте Libtool к компиляции:
- </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 -k check</kbd></pre>
- <p>
- Известно, что пять тестов в среде сборки LFS завершаются
- неудачно из-за циклической зависимости, но эти тесты проходят
- успешно, если запустить их повторно после установки automake.
- Кроме того, в grep-3.8 или более поздней версии два теста
- вызовут предупреждение для регулярных выражений,
- несовместимых с POSIX и завершатся ошибкой.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Удалите ненужную статическую библиотеку:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/libltdl.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-libtool" name="contents-libtool"></a>8.36.2.
- Содержимое пакета Libtool
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">libtool и
- libtoolize</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libltdl.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/libltdl и
- /usr/share/libtool</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9142" name="idm9142"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libtool" name="libtool"></a><span class=
- "term"><span class=
- "command"><strong>libtool</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обеспечивает общие услуги поддержки при сборке
- библиотек
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libtoolize" name=
- "libtoolize"></a><span class="term"><span class=
- "command"><strong>libtoolize</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет стандартный способ добавления
- поддержки <span class=
- "command"><strong>libtool</strong></span> в пакет
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libltdl" name="libltdl"></a><span class=
- "term"><code class="filename">libltdl</code></span>
- </p>
- </td>
- <td>
- <p>
- Скрывает различные проблемы, связанные с открытием
- динамически загружаемых библиотек
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gdbm" name="ch-system-gdbm"></a>8.37.
- GDBM-1.23
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GDBM содержит менеджер баз данных GNU. Это библиотека
- функций базы данных, использующая расширяемое хеширование и
- работающая аналогично стандартной СУБД UNIX. Библиотека
- предоставляет примитивы для хранения пар ключ/значение,
- поиска и извлечения данных по его ключу и удаления ключа
- вместе с его данными.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">13 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.37.1. Установка пакета GDBM
- </h3>
- <p>
- Подготовьте GDBM к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --enable-libgdbm-compat</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><code class=
- "envar">--enable-libgdbm-compat</code></span>
- </dt>
- <dd>
- <p>
- Этот параметр включает сборку библиотеки совместимости
- libgdbm. Некоторым пакетам за пределами LFS могут
- потребоваться более старые подпрограммы DBM, которые он
- предоставляет.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gdbm" name="contents-gdbm"></a>8.37.2.
- Содержимое пакета GDBM
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">gdbm_dump,
- gdbm_load, и gdbmtool</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libgdbm.so и
- libgdbm_compat.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9208" name="idm9208"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="gdbm_dump" name="gdbm_dump"></a><span class=
- "term"><span class=
- "command"><strong>gdbm_dump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сохраняет дамп базы данных GDBM в файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gdbm_load" name="gdbm_load"></a><span class=
- "term"><span class=
- "command"><strong>gdbm_load</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Восстанавливает базу данных GDBM из дампа.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gdbmtool" name="gdbmtool"></a><span class=
- "term"><span class=
- "command"><strong>gdbmtool</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет и изменяет базу данных GDBM
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgdbm" name="libgdbm"></a><span class=
- "term"><code class="filename">libgdbm</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции для управления хэшированной базой
- данных
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libgdbm_compat" name=
- "libgdbm_compat"></a><span class=
- "term"><code class="filename">libgdbm_compat</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека совместимости, содержащая более старые
- функции DBM
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gperf" name="ch-system-gperf"></a>8.38.
- Gperf-3.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Gperf генерирует идеальную хэш-функцию из набора ключей.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">6.1
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.38.1. Установка пакета Gperf
- </h3>
- <p>
- Подготовьте Gperf к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Известно, что тесты завершаются ошибкой при одновременном
- выполнении нескольких тестов (параметр -j больше 1). Для
- выполнения тестов, запустите следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">make -j1 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gperf" name="contents-gperf"></a>8.38.2.
- Содержимое пакета Gperf
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">gperf</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/gperf-3.1</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9280" name="idm9280"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="gperf" name="gperf"></a><span class=
- "term"><span class=
- "command"><strong>gperf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует идеальный хэш из набора ключей
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-expat" name="ch-system-expat"></a>8.39.
- Expat-2.6.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Expat содержит потоковую библиотеку C для
- синтаксического анализа XML
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">13 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.39.1. Установка пакета Expat
- </h3>
- <p>
- Подготовьте Expat к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/expat-2.6.0</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- По желанию установите документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.6.0</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-expat" name="contents-expat"></a>8.39.2.
- Содержимое пакета Expat
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">xmlwf</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libexpat.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/expat-2.6.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9329" name="idm9329"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="xmlwf" name="xmlwf"></a><span class=
- "term"><span class=
- "command"><strong>xmlwf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита проверки правильности формирования XML
- документов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libexpat" name="libexpat"></a><span class=
- "term"><code class=
- "filename">libexpat</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции API для синтаксического анализа
- XML
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-inetutils" name=
- "ch-system-inetutils"></a>8.40. Inetutils-2.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Inetutils содержит базовые программы для работы с
- сетью.
- </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">35 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.40.1. Установка пакета Inetutils
- </h3>
- <p>
- Подготовьте Inetutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --bindir=/usr/bin \
- --localstatedir=/var \
- --disable-logger \
- --disable-whois \
- --disable-rcp \
- --disable-rexec \
- --disable-rlogin \
- --disable-rsh \
- --disable-servers</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-logger</code></em></span>
- </dt>
- <dd>
- <p>
- Параметр запрещает установку программы <span class=
- "command"><strong>logger</strong></span>, используемой
- скриптами для отправки сообщений системной службе
- логирования (System Log Daemon). Не устанавливайте её,
- т.к. Util-linux устанавливает более свежую версию.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-whois</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает сборку <span class=
- "command"><strong>whois</strong></span>-клиента
- Inetutils, который устарел. Инструкции для сборки более
- нового клиента <span class=
- "command"><strong>whois</strong></span> находятся в
- книге BLFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-r*</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает установку устаревших программ, которые не
- должны использоваться по соображениям безопасности.
- Функционал этих программы можно получить установкой
- пакета <span class="application">openssh</span> из
- книги BLFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-servers</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает установку различных сетевых серверов,
- входящих в состав пакета Inetutils. Эти серверы
- считаются неподходящими для базовой системы LFS.
- Некоторые из них небезопасны по своей природе и
- считаются надежными только в доверенных сетях. Обратите
- внимание, что для многих из них доступны более
- качественные замены.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните::
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Переместите программу в правильное место:
- </p>
- <pre class="userinput"><kbd class=
- "command">mv -v /usr/{,s}bin/ifconfig</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-inetutils" name=
- "contents-inetutils"></a>8.40.2. Содержимое пакета Inetutils
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">dnsdomainname,
- ftp, ifconfig, hostname, ping, ping6, talk, telnet, tftp
- и traceroute</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9407" name="idm9407"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="dnsdomainname" name=
- "dnsdomainname"></a><span class="term"><span class=
- "command"><strong>dnsdomainname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает системное DNS имя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ftp" name="ftp"></a><span class=
- "term"><span class=
- "command"><strong>ftp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа для передачи файлов по протоколу FTP
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hostname" name="hostname"></a><span class=
- "term"><span class=
- "command"><strong>hostname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает или задает имя хоста
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifconfig" name="ifconfig"></a><span class=
- "term"><span class=
- "command"><strong>ifconfig</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Управляет сетевыми интерфейсами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ping" name="ping"></a><span class=
- "term"><span class=
- "command"><strong>ping</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отправляет пакеты эхо-запросов и сообщает, сколько
- времени занимают ответы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ping6" name="ping6"></a><span class=
- "term"><span class=
- "command"><strong>ping6</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Версия <span class=
- "command"><strong>ping</strong></span> для сетей
- IPv6
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="talk" name="talk"></a><span class=
- "term"><span class=
- "command"><strong>talk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для общения с другими пользователями
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="telnet" name="telnet"></a><span class=
- "term"><span class=
- "command"><strong>telnet</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Интерфейс к протоколу TELNET
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tftp" name="tftp"></a><span class=
- "term"><span class=
- "command"><strong>tftp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа для передачи файлов по протоколу TFTP
- (Trivial File Transfer Protocol — простой протокол
- передачи файлов)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="traceroute" name=
- "traceroute"></a><span class="term"><span class=
- "command"><strong>traceroute</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отслеживает маршрут, по которому проходят ваши
- пакеты от хоста на которым вы работаете, к другому
- узлу сети, показывая все промежуточные переходы
- (шлюзы) на этом пути.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-less" name="ch-system-less"></a>8.41.
- Less-643
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Less содержит средство просмотра текстовых файлов
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">12 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.41.1. Установка пакета Less
- </h3>
- <p>
- Подготовьте Less к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --sysconfdir=/etc</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--sysconfdir=/etc</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр указывает программам, созданным пакетом,
- искать файлы конфигурации в <code class=
- "filename">/etc</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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-less" name="contents-less"></a>8.41.2.
- Содержимое пакета Less
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">less, lessecho
- и lesskey</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9521" name="idm9521"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="less" name="less"></a><span class=
- "term"><span class=
- "command"><strong>less</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Просмотрщик файлов; отображает содержимое данного
- файла, позволяя пользователю прокручивать файл,
- искать строки и переходить к меткам
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lessecho" name="lessecho"></a><span class=
- "term"><span class=
- "command"><strong>lessecho</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Требуется для расширения метасимволов, таких как
- <span class="emphasis"><em>*</em></span> и
- <span class="emphasis"><em>?</em></span>, в именах
- файлов в системах Unix
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lesskey" name="lesskey"></a><span class=
- "term"><span class=
- "command"><strong>lesskey</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для привязки клавиш в программе
- <span class="command"><strong>less</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-perl" name="ch-system-perl"></a>8.42.
- Perl-5.38.2
- </h2>
- </div>
- </div>
- </div>
- <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">1.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">239
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.42.1. Установка пакета Perl
- </h3>
- <p>
- Эта версия Perl собирает модули Compress::Raw::Zlib и
- Compress::Raw::BZip2. По умолчанию Perl будет использовать
- внутреннюю копию исходников для сборки. Выполните следующую
- команду, чтобы Perl использовал библиотеки, установленные в
- системе:
- </p>
- <pre class="userinput"><kbd class=
- "command">export BUILD_ZLIB=False
-export BUILD_BZIP2=0</kbd></pre>
- <p>
- Чтобы иметь полный контроль над настройкой Perl, вы можете
- удалить параметры <span class="quote">«<span class=
- "quote">-des</span>»</span> из следующей команды и вручную
- выбрать способ сборки этого пакета. В качестве альтернативы,
- используйте команду точно так, как указано ниже, чтобы
- использовать значения по умолчанию, которые Perl определяет
- автоматически:
- </p>
- <pre class="userinput"><kbd class=
- "command">sh Configure -des \
- -Dprefix=/usr \
- -Dvendorprefix=/usr \
- -Dprivlib=/usr/lib/perl5/5.38/core_perl \
- -Darchlib=/usr/lib/perl5/5.38/core_perl \
- -Dsitelib=/usr/lib/perl5/5.38/site_perl \
- -Dsitearch=/usr/lib/perl5/5.38/site_perl \
- -Dvendorlib=/usr/lib/perl5/5.38/vendor_perl \
- -Dvendorarch=/usr/lib/perl5/5.38/vendor_perl \
- -Dman1dir=/usr/share/man/man1 \
- -Dman3dir=/usr/share/man/man3 \
- -Dpager="/usr/bin/less -isR" \
- -Duseshrplib \
- -Dusethreads</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров Configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dpager="/usr/bin/less
- -isR"</code></em></span>
- </dt>
- <dd>
- <p>
- Параметр указывает использовать <strong class=
- "userinput"><code>less</code></strong> вместо
- <strong class="userinput"><code>more</code></strong>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dman1dir=/usr/share/man/man1
- -Dman3dir=/usr/share/man/man3</code></em></span>
- </dt>
- <dd>
- <p>
- Так как Groff еще не установлен, <span class=
- "command"><strong>Configure</strong></span> не будет
- создавать man-страницы для Perl. Эти параметры
- переопределяют это поведение.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dusethreads</code></em></span>
- </dt>
- <dd>
- <p>
- Собрать Perl с поддержкой потоков.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет (примерно 11 SBU), выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">TEST_JOBS=$(nproc) make test_harness</kbd></pre>
- <p>
- Установка пакета и очистка:
- </p>
- <pre class="userinput"><kbd class="command">make install
-unset BUILD_ZLIB BUILD_BZIP2</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-perl" name="contents-perl"></a>8.42.2.
- Содержимое пакета Perl
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">corelist, cpan,
- enc2xs, encguess, h2ph, h2xs, instmodsh, json_pp,
- libnetcfg, perl, perl5.38.2 (жесткая ссылка на perl),
- perlbug, perldoc, perlivp, perlthanks (жесткая ссылка на
- perlbug), piconv, pl2pm, pod2html, pod2man, pod2text,
- pod2usage, podchecker, podselect, prove, ptar, ptardiff,
- ptargrep, shasum, splain, xsubpp и zipdetails</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">Список слишком
- большой для перечисления</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/perl5</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9608" name="idm9608"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="corelist" name="corelist"></a><span class=
- "term"><span class=
- "command"><strong>corelist</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Интерфейс командной строки для Module::CoreList
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cpan" name="cpan"></a><span class=
- "term"><span class=
- "command"><strong>cpan</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет получать из командной строки доступ к
- архиву документации и программ Perl (Comprehensive
- Perl Archive Network - CPAN)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="enc2xs" name="enc2xs"></a><span class=
- "term"><span class=
- "command"><strong>enc2xs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Собирает расширение Perl для модуля Encode либо с
- использование таблицы символов Unicode, либо с
- использованием файлов кодирования Tcl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="encguess" name="encguess"></a><span class=
- "term"><span class=
- "command"><strong>encguess</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Определяет тип кодировки одного или нескольких
- файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="h2ph" name="h2ph"></a><span class=
- "term"><span class=
- "command"><strong>h2ph</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Конвертирует заголовочные файлы Си <code class=
- "filename">.h</code> в заголовочные файлы Perl
- <code class="filename">.ph</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="h2xs" name="h2xs"></a><span class=
- "term"><span class=
- "command"><strong>h2xs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Конвертирует заголовочные файлы Си <code class=
- "filename">.h</code> в расширения Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="instmodsh" name="instmodsh"></a><span class=
- "term"><span class=
- "command"><strong>instmodsh</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сценарий оболочки для проверки установленных
- модулей Perl; он может создать архив из
- установленного модуля.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="json_pp" name="json_pp"></a><span class=
- "term"><span class=
- "command"><strong>json_pp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует данные между определенными входными и
- выходными форматами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libnetcfg" name="libnetcfg"></a><span class=
- "term"><span class=
- "command"><strong>libnetcfg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Может использоваться для настройки Perl-модуля
- <code class="filename">libnet</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perl" name="perl"></a><span class=
- "term"><span class=
- "command"><strong>perl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет лучшие возможности C, <span class=
- "command"><strong>sed</strong></span>, <span class=
- "command"><strong>awk</strong></span> и
- <span class="command"><strong>sh</strong></span> в
- одном языке
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perl-version" name=
- "perl-version"></a><span class="term"><span class=
- "command"><strong>perl5.38.2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>perl</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perlbug" name="perlbug"></a><span class=
- "term"><span class=
- "command"><strong>perlbug</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для создания отчетов об ошибках в Perl
- или модулях, которые поставляются с ним, и отправки
- их по почте
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perldoc" name="perldoc"></a><span class=
- "term"><span class=
- "command"><strong>perldoc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает часть документации в формате pod,
- которая встроена в дерево установки Perl или в
- сценарий Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perlivp" name="perlivp"></a><span class=
- "term"><span class=
- "command"><strong>perlivp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Процедура проверки установки Perl; ее можно
- использовать для проверки правильности установки
- Perl и его библиотек
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="perlthanks" name=
- "perlthanks"></a><span class="term"><span class=
- "command"><strong>perlthanks</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для создания сообщения-благодарности,
- отсылаемого разработчикам Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="piconv" name="piconv"></a><span class=
- "term"><span class=
- "command"><strong>piconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Perl версия конвертера <span class=
- "command"><strong>iconv</strong></span>,
- используемого для кодирования символов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pl2pm" name="pl2pm"></a><span class=
- "term"><span class=
- "command"><strong>pl2pm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для грубого конвертирования файлов
- <code class="filename">.pl</code> Perl4 в модули
- <code class="filename">.pm</code> Perl5
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pod2html" name="pod2html"></a><span class=
- "term"><span class=
- "command"><strong>pod2html</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы из формата pod в формат HTML
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pod2man" name="pod2man"></a><span class=
- "term"><span class=
- "command"><strong>pod2man</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует данные pod в форматированный входной
- поток для *roff
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pod2text" name="pod2text"></a><span class=
- "term"><span class=
- "command"><strong>pod2text</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует данные pod в форматированный текст
- ASCII
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pod2usage" name="pod2usage"></a><span class=
- "term"><span class=
- "command"><strong>pod2usage</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Печатает в файл сообщения usage из встроенных
- документов pod
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="podchecker" name=
- "podchecker"></a><span class="term"><span class=
- "command"><strong>podchecker</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет синтаксис файлов документации формата pod
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="podselect" name="podselect"></a><span class=
- "term"><span class=
- "command"><strong>podselect</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает выбранные разделы документации pod
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="prove" name="prove"></a><span class=
- "term"><span class=
- "command"><strong>prove</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент командной строки для выполнения тестов с
- помощью модуля Test::Harness
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ptar" name="ptar"></a><span class=
- "term"><span class=
- "command"><strong>ptar</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа, похожая на <span class=
- "command"><strong>tar</strong></span>, написанная
- на Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ptardiff" name="ptardiff"></a><span class=
- "term"><span class=
- "command"><strong>ptardiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа на Perl для сравнения распакованного и
- нераспакованного архивов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ptargrep" name="ptargrep"></a><span class=
- "term"><span class=
- "command"><strong>ptargrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа на Perl для текстового поиска по шаблону
- внутри tar-архива
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="shasum" name="shasum"></a><span class=
- "term"><span class=
- "command"><strong>shasum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Печатает или проверяет контрольные суммы SHA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="splain" name="splain"></a><span class=
- "term"><span class=
- "command"><strong>splain</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Включает подробные предупреждения для диагностики в
- Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xsubpp" name="xsubpp"></a><span class=
- "term"><span class=
- "command"><strong>xsubpp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует код Perl XS в код C
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zipdetails" name=
- "zipdetails"></a><span class="term"><span class=
- "command"><strong>zipdetails</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает сведения о внутренней структуре
- Zip-файла
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-xml-parser" name=
- "ch-system-xml-parser"></a>8.43. XML::Parser-2.47
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Модуль XML::Parser представляет собой Perl-интерфейс к
- XML-парсеру Джеймса Кларка Expat.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">2.4
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.43.1. Установка пакета XML::Parser
- </h3>
- <p>
- Подготовьте XML::Parser к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">perl Makefile.PL</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make test</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-xml-parser" name=
- "contents-xml-parser"></a>8.43.2. Содержимое XML::Parser
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленный модуль:</strong>
- <span class="segbody">Expat.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9872" name="idm9872"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="Expat" name="Expat"></a><span class=
- "term"><code class="filename">Expat</code></span>
- </p>
- </td>
- <td>
- <p>
- предоставляет Perl интерфейс для Expat
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-intltool" name=
- "ch-system-intltool"></a>8.44. Intltool-0.51.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Intltool — это инструмент интернационализации, используемый
- для извлечения переводимых строк из исходных файлов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.5
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.44.1. Установка пакета Intltool
- </h3>
- <p>
- Сначала исправьте предупреждение, вызываемое perl-5.22 и
- более поздними версиями:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's:\\\${:\\\$\\{:' intltool-update.in</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Приведенное выше регулярное выражение выглядит необычно
- из-за множества слэшей. Что оно делает, так это добавляет
- обратную косую черту перед правой фигурной скобкой в
- последовательности '\${' в результате чего получается
- '\$\{'.
- </p>
- </div>
- <p>
- Подготовьте Intltool к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-intltool" name=
- "contents-intltool"></a>8.44.2. Содержимое пакета Intltool
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class=
- "segbody">intltool-extract, intltool-merge,
- intltool-prepare, intltool-update и intltoolize</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/intltool-0.51.0 и
- /usr/share/intltool</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9921" name="idm9921"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="intltoolize" name=
- "intltoolize"></a><span class="term"><span class=
- "command"><strong>intltoolize</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подготавливает пакет для использования intltool
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="intltool-extract" name=
- "intltool-extract"></a><span class=
- "term"><span class=
- "command"><strong>intltool-extract</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует заголовочные файлы, которые могут быть
- прочитаны с помощью <span class=
- "command"><strong>gettext</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="intltool-merge" name=
- "intltool-merge"></a><span class=
- "term"><span class="command"><strong>intltool-merge</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет переведенные строки в файлы различных
- типов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="intltool-prepare" name=
- "intltool-prepare"></a><span class=
- "term"><span class=
- "command"><strong>intltool-prepare</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет файлы pot и объединяет их с файлами
- перевода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="intltool-update" name=
- "intltool-update"></a><span class=
- "term"><span class=
- "command"><strong>intltool-update</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет файлы шаблонов po и объединяет их с
- переводами
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-autoconf" name=
- "ch-system-autoconf"></a>8.45. Autoconf-2.72
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Autoconf содержит программы для создания сценариев
- оболочки, которые могут автоматически настраивать исходный
- код.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1 SBU
- (около 0.5 SBU с тестами)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">25 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.45.1. Установка пакета Autoconf
- </h3>
- <p>
- Подготовьте Autoconf к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-autoconf" name=
- "contents-autoconf"></a>8.45.2. Содержимое пакета Autoconf
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">autoconf,
- autoheader, autom4te, autoreconf, autoscan, autoupdate, и
- ifnames</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/autoconf</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm9994" name="idm9994"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="autoconf" name="autoconf"></a><span class=
- "term"><span class=
- "command"><strong>autoconf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует сценарии оболочки, которые автоматически
- настраивают пакеты исходного кода программного
- обеспечения для адаптации ко многим типам
- Unix-подобных систем; создаваемые сценарии
- независимы—для их запуска не требуется программа
- <span class=
- "command"><strong>autoconf</strong></span>.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="autoheader" name=
- "autoheader"></a><span class="term"><span class=
- "command"><strong>autoheader</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для создания файлов шаблонов операторов
- C <span class="emphasis"><em>#define</em></span>
- для использования в configure
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="autom4te" name="autom4te"></a><span class=
- "term"><span class=
- "command"><strong>autom4te</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обертка для макропроцессора M4
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="autoreconf" name=
- "autoreconf"></a><span class="term"><span class=
- "command"><strong>autoreconf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Автоматически запускает <span class=
- "command"><strong>autoconf</strong></span>,
- <span class=
- "command"><strong>autoheader</strong></span>,
- <span class=
- "command"><strong>aclocal</strong></span>,
- <span class=
- "command"><strong>automake</strong></span>,
- <span class=
- "command"><strong>gettextize</strong></span> и
- <span class=
- "command"><strong>libtoolize</strong></span> в
- правильном порядке, чтобы сэкономить время, при
- внесении изменений в файлы шаблонов <span class=
- "command"><strong>autoconf</strong></span> и
- <span class=
- "command"><strong>automake</strong></span>.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="autoscan" name="autoscan"></a><span class=
- "term"><span class=
- "command"><strong>autoscan</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Помогает создать файл <code class=
- "filename">configure.in</code> для пакета
- программного обеспечения; проверяет исходные файлы
- в дереве каталогов, ищет в них распространенные
- проблемы с переносимостью и создает файл
- <code class="filename">configure.scan</code>,
- который является предварительным файлом
- <code class="filename">configure.in</code> для
- пакета.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="autoupdate" name=
- "autoupdate"></a><span class="term"><span class=
- "command"><strong>autoupdate</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет файл <code class=
- "filename">configure.in</code>, вызывающий макросы
- <span class=
- "command"><strong>autoconf</strong></span> по их
- старым именам для использования текущих имен
- макросов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifnames" name="ifnames"></a><span class=
- "term"><span class=
- "command"><strong>ifnames</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Помогает при написании файла <code class=
- "filename">configure.in</code> для пакета; выводит
- идентификаторы, которые использует пакет в условных
- выражениях препроцессора C. (Если пакет уже был
- настроен для некоторой переносимости, эта программа
- может помочь определить, что нужно проверить
- сценарию <span class=
- "command"><strong>configure</strong></span>. Он
- также может заполнить пробелы в файле <code class=
- "filename">configure.in</code>, сгенерированном
- командой <span class=
- "command"><strong>autoscan</strong></span>.)
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-automake" name=
- "ch-system-automake"></a>8.46. Automake-1.16.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Automake содержит программы генерации Makefile для
- использования с Autoconf.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1 SBU
- (около 1.6 SBU с тестами)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">115
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.46.1. Установка пакета Automake
- </h3>
- <p>
- Подготовьте Automake к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Использование четырех параллельных заданий ускоряет
- тестирование даже на системах с меньшим количеством
- логических ядер из-за внутренних задержек в отдельных тестах.
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class="command">make <em class=
- "replaceable"><code>-j$(($(nproc)&gt;4?$(nproc):4))</code></em> check</kbd></pre>
- <p>
- Замените <em class="replaceable"><code>$((...))</code></em>
- количеством логических ядер, которые вы хотите использовать,
- если вы не планируете использовать все.
- </p>
- <p>
- Известно, что тест t/subobj.sh не проходит.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-automake" name=
- "contents-automake"></a>8.46.2. Содержимое пакета Automake
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">aclocal,
- aclocal-1.16 (жестко связан с aclocal), automake, и
- automake-1.16 (жестко связан с automake)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/aclocal-1.16,
- /usr/share/automake-1.16, и
- /usr/share/doc/automake-1.16.5</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10103" name="idm10103"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="aclocal" name="aclocal"></a><span class=
- "term"><span class=
- "command"><strong>aclocal</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует файлы <code class=
- "filename">aclocal.m4</code> на основе содержимого
- файла <code class="filename">configure.in</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="aclocalversion" name=
- "aclocalversion"></a><span class=
- "term"><span class="command"><strong>aclocal-1.16</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>aclocal</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="automake" name="automake"></a><span class=
- "term"><span class=
- "command"><strong>automake</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для автоматического создания
- <code class="filename">Makefile.in</code> из файлов
- <code class="filename">Makefile.am</code> [Чтобы
- создать все файлы <code class=
- "filename">Makefile.in</code> запустите эту
- программу в каталоге верхнего уровня. Сканируя файл
- <code class="filename">configure.in</code>, он
- автоматически находит все подходящие файлы
- <code class="filename">Makefile.am</code> и создает
- соответствующий <code class=
- "filename">Makefile.in</code>.]
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="automake-version" name=
- "automake-version"></a><span class=
- "term"><span class=
- "command"><strong>automake-1.16</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>automake</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-openssl" name=
- "ch-system-openssl"></a>8.47. OpenSSL-3.2.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет OpenSSL содержит инструменты управления и библиотеки,
- относящиеся к криптографии. Они полезны для предоставления
- криптографических функций другим пакетам, таким как OpenSSH,
- приложениям электронной почты и веб-браузерам (для доступа к
- сайтам по HTTPS).
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1.8 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">805
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.47.1. Установка пакета OpenSSL
- </h3>
- <p>
- Подготовьте OpenSSL к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./config --prefix=/usr \
- --openssldir=/etc/ssl \
- --libdir=lib \
- shared \
- zlib-dynamic</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">HARNESS_JOBS=<em class=
- "replaceable"><code>$(nproc)</code></em> make test</kbd></pre>
- <p>
- Известно, что один тест, 30-test_afalg.t, завершится ошибкой,
- если в ядре хоста не включен параметр <code class=
- "option">CONFIG_CRYPTO_USER_API_SKCIPHER</code> или
- отсутствуют какие-либо опции, обеспечивающих реализацию AES с
- CBC (например, комбинация <code class=
- "option">CONFIG_CRYPTO_AES</code> и <code class=
- "option">CONFIG_CRYPTO_CBC</code> или <code class=
- "option">CONFIG_CRYPTO_AES_NI_INTEL</code>, если процессор
- поддерживает AES-NI). В случае неудачи его можно смело
- игнорировать.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
-make MANSUFFIX=ssl install</kbd></pre>
- <p>
- Добавьте версию к имени каталога документации, чтобы
- структура соответствовала другим пакетам:
- </p>
- <pre class="userinput"><kbd class=
- "command">mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.2.1</kbd></pre>
- <p>
- По желанию, установите дополнительную документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -vfr doc/* /usr/share/doc/openssl-3.2.1</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Вы должны обновить OpenSSL, когда будет выпущена новая
- версия, исправляющая уязвимости. Начиная с OpenSSL 3.0.0,
- схема управления версиями OpenSSL следует формату
- MAJOR.MINOR.PATCH. Совместимость API/ABI гарантируется для
- одной и той же ОСНОВНОЙ (MAJOR) версии. Поскольку LFS
- устанавливает только общие библиотеки, нет необходимости
- перекомпилировать пакеты, которые ссылаются на <code class=
- "filename">libcrypto.so</code> или <code class=
- "filename">libssl.so</code>, <span class="emphasis"><em>при
- обновлении до версии с тем же ОСНОВНЫМ номером
- версии</em></span>.
- </p>
- <p>
- Все запущенные программы, связанные с этими библиотеками,
- после обновления необходимо остановить и перезапустить. Для
- получения более подробной информации ознакомьтесь с
- соответствующей записью в <a class="xref" href=
- "#pkgmgmt-upgrade-issues" title=
- "8.2.1. Проблемы с обновлением">Раздел&nbsp;8.2.1,
- «Проблемы с обновлением»</a>.
- </p>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-openssl" name="contents-openssl"></a>8.47.2.
- Содержимое пакета OpenSSL
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">c_rehash и
- openssl</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libcrypto.so и
- libssl.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/ssl, /usr/include/openssl,
- /usr/lib/engines и /usr/share/doc/openssl-3.2.1</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10199" name="idm10199"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="c_rehash" name="c_rehash"></a><span class=
- "term"><span class=
- "command"><strong>c_rehash</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- это <span class="application">Perl</span> скрипт,
- который сканирует все файлы в каталоге и добавляет
- символические ссылки к их хеш-значениям.
- Использование <span class=
- "command"><strong>c_rehash</strong></span>
- считается устаревшим и должно быть заменено
- командой <span class="command"><strong>openssl
- rehash</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="openssl-prog" name=
- "openssl-prog"></a><span class="term"><span class=
- "command"><strong>openssl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- это инструмент командной строки для использования
- различных криптографических функций библиотеки
- <span class="application">OpenSSL</span> из
- оболочки. Его можно использовать для различных
- функций, которые задокументированы в <a class=
- "ulink" href=
- "https://man.archlinux.org/man/openssl.1">openssl(1)</a>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libcrypto" name="libcrypto"></a><span class=
- "term"><code class=
- "filename">libcrypto.so</code></span>
- </p>
- </td>
- <td>
- <p>
- реализует широкий спектр криптографических
- алгоритмов, используемых в различных
- интернет-стандартах. Услуги, предоставляемые этой
- библиотекой, используют <span class=
- "application">OpenSSL</span>-реализацию SSL, TLS и
- S/MIME, а также для реализации <span class=
- "application">OpenSSH</span>, <span class=
- "application">OpenPGP</span> и других
- криптографических стандартов.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libssl" name="libssl"></a><span class=
- "term"><code class=
- "filename">libssl.so</code></span>
- </p>
- </td>
- <td>
- <p>
- реализует протокол безопасности транспортного
- уровня (TLS v1). Он предоставляет богатый API,
- документацию по которому можно найти в руководстве
- <a class="ulink" href=
- "https://man.archlinux.org/man/ssl.7">ssl(7)</a>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-kmod" name="ch-system-kmod"></a>8.48.
- Kmod-31
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Kmod содержит библиотеки и утилиты для загрузки модулей
- ядра.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">12 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.48.1. Установка пакета Kmod
- </h3>
- <p>
- Подготовьте Kmod к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --sysconfdir=/etc \
- --with-openssl \
- --with-xz \
- --with-zstd \
- --with-zlib</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-openssl</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет Kmod обрабатывать сигнатуры
- PKCS7 для модулей ядра.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-xz</code></em>, <em class=
- "parameter"><code>--with-zlib</code></em>, и <em class=
- "parameter"><code>--with-zstd</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры позволяют Kmod обрабатывать сжатые модули
- ядра.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Набору тестов этого пакета необходимы необработанные
- заголовочные файлы ядра (а не <span class=
- "quote">«<span class="quote">очищенные</span>»</span>,
- установленных ранее), это выходит за рамки LFS.
- </p>
- <p>
- Установите пакет и создайте символические ссылки для
- совместимости с Module-Init-Tools (пакетом, который ранее
- обрабатывал модули ядра Linux):
- </p>
- <pre class="userinput"><kbd class="command">make install
-
-for target in depmod insmod modinfo modprobe rmmod; do
- ln -sfv ../bin/kmod /usr/sbin/$target
-done
-
-ln -sfv kmod /usr/bin/lsmod</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-kmod" name="contents-kmod"></a>8.48.2.
- Содержимое пакета Kmod
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">depmod (ссылка
- на kmod), insmod (ссылка на kmod), kmod, lsmod (ссылка на
- kmod), modinfo (ссылка на kmod), modprobe (ссылка на
- kmod) и rmmod (ссылка на kmod)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libkmod.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10286" name="idm10286"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="depmod" name="depmod"></a><span class=
- "term"><span class=
- "command"><strong>depmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файл зависимостей на основе символов
- найденных в существующем наборе модулей; этот файл
- используется программой <span class=
- "command"><strong>modprobe</strong></span> для
- автоматической загрузки необходимых модулей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="insmod" name="insmod"></a><span class=
- "term"><span class=
- "command"><strong>insmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает загружаемый модуль в работающее ядро
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="kmod" name="kmod"></a><span class=
- "term"><span class=
- "command"><strong>kmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает и выгружает модули ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsmod" name="lsmod"></a><span class=
- "term"><span class=
- "command"><strong>lsmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Список загруженных в данный момент модулей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="modinfo" name="modinfo"></a><span class=
- "term"><span class=
- "command"><strong>modinfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет объектный файл, связанный с модулем ядра,
- и отображает всю информацию, которую он смог
- собрать.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="modprobe" name="modprobe"></a><span class=
- "term"><span class=
- "command"><strong>modprobe</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Использует файл зависимостей, созданный
- <span class="command"><strong>depmod</strong></span>,
- для автоматической загрузки соответствующих модулей
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rmmod" name="rmmod"></a><span class=
- "term"><span class=
- "command"><strong>rmmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выгружает модули из работающего ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libkmod" name="libkmod"></a><span class=
- "term"><code class="filename">libkmod</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека используемая другими программами для
- загрузки и выгрузки модулей ядра
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libelf" name="ch-system-libelf"></a>8.49.
- Libelf из Elfutils-0.190
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Libelf — это библиотека для обработки файлов ELF (Executable
- and Linkable Format - формат исполняемых и связываемых
- файлов).
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">124
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.49.1. Установка пакета Libelf
- </h3>
- <p>
- Libelf является частью пакета elfutils-0.190. Используйте
- elfutils-0.190.tar.bz2 в качестве исходного архива.
- </p>
- <p>
- Подготовьте Libelf к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-debuginfod \
- --enable-libdebuginfod=dummy</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите только Libelf:
- </p>
- <pre class="userinput"><kbd class=
- "command">make -C libelf install
-install -vm644 config/libelf.pc /usr/lib/pkgconfig
-rm /usr/lib/libelf.a</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-elfutils" name=
- "contents-elfutils"></a>8.49.2. Содержимое пакета Libelf
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libelf.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/elfutils</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10382" name="idm10382"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libelf" name="libelf"></a><span class=
- "term"><code class=
- "filename">libelf.so</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции API для обработки объектных файлов
- ELF
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libffi" name="ch-system-libffi"></a>8.50.
- Libffi-3.4.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Библиотека Libffi предоставляет переносимый высокоуровневый
- программный интерфейс для различных соглашений о вызовах. Это
- позволяет программисту вызывать любую функцию, указанную в
- описании интерфейса вызова во время выполнения.
- </p>
- <p>
- FFI расшифровывается как интерфейс внешних функций. FFI
- позволяет программе, написанной на одном языке, вызывать
- программу, написанную на другом языке. В частности, Libffi
- может обеспечить связь между интерпретатором, таким как Perl
- или Python, и подпрограммами общей библиотеки, написанными на
- C или C++.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1.8 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">11 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.50.1. Установка пакета Libffi
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Как и GMP, Libffi собирается с учетом оптимизаций,
- специфичных для используемого процессора. При сборке для
- другой системы измените значение параметра <em class=
- "parameter"><code>--with-gcc-arch=</code></em> в следующей
- команде на имя архитектуры, полностью реализованной
- процессором в этой системе. Если этого не сделать, все
- приложения, ссылающиеся на <code class=
- "filename">libffi</code>, будут вызывать ошибку
- <span class="quote">«<span class="quote">Illegal Operation
- - недопустимая операция</span>»</span>.
- </p>
- </div>
- <p>
- Подготовьте Libffi к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --disable-static \
- --with-gcc-arch=native</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-gcc-arch=native</code></em></span>
- </dt>
- <dd>
- <p>
- Убедитесь, что GCC оптимизируется для текущей системы.
- Если значение не указано, то архитектура системы
- угадывается и сгенерированный код может быть
- неправильным. Если сгенерированный код будет скопирован
- из родной системы в менее мощную, используйте
- архитектуру менее мощной системы в качестве параметра.
- Дополнительные сведения об альтернативных типах систем
- смотрите в <a class="ulink" href=
- "https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/x86-Options.html">
- описании параметров x86 в руководстве GCC</a>.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-libffi" name="contents-libffi"></a>8.50.2.
- Содержимое пакета Libffi
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libffi.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10438" name="idm10438"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libffi" name="libffi"></a><span class=
- "term"><code class="filename">libffi</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит внешний интерфейс для API-функций
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-Python" name="ch-system-Python"></a>8.51.
- Python-3.12.2
- </h2>
- </div>
- </div>
- </div>
- <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">1.8 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">485
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.51.1. Установка пакета Python 3
- </h3>
- <p>
- Подготовьте Python к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --enable-shared \
- --with-system-expat \
- --enable-optimizations</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-system-expat</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр выполняет линковку с системной версией
- <span class="application">Expat</span>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-optimizations</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет выполнить обширные, но
- отнимающие много времени, действия по оптимизации.
- Интерпретатор собирается дважды; тесты, выполненные при
- первой сборке, используются для улучшения финальной
- версии.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Запускать тесты на этом этапе не рекомендуется. Известно, что
- тесты зависают на неопределенный срок в неполной среде LFS.
- При желании тесты можно запустить повторно в конце этой главы
- или при переустановке Python 3 в BLFS. Чтобы запустить тесты,
- выполните команду <span class="command"><strong>make
- test</strong></span>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- В некоторых местах книги, мы используем команду <span class=
- "command"><strong>pip3</strong></span> для установки программ
- и модулей Python 3 от имени пользователя <code class=
- "systemitem">root</code>. Это противоречит рекомендации
- разработчиков Python: устанавливать пакеты в виртуальную
- среду или домашний каталог обычного пользователя (путем
- запуска <span class="command"><strong>pip3</strong></span> от
- имени этого пользователя). Поэтому всякий раз при
- использовании <span class=
- "command"><strong>pip3</strong></span> от имени пользователя
- <code class="systemitem">root</code> появляется многострочное
- предупреждение.
- </p>
- <p>
- Основная причина этой рекомендации — избежать конфликта с
- системным менеджером пакетов (например, <span class=
- "command"><strong>dpkg</strong></span>), но в LFS нет
- общесистемного менеджера пакетов, так что это не проблема.
- Кроме того, <span class=
- "command"><strong>pip3</strong></span> будет пытаться
- проверять наличие новой версии при каждом запуске. Поскольку
- разрешение доменных имен в среде chroot LFS еще не настроено,
- он не сможет проверить наличие новой версии и выдаст
- предупреждение.
- </p>
- <p>
- Как только мы загрузим систему LFS и настроим сетевое
- подключение, <span class=
- "command"><strong>pip3</strong></span> выдаст предупреждение,
- сообщающее пользователю о необходимости обновить его с
- помощью предварительно собранного whl-файла в PyPI (всякий
- раз, когда будет доступна новая версия). Но LFS считает
- <span class="command"><strong>pip3</strong></span> частью
- Python3, поэтому его не следует обновлять отдельно. Кроме
- того, обновление из whl-файла не соответствует цели проекта —
- собрать систему Linux из исходного кода, поэтому
- предупреждение о новой версии <span class=
- "command"><strong>pip3</strong></span> следует игнорировать.
- По желанию, вы можете отключить все предупреждение, создав
- следующий файл конфигурации:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/pip.conf &lt;&lt; EOF
-<code class="literal">[global]
-root-user-action = ignore
-disable-pip-version-check = true</code>
-EOF
-</kbd></pre>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- В LFS и BLFS мы собираем и устанавливаем модули Python с
- помощью команды <span class=
- "command"><strong>pip3</strong></span>. Убедитесь, что
- команда <span class="command"><strong>pip3
- install</strong></span> в обеих книгах запускаются от имени
- пользователя <code class="systemitem">root</code> (если
- только она не для виртуальной среды Python). Запуск
- <span class="command"><strong>pip3 install</strong></span>
- от имени пользователя без полномочий <code class=
- "systemitem">root</code> может показаться нормальным, но
- это приведет к тому, что установленный модуль будет
- недоступен для других пользователей.
- </p>
- <p>
- Команда <span class="command"><strong>pip3
- install</strong></span> по умолчанию не приведёт к
- автоматической переустановке уже установленного модуля.
- Чтобы использовать команду <span class=
- "command"><strong>pip3 install</strong></span> для
- обновления модуля (например, с meson-0.61.3 до
- meson-0.62.0), добавьте параметр <em class=
- "parameter"><code>--upgrade</code></em> в командную строку.
- Если по какой-то причине необходимо понизить версию модуля
- или переустановить ту же версию, используйте параметр
- <em class="parameter"><code>--force-reinstall
- --no-deps</code></em>.
- </p>
- </div>
- <p>
- По желанию установите предварительно отформатированную
- документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -dm755 /usr/share/doc/python-3.12.2/html
-
-tar --no-same-owner \
- -xvf ../python-3.12.2-docs-html.tar.bz2
-cp -R --no-preserve=mode python-3.12.2-docs-html/* \
- /usr/share/doc/python-3.12.2/html</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение команд установки документации:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><code class=
- "option">--no-same-owner</code> (tar) и <code class=
- "option">--no-preserve=mode</code> (cp)</span>
- </dt>
- <dd>
- <p>
- Параметры обеспечивают, что установленные файлы имеют
- корректные права и владельца файлов. Использование
- <span class="application">tar</span> без этих
- параметров приведет к установке файлов с правами
- пользователя создавшего архив и файлы будут иметь
- ограниченные разрешения.
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-python" name="contents-python"></a>8.51.2.
- Содержимое пакета Python 3
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">2to3, idle3,
- pip3, pydoc3, python3 и python3-config</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libpython3.12.so и libpython3.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/python3.12,
- /usr/lib/python3 и /usr/share/doc/python-3.12.2</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10536" name="idm10536"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="python-2to3" name=
- "python-2to3"></a><span class="term"><span class=
- "command"><strong>2to3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- программа на <span class=
- "application">Python</span>, которая читает файлы
- написанные на <span class="application">Python
- 2.x</span>, применяет к ним серию изменений и
- переводит их в валидный код <span class=
- "application">Python 3.x</span>.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="idle3" name="idle3"></a><span class=
- "term"><span class=
- "command"><strong>idle3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- скрипт-обертка, который открывает графический
- редактор с поддержкой <span class=
- "application">Python</span>. Для запуска этого
- скрипта, перед установкой Python необходимо
- установить <span class="application">Tk</span>,
- чтобы модуль Tkinter Python был собран.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pip3" name="pip3"></a><span class=
- "term"><span class=
- "command"><strong>pip3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Установщик пакетов для Python. Вы можете
- использовать pip для установки пакетов из каталога
- PyPI (Python Package Index) и других источников.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pydoc3" name="pydoc3"></a><span class=
- "term"><span class=
- "command"><strong>pydoc3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- инструмент документации <span class=
- "application">Python</span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="python3" name="python3"></a><span class=
- "term"><span class=
- "command"><strong>python3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- это интерпретатор для Python, интерпретируемый,
- интерактивный, объектно-ориентированный язык
- программирования
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-flit-core" name=
- "ch-system-flit-core"></a>8.52. Flit-Core-3.9.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Flit-core — это часть Flit, предназначенная для сборки
- дистрибутива (инструмента для упаковки простых модулей
- Python).
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.6
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.52.1. Установка пакета Flit-Core
- </h3>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --no-user --find-links dist flit_core</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров конфигурации и команд
- pip3:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><span class=
- "command"><strong>wheel</strong></span></span>
- </dt>
- <dd>
- <p>
- Эта команда создает архив wheel для этого пакета.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>-w
- dist</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает pip поместить созданный архив в каталог
- <code class="filename">dist</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--no-cache-dir</code></em></span>
- </dt>
- <dd>
- <p>
- Не позволяет pip копировать созданный wheel-пакет в
- каталог <code class="filename">/root/.cache/pip</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><span class=
- "command"><strong>install</strong></span></span>
- </dt>
- <dd>
- <p>
- Эта команда устанавливает пакет.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--no-build-isolation</code></em>,
- <em class="parameter"><code>--no-deps</code></em> и
- <em class="parameter"><code>--no-index</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры предотвращают получение файлов из
- онлайн-репозитория пакетов (PyPI). Если пакеты
- установлены в правильном порядке, то нет необходимости
- загружать какие-либо файлы; эти параметры усиливают
- безопасность в случае ошибки пользователя.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--find-links dist</code></em></span>
- </dt>
- <dd>
- <p>
- Указывает pip искать архивы wheel в каталоге
- <code class="filename">dist</code>.
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-flit-core" name=
- "contents-flit-core"></a>8.52.2. Содержимое пакета Flit-Core
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/flit_core и
- /usr/lib/python3.12/site-packages/flit_core-3.9.0.dist-info</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-wheel" name="ch-system-wheel"></a>8.53.
- Wheel-0.42.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Wheel — это библиотека Python, которая является эталонной
- реализацией стандарта упаковки программ на языке Python.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.5
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.53.1. Установка пакета Wheel
- </h3>
- <p>
- Скомпилируйте Wheel с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- Установите Wheel:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --find-links=dist wheel</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-wheel" name="contents-wheel"></a>8.53.2.
- Содержимое пакета Wheel
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">wheel</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/wheel и
- /usr/lib/python3.12/site-packages/wheel-0.42.0.dist-info</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10672" name="idm10672"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="wheel-wheel" name=
- "wheel-wheel"></a><span class="term"><span class=
- "command"><strong>wheel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- это утилита для распаковки, упаковки или
- преобразования wheel-архивов
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-setuptools" name=
- "ch-system-setuptools"></a>8.54. Setuptools-69.1.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Setuptools это инструмент, используемый для загрузки,
- сборки, установки, обновления и удаления пакетов Python.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">20 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.54.1. Установка пакета Setuptools
- </h3>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --find-links dist setuptools</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-setuptools" name=
- "contents-setuptools"></a>8.54.2. Содержимое пакета
- Setuptools
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/_distutils_hack,
- /usr/lib/python3.12/site-packages/pkg_resources,
- /usr/lib/python3.12/site-packages/setuptools, and
- /usr/lib/python3.12/site-packages/setuptools-69.1.0.dist-info</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-ninja" name="ch-system-ninja"></a>8.55.
- Ninja-1.11.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Ninja - небольшая система сборки ориентированная на скорость.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">75 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.55.1. Установка пакета Ninja
- </h3>
- <p>
- При запуске <span class=
- "command"><strong>ninja</strong></span> обычно использует
- максимальное количество процессов параллельно. По умолчанию
- это количество ядер в системе плюс два. В некоторых случаях
- это может привести к перегреву процессора или нехватке памяти
- в системе. Когда <span class=
- "command"><strong>ninja</strong></span> вызывается из
- командной строки, передача параметра -jN ограничит количество
- параллельных процессов. Некоторые пакеты встраивают
- выполнение <span class=
- "command"><strong>ninja</strong></span> и параметр -j не
- передается.
- </p>
- <p>
- Использование приведенной ниже <span class=
- "emphasis"><em>необязательной</em></span> процедуры позволяет
- пользователю ограничить количество параллельных процессов с
- помощью переменной окружения NINJAJOBS. <span class=
- "bold"><strong>Пример</strong></span>, настройки:
- </p>
- <pre class="screen">export NINJAJOBS=4</pre>
- <p>
- ограничит <span class="command"><strong>ninja</strong></span>
- четырьмя параллельными процессами.
- </p>
- <p>
- По желанию, добавьте возможность использовать переменную
- окружения NINJAJOBS, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/int Guess/a \
- int j = 0;\
- char* jobs = getenv( "NINJAJOBS" );\
- if ( jobs != NULL ) j = atoi( jobs );\
- if ( j &gt; 0 ) return j;\
-' src/ninja.cc</kbd></pre>
- <p>
- Соберите Ninja с помощью команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">python3 configure.py --bootstrap</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров сборки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--bootstrap</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр перестраивает Ninja под текущую систему.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class="command">./ninja ninja_test
-./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -vm755 ninja /usr/bin/
-install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
-install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-ninja" name="contents-ninja"></a>8.55.2.
- Содержимое пакета Ninja
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">ninja</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10757" name="idm10757"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="ninja" name="ninja"></a><span class=
- "term"><span class=
- "command"><strong>ninja</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- это система сборки Ninja
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-meson" name="ch-system-meson"></a>8.56.
- Meson-1.3.2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Meson — это система сборки с открытым исходным кодом,
- разработанная таким образом, чтобы быть очень быстрой и
- максимально удобной для пользователя.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">42 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.56.1. Установка пакета Meson
- </h3>
- <p>
- Скомпилируйте Meson с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- Для набора тестов требуются некоторые пакеты, выходящие за
- рамки LFS.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --find-links dist meson
-install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
-install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров установки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>-w
- dist</code></em></span>
- </dt>
- <dd>
- <p>
- Помещает собранный wheels в каталог <code class=
- "filename">dist</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--find-links dist</code></em></span>
- </dt>
- <dd>
- <p>
- Устанавливает wheels из каталога <code class=
- "filename">dist</code>.
- </p>
- </dd>
- </dl>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-meson" name="contents-meson"></a>8.56.2.
- Содержимое пакета Meson
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">meson</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/meson-1.3.2.dist-info
- и /usr/lib/python3.12/site-packages/mesonbuild</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10810" name="idm10810"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="meson" name="meson"></a><span class=
- "term"><span class=
- "command"><strong>meson</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Высокопроизводительная система сборки
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-coreutils" name=
- "ch-system-coreutils"></a>8.57. Coreutils-9.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Coreutils содержит основные утилиты, необходимые каждой
- операционной системе.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">175
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.57.1. Установка пакета Coreutils
- </h3>
- <p>
- Стандарт POSIX требует, чтобы программы пакета Coreutils
- правильно распознавали символы даже в случае, если
- используются многобайтовые локали. Следующий патч исправляет
- несоответствие этому требованию, а также другие ошибки,
- касающиеся интернационализации:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../coreutils-9.4-i18n-1.patch</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В этом патче было обнаружено много ошибок. Сообщая о новых
- ошибках разработчикам Coreutils, сначала проверьте,
- воспроизводятся ли эти ошибки без этого исправления.
- </p>
- </div>
- <p>
- Исправьте уязвимость в утилите <span class=
- "command"><strong>split</strong></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -e '/n_out += n_hold/,+4 s|.*bufsize.*|//&amp;|' \
- -i src/split.c</kbd></pre>
- <p>
- Теперь подготовьте Coreutils к компиляции:
- </p>
- <pre class="userinput"><kbd class="command">autoreconf -fiv
-FORCE_UNSAFE_CONFIGURE=1 ./configure \
- --prefix=/usr \
- --enable-no-install-program=kill,uptime</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><span class=
- "command"><strong>autoreconf</strong></span></span>
- </dt>
- <dd>
- <p>
- Патч для интернационализации изменил систему сборки
- пакета, поэтому файлы конфигурации необходимо
- сгенерировать заново.
- </p>
- </dd>
- <dt>
- <span class="term"><code class=
- "envar">FORCE_UNSAFE_CONFIGURE=1</code></span>
- </dt>
- <dd>
- <p>
- Эта переменная среды позволяет собрать пакет от имени
- пользователя <code class="systemitem">root</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-no-install-program=kill,uptime</code></em></span>
- </dt>
- <dd>
- <p>
- Назначение этого параметра — запретить Coreutils
- устанавливать программы, которые будут установлены
- другими пакетами.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Если вы не планируете запускать набор тестов, перейдите к
- разделу <span class="quote">«<span class="quote">Установка
- пакета</span>»</span>.
- </p>
- <p>
- Теперь набор тестов готов к запуску. Сначала запустите тесты,
- предназначенные для запуска от имени пользователя
- <code class="systemitem">root</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">make NON_ROOT_USERNAME=tester check-root</kbd></pre>
- <p>
- Мы собираемся выполнить остальные тесты от имени пользователя
- <code class="systemitem">tester</code>. Некоторые тесты
- требуют, чтобы пользователь был членом более чем одной
- группы. Чтобы эти тесты не были пропущены, добавьте временную
- группу и включите в неё пользователя <code class=
- "systemitem">tester</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">groupadd -g 102 dummy -U tester</kbd></pre>
- <p>
- Исправьте некоторые разрешения, чтобы пользователь без
- полномочий <code class="systemitem">root</code> мог
- компилировать и запускать тесты:
- </p>
- <pre class="userinput"><kbd class=
- "command">chown -R tester . </kbd></pre>
- <p>
- Теперь запустите тесты:
- </p>
- <pre class="userinput"><kbd class=
- "command">su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"</kbd></pre>
- <p>
- Удалить временную группу:
- </p>
- <pre class="userinput"><kbd class=
- "command">groupdel dummy</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Переместите программы туда, где они должны быть в
- соответствие со спецификациями FHS:
- </p>
- <pre class="userinput"><kbd class=
- "command">mv -v /usr/bin/chroot /usr/sbin
-mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
-sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-coreutils" name=
- "contents-coreutils"></a>8.57.2. Содержимое пакета Coreutils
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">[, b2sum,
- base32, base64, basename, basenc, cat, chcon, chgrp,
- chmod, chown, chroot, cksum, comm, cp, csplit, cut, date,
- dd, df, dir, dircolors, dirname, du, echo, env, expand,
- expr, factor, false, fmt, fold, groups, head, hostid, id,
- install, join, link, ln, logname, ls, md5sum, mkdir,
- mkfifo, mknod, mktemp, mv, nice, nl, nohup, nproc,
- numfmt, od, paste, pathchk, pinky, pr, printenv, printf,
- ptx, pwd, readlink, realpath, rm, rmdir, runcon, seq,
- sha1sum, sha224sum, sha256sum, sha384sum, sha512sum,
- shred, shuf, sleep, sort, split, stat, stdbuf, stty, sum,
- sync, tac, tail, tee, test, timeout, touch, tr, true,
- truncate, tsort, tty, uname, unexpand, uniq, unlink,
- users, vdir, wc, who, whoami и yes</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libstdbuf.so
- (in /usr/libexec/coreutils)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/libexec/coreutils</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm10904" name="idm10904"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="lbracket" name="lbracket"></a><span class=
- "term"><span class=
- "command"><strong>[</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это команда /usr/bin/[, которая является синонимом
- команды <span class=
- "command"><strong>test</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="base32" name="base32"></a><span class=
- "term"><span class=
- "command"><strong>base32</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Кодирует и декодирует данные в соответствии со
- спецификацией base32 (RFC 4648)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="base64" name="base64"></a><span class=
- "term"><span class=
- "command"><strong>base64</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Кодирует и декодирует данные в соответствии со
- спецификацией base64 (RFC 4648)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="b2sum" name="b2sum"></a><span class=
- "term"><span class=
- "command"><strong>b2sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы BLAKE2
- (512-битные)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="basename" name="basename"></a><span class=
- "term"><span class=
- "command"><strong>basename</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет любой путь и заданный суффикс из имени
- файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="basenc" name="basenc"></a><span class=
- "term"><span class=
- "command"><strong>basenc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Кодирует или декодирует данные с использованием
- различных алгоритмов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cat" name="cat"></a><span class=
- "term"><span class=
- "command"><strong>cat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Присоединяет файлы к стандартному выходному потоку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chcon" name="chcon"></a><span class=
- "term"><span class=
- "command"><strong>chcon</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет контекст безопасности для файлов и
- каталогов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chgrp" name="chgrp"></a><span class=
- "term"><span class=
- "command"><strong>chgrp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет владельцев группы для файлов и директорий
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chmod" name="chmod"></a><span class=
- "term"><span class=
- "command"><strong>chmod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет разрешения каждого файла на заданный
- режим; режим может быть либо символьным
- представлением вносимых изменений, либо
- восьмеричным числом, представляющим новые
- разрешения.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chown" name="chown"></a><span class=
- "term"><span class=
- "command"><strong>chown</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет принадлежность файлов и директорий
- пользователю и/или группе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chroot" name="chroot"></a><span class=
- "term"><span class=
- "command"><strong>chroot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду с указанным каталогом в качестве
- корневого каталога <code class="filename">/</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cksum" name="cksum"></a><span class=
- "term"><span class=
- "command"><strong>cksum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит контрольную сумму Cyclic Redundancy Check
- (CRC) и количество байтов для каждого указанного
- файла.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="comm" name="comm"></a><span class=
- "term"><span class=
- "command"><strong>comm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает два отсортированных файла, выводя в три
- столбца уникальные и общие строки.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cp" name="cp"></a><span class=
- "term"><span class=
- "command"><strong>cp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="csplit" name="csplit"></a><span class=
- "term"><span class=
- "command"><strong>csplit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Разбивает заданный файл на несколько новых файлов,
- разделяя их в соответствии с заданными шаблонами
- или номерами строк и выводя количество байтов для
- каждого нового файла.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cut" name="cut"></a><span class=
- "term"><span class=
- "command"><strong>cut</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выдает участки строк, выбирая части в соответствии
- с заданными полями или позициями
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="date" name="date"></a><span class=
- "term"><span class=
- "command"><strong>date</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает текущее дату и время в заданном формате
- или устанавливает системные дату и время
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dd" name="dd"></a><span class=
- "term"><span class=
- "command"><strong>dd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует файл, используя заданный размер блока и
- количество, при необходимости выполняя
- преобразования на нем.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="df" name="df"></a><span class=
- "term"><span class=
- "command"><strong>df</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает объем доступного (и используемого)
- дискового пространства во всех смонтированных
- файловых системах или только в файловых системах,
- содержащих выбранные файлы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dir" name="dir"></a><span class=
- "term"><span class=
- "command"><strong>dir</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит содержимое заданного каталога (так же, как
- команда <span class=
- "command"><strong>ls</strong></span>)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dircolors" name="dircolors"></a><span class=
- "term"><span class=
- "command"><strong>dircolors</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит команды для установки переменной среды
- <code class="envar">LS_COLOR</code> для изменения
- цветовой схемы, используемой <span class=
- "command"><strong>ls</strong></span>.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dirname" name="dirname"></a><span class=
- "term"><span class=
- "command"><strong>dirname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Извлекает часть(части) каталога из
- заданного(заданных) имени(имён)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="du" name="du"></a><span class=
- "term"><span class=
- "command"><strong>du</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает объем дискового пространства,
- используемого текущим каталогом, каждым из заданных
- каталогов (включая все подкаталоги) или каждым из
- заданных файлов.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="echo" name="echo"></a><span class=
- "term"><span class=
- "command"><strong>echo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает указанные строки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="env" name="env"></a><span class=
- "term"><span class=
- "command"><strong>env</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду в модифицированной среде
- окружения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="expand" name="expand"></a><span class=
- "term"><span class=
- "command"><strong>expand</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Конвертирует символы табуляции в пробелы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="expr" name="expr"></a><span class=
- "term"><span class=
- "command"><strong>expr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вычисляет выражения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="factor" name="factor"></a><span class=
- "term"><span class=
- "command"><strong>factor</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит простые множители указанных целых чисел
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="false" name="false"></a><span class=
- "term"><span class=
- "command"><strong>false</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ничего не делает, указывает на неудачу; всегда
- завершается с кодом состояния, указывающим на сбой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fmt" name="fmt"></a><span class=
- "term"><span class=
- "command"><strong>fmt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Форматирует абзацы в указанных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fold" name="fold"></a><span class=
- "term"><span class=
- "command"><strong>fold</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет перенос строк в указанных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groups" name="groups"></a><span class=
- "term"><span class=
- "command"><strong>groups</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает о принадлежности пользователя к группам
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="head" name="head"></a><span class=
- "term"><span class=
- "command"><strong>head</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит первые десять строк (или заданное
- количество строк) каждого заданного файла.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hostid" name="hostid"></a><span class=
- "term"><span class=
- "command"><strong>hostid</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит числовой идентификатор хоста (в
- шестнадцатеричном формате)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="id" name="id"></a><span class=
- "term"><span class=
- "command"><strong>id</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит действующий идентификатор пользователя,
- идентификатор группы и принадлежность к группам для
- текущего или для указанного пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="install" name="install"></a><span class=
- "term"><span class=
- "command"><strong>install</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует файлы, одновременно устанавливая для них
- права доступа, и, если возможно, устанавливая для
- них владельца и группу
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="join" name="join"></a><span class=
- "term"><span class=
- "command"><strong>join</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет строки, которые имеют идентичные
- объединяемые поля в двух различных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="link" name="link"></a><span class=
- "term"><span class=
- "command"><strong>link</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает жесткую ссылку (с указанным именем) на файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ln" name="ln"></a><span class=
- "term"><span class=
- "command"><strong>ln</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает жесткие или мягкие (символические) ссылки
- между файлами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="logname" name="logname"></a><span class=
- "term"><span class=
- "command"><strong>logname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает имя входа текущего пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ls" name="ls"></a><span class=
- "term"><span class=
- "command"><strong>ls</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит список содержимого для каждого заданного
- каталога
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="md5sum" name="md5sum"></a><span class=
- "term"><span class=
- "command"><strong>md5sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы Message
- Digest 5 (MD5)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkdir" name="mkdir"></a><span class=
- "term"><span class=
- "command"><strong>mkdir</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает директории с указанными именами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfifo" name="mkfifo"></a><span class=
- "term"><span class=
- "command"><strong>mkfifo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает "именованный канал" "первым пришел — первым
- ушел" (FIFO), в нотации UNIX с заданными именами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mknod" name="mknod"></a><span class=
- "term"><span class=
- "command"><strong>mknod</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает узлы устройств с заданными именами; узел
- устройства представляет собой специальный
- символьный файл, специальный файл блока или FIFO.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mktemp" name="mktemp"></a><span class=
- "term"><span class=
- "command"><strong>mktemp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает временные файлы безопасным способом;
- используется в скриптах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mv" name="mv"></a><span class=
- "term"><span class=
- "command"><strong>mv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перемещает или переименовывает файлы или каталоги
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nice" name="nice"></a><span class=
- "term"><span class=
- "command"><strong>nice</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу с измененным приоритетом
- исполнения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nl" name="nl"></a><span class=
- "term"><span class=
- "command"><strong>nl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Нумерует строки в указанных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nohup" name="nohup"></a><span class=
- "term"><span class=
- "command"><strong>nohup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду, невосприимчивую к зависаниям, а
- ее вывод перенаправляется в файл журнала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nproc" name="nproc"></a><span class=
- "term"><span class=
- "command"><strong>nproc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит количество дочерних процессов, доступных
- для процесса.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="numfmt" name="numfmt"></a><span class=
- "term"><span class=
- "command"><strong>numfmt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует числа в или из удобочитаемых строк
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="od" name="od"></a><span class=
- "term"><span class=
- "command"><strong>od</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вывод дампа файла в восьмеричном и других форматах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="paste" name="paste"></a><span class=
- "term"><span class=
- "command"><strong>paste</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет указанные файлы, последовательно
- соединяя соответствующие строки рядом друг с
- другом, разделенные символами табуляции.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pathchk" name="pathchk"></a><span class=
- "term"><span class=
- "command"><strong>pathchk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет, являются ли имена файлов допустимыми или
- переносимыми
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pinky" name="pinky"></a><span class=
- "term"><span class=
- "command"><strong>pinky</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Легковесный клиент типа finger; выдает некоторую
- информацию о заданных пользователях
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pr" name="pr"></a><span class=
- "term"><span class=
- "command"><strong>pr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Разбивает файлы для печати на страницы и столбцы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="printenv" name="printenv"></a><span class=
- "term"><span class=
- "command"><strong>printenv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выдает значения переменных окружения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="printf" name="printf"></a><span class=
- "term"><span class=
- "command"><strong>printf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит аргументы в соответствии с заданным
- форматом, подобно функции C printf.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ptx" name="ptx"></a><span class=
- "term"><span class=
- "command"><strong>ptx</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает перестановочный индекс по содержимому
- указанных файлов с каждым ключевым словом в своем
- контексте
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pwd" name="pwd"></a><span class=
- "term"><span class=
- "command"><strong>pwd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает имя текущего рабочего каталога
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="readlink" name="readlink"></a><span class=
- "term"><span class=
- "command"><strong>readlink</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выдает значение указанной символической ссылки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="realpath" name="realpath"></a><span class=
- "term"><span class=
- "command"><strong>realpath</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Возвращает приведенное к обычному виду полное имя
- файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rm" name="rm"></a><span class=
- "term"><span class=
- "command"><strong>rm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет файлы или каталоги
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rmdir" name="rmdir"></a><span class=
- "term"><span class=
- "command"><strong>rmdir</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет каталоги, если они пусты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="runcon" name="runcon"></a><span class=
- "term"><span class=
- "command"><strong>runcon</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду с указанным контекстом
- безопасности
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="seq" name="seq"></a><span class=
- "term"><span class=
- "command"><strong>seq</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выдает последовательность чисел из указанного
- диапазона с указанным значением приращения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sha1sum" name="sha1sum"></a><span class=
- "term"><span class=
- "command"><strong>sha1sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы 160-битного
- алгоритма безопасного хеширования 1 (SHA1)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sha224sum" name="sha224sum"></a><span class=
- "term"><span class=
- "command"><strong>sha224sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы 224-битного
- алгоритма безопасного хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sha256sum" name="sha256sum"></a><span class=
- "term"><span class=
- "command"><strong>sha256sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы 256-битного
- алгоритма безопасного хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sha384sum" name="sha384sum"></a><span class=
- "term"><span class=
- "command"><strong>sha384sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы 384-битного
- алгоритма безопасного хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sha512sum" name="sha512sum"></a><span class=
- "term"><span class=
- "command"><strong>sha512sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или проверяет контрольные суммы 512-битного
- алгоритма безопасного хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="shred" name="shred"></a><span class=
- "term"><span class=
- "command"><strong>shred</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Многократно перезаписывает заданные файлы сложными
- шаблонами, что затрудняет восстановление данных.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="shuf" name="shuf"></a><span class=
- "term"><span class=
- "command"><strong>shuf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перемешивает строки текста
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sleep" name="sleep"></a><span class=
- "term"><span class=
- "command"><strong>sleep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Делает паузу на заданный промежуток времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sort" name="sort"></a><span class=
- "term"><span class=
- "command"><strong>sort</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сортирует строки в указанных файлах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="split" name="split"></a><span class=
- "term"><span class=
- "command"><strong>split</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Разбивает заданный файл на несколько частей в
- соответствии с указанным размером или количеством
- строк
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="stat" name="stat"></a><span class=
- "term"><span class=
- "command"><strong>stat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает статус файла или файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="stdbuf" name="stdbuf"></a><span class=
- "term"><span class=
- "command"><strong>stdbuf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команды с измененными операциями
- буферизации для своих стандартных потоков.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="stty" name="stty"></a><span class=
- "term"><span class=
- "command"><strong>stty</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает или сообщает настройки терминала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sum" name="sum"></a><span class=
- "term"><span class=
- "command"><strong>sum</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит контрольную сумму и количество блоков для
- каждого заданного файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sync" name="sync"></a><span class=
- "term"><span class=
- "command"><strong>sync</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сбрасывает буферы файловой системы; он
- принудительно записывает измененные блоки на диск и
- обновляет суперблок
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tac" name="tac"></a><span class=
- "term"><span class=
- "command"><strong>tac</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Конкатенация содержимого указанных файлов в
- обратном порядке
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tail" name="tail"></a><span class=
- "term"><span class=
- "command"><strong>tail</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит последние десять строк (или заданное
- количество строк) каждого указанного файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tee" name="tee"></a><span class=
- "term"><span class=
- "command"><strong>tee</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Считывает данные со стандартного потока ввода,
- записывает как в стандартный вывод, так и в
- указанные файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="test" name="test"></a><span class=
- "term"><span class=
- "command"><strong>test</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает значения и проверяет типы файловs
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="timeout" name="timeout"></a><span class=
- "term"><span class=
- "command"><strong>timeout</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду с ограничением по времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="touch" name="touch"></a><span class=
- "term"><span class=
- "command"><strong>touch</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет временные метки файлов, устанавливая время
- доступа и модификации данных файлов на текущее
- время; несуществующие файлы создаются с нулевой
- длиной
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tr" name="tr"></a><span class=
- "term"><span class=
- "command"><strong>tr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит, сжимает и удаляет заданные символы из
- стандартного потока
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="true" name="true"></a><span class=
- "term"><span class=
- "command"><strong>true</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ничего не делает, указывает на успешное выполнение
- операции; он всегда завершается с кодом состояния,
- указывающим на успех
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="truncate" name="truncate"></a><span class=
- "term"><span class=
- "command"><strong>truncate</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает или расширяет файл до указанного размера
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tsort" name="tsort"></a><span class=
- "term"><span class=
- "command"><strong>tsort</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет топологическую сортировку; записывает
- полностью упорядоченный список в соответствии с
- частичным упорядочением в данном файле
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tty" name="tty"></a><span class=
- "term"><span class=
- "command"><strong>tty</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает имя файла терминала, подключенного к
- стандартному вводу.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uname" name="uname"></a><span class=
- "term"><span class=
- "command"><strong>uname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает системную информацию
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unexpand" name="unexpand"></a><span class=
- "term"><span class=
- "command"><strong>unexpand</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует пробелы в табуляции
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uniq" name="uniq"></a><span class=
- "term"><span class=
- "command"><strong>uniq</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет все повторяющиеся копии уже имеющихся
- строк, кроме одной
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unlink" name="unlink"></a><span class=
- "term"><span class=
- "command"><strong>unlink</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет указанный файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="users" name="users"></a><span class=
- "term"><span class=
- "command"><strong>users</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает имена пользователей, вошедших в систему в
- данный момент
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vdir" name="vdir"></a><span class=
- "term"><span class=
- "command"><strong>vdir</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- То же, что <span class="command"><strong>ls
- -l</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="wc" name="wc"></a><span class=
- "term"><span class=
- "command"><strong>wc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает количество строк, слов и байт для каждого
- заданного файла, а также общее количество строк,
- если указано более одного файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="who" name="who"></a><span class=
- "term"><span class=
- "command"><strong>who</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает, кто вошел в систему
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="whoami" name="whoami"></a><span class=
- "term"><span class=
- "command"><strong>whoami</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает имя пользователя, соответствующее
- идентификатору текущего пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="yes" name="yes"></a><span class=
- "term"><span class=
- "command"><strong>yes</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Повторно выводит <code class="literal">y</code> или
- указанную строку, до тех пор, пока команда не будет
- завершена с помощью kill
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libstdbuf" name="libstdbuf"></a><span class=
- "term"><code class=
- "filename">libstdbuf</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека, используемая командой <span class=
- "command"><strong>stdbuf</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-check" name="ch-system-check"></a>8.58.
- Check-0.15.2
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Check - это фреймворк модульного тестирования для языка C.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU (около 1.6
- SBU с тестами)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">12 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.58.1. Установка пакета Check
- </h3>
- <p>
- Подготовить Check к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --disable-static</kbd></pre>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Когда компиляция будет завершена, запустите набор тестов:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make docdir=/usr/share/doc/check-0.15.2 install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-check" name="contents-check"></a>8.58.2.
- Содержимое пакета Check
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">checkmk</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libcheck.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm11684" name="idm11684"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="checkmk" name="checkmk"></a><span class=
- "term"><span class=
- "command"><strong>checkmk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сценарий Awk для генерации unit-тестов C, для
- использования с платформой модульного тестирования
- Check.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libcheck" name="libcheck"></a><span class=
- "term"><code class=
- "filename">libcheck.so</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, позволяющие вызывать Check из
- программы тестирования.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-diffutils" name=
- "ch-system-diffutils"></a>8.59. Diffutils-3.10
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Diffutils содержит программы, которые показывают
- различия между файлами или каталогами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">36 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.59.1. Установка пакета Diffutils
- </h3>
- <p>
- Подготовьте Diffutils к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-diffutils" name=
- "contents-diffutils"></a>8.59.2. Содержимое пакета Diffutils
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">cmp, diff,
- diff3, и sdiff</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm11733" name="idm11733"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="cmp" name="cmp"></a><span class=
- "term"><span class=
- "command"><strong>cmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает побайтно два файла и сообщает о любых
- различиях
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="diff" name="diff"></a><span class=
- "term"><span class=
- "command"><strong>diff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает два файла или каталога и сообщает, какие
- строки отличаются
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="diff3" name="diff3"></a><span class=
- "term"><span class=
- "command"><strong>diff3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сравнивает три файла построчно
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sdiff" name="sdiff"></a><span class=
- "term"><span class=
- "command"><strong>sdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет два файла и интерактивно выводит
- результат
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gawk" name="ch-system-gawk"></a>8.60.
- Gawk-5.3.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Gawk содержит программы для работы с текстовыми
- файлами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">42 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.60.1. Установка пакета Gawk
- </h3>
- <p>
- Во-первых, отредактируйте Makefile, чтобы некоторые ненужные
- файлы не были установлены
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i 's/extras//' Makefile.in</kbd></pre>
- <p>
- Подготовьте Gawk к компиляции:
- </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">chown -R tester .
-su tester -c "PATH=$PATH make check"</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -f /usr/bin/gawk-5.3.0
-make install</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение команды:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><span class="command"><strong>rm -f
- /usr/bin/gawk-5.3.0</strong></span></span>
- </dt>
- <dd>
- <p>
- Система сборки не будет пересоздавать жесткую ссылку
- <code class="filename">gawk-5.3.0</code>, если она
- существует. Удалите её, чтобы гарантировать, что
- предыдущая жесткая ссылка, созданная в <a class="xref"
- href="#ch-tools-gawk" title=
- "6.9. Gawk-5.3.0">Раздел&nbsp;6.9, «Gawk-5.3.0»</a>,
- будет обновлена.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В процессе установки уже создан <span class=
- "command"><strong>awk</strong></span> в виде символической
- ссылки на <span class="command"><strong>gawk</strong></span>,
- создайте также символическую ссылку на справочную страницу:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv gawk.1 /usr/share/man/man1/awk.1</kbd></pre>
- <p>
- По желанию, установите документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv /usr/share/doc/gawk-5.3.0
-cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.3.0</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gawk" name="contents-gawk"></a>8.60.2.
- Содержимое пакета Gawk
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">awk (ссылка на
- gawk), gawk и gawk-5.3.0</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">filefuncs.so,
- fnmatch.so, fork.so, inplace.so, intdiv.so, ordchr.so,
- readdir.so, readfile.so, revoutput.so, revtwoway.so,
- rwarray.so и time.so (все в /usr/lib/gawk)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/gawk, /usr/libexec/awk,
- /usr/share/awk и /usr/share/doc/gawk-5.3.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm11820" name="idm11820"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="awk" name="awk"></a><span class=
- "term"><span class=
- "command"><strong>awk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ссылка на <span class=
- "command"><strong>gawk</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gawk" name="gawk"></a><span class=
- "term"><span class=
- "command"><strong>gawk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа для работы с текстовыми файлами; это GNU
- реализация <span class=
- "command"><strong>awk</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gawk-version" name=
- "gawk-version"></a><span class="term"><span class=
- "command"><strong>gawk-5.3.0</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Жесткая ссылка на <span class=
- "command"><strong>gawk</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-findutils" name=
- "ch-system-findutils"></a>8.61. Findutils-4.9.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Findutils содержит программы для поиска файлов. Эти
- программы предназначены для поиска по всем файлам в дереве
- каталогов, а также для создания, обслуживания и поиска в базе
- данных (часто быстрее, чем рекурсивный поиск, но ненадежно,
- если база данных давно не обновлялась).Findutils также
- предоставляет программу <span class=
- "command"><strong>xargs</strong></span>, которую можно
- использовать для запуска указанной команды для каждого файла,
- выбранного при поиске.
- </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">51 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.61.1. Установка пакета Findutils
- </h3>
- <p>
- Подготовьте Findutils к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --localstatedir=/var/lib/locate</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--localstatedir</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр перемещает базу данных команды
- <span class="command"><strong>locate</strong></span> в
- <code class="filename">/var/lib/locate</code>, что
- соответствует расположению, совместимому со стандартом
- FHS.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class="command">chown -R tester .
-su tester -c "PATH=$PATH make check"</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-findutils" name=
- "contents-findutils"></a>8.61.2. Содержимое пакета Findutils
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Installed programs:</strong>
- <span class="segbody">Установленные программы</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/var/lib/locate</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm11891" name="idm11891"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="find" name="find"></a><span class=
- "term"><span class=
- "command"><strong>find</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск в заданных каталогах файлов,
- соответствующих критериям
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="locate" name="locate"></a><span class=
- "term"><span class=
- "command"><strong>locate</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск по базе данных имен файлов и
- сообщает об именах, которые содержат заданную
- строку или соответствуют заданному шаблону.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="updatedb" name="updatedb"></a><span class=
- "term"><span class=
- "command"><strong>updatedb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет базу данных <span class=
- "command"><strong>locate</strong></span>; сканирует
- всю файловую систему (включая другие файловые
- системы, которые в настоящее время смонтированы,
- если не указано иное) и записывает найденные имена
- файлов в базу данных
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xargs" name="xargs"></a><span class=
- "term"><span class=
- "command"><strong>xargs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Может использоваться для применения заданной
- команды к списку файлов
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-groff" name="ch-system-groff"></a>8.62.
- Groff-1.23.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Groff содержит программы для обработки и форматирования
- текста и изображений.
- </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">107
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.62.1. Установка пакета Groff
- </h3>
- <p>
- Groff ожидает, что переменная окружения <code class=
- "envar">PAGE</code> будет содержать размер бумаги по
- умолчанию. Для пользователей из США подходит <em class=
- "parameter"><code>PAGE=letter</code></em>. Для других стран
- больше подойдет <em class=
- "parameter"><code>PAGE=A4</code></em>. Хотя формат бумаги по
- умолчанию настраивается во время компиляции, его можно
- переопределить позже, записав <span class=
- "quote">«<span class="quote">A4</span>»</span> или
- <span class="quote">«<span class=
- "quote">letter</span>»</span> в файл <code class=
- "filename">/etc/papersize</code>.
- </p>
- <p>
- Подготовьте Groff к компиляции:
- </p>
- <pre class="userinput"><kbd class="command">PAGE=<em class=
- "replaceable"><code>&lt;paper_size&gt;</code></em> ./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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-groff" name="contents-groff"></a>8.62.2.
- Содержимое пакета Groff
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">addftinfo,
- afmtodit, chem, eqn, eqn2graph, gdiffmk, glilypond,
- gperl, gpinyin, grap2graph, grn, grodvi, groff, groffer,
- grog, grolbp, grolj4, gropdf, grops, grotty, hpftodit,
- indxbib, lkbib, lookbib, mmroff, neqn, nroff, pdfmom,
- pdfroff, pfbtops, pic, pic2graph, post-grohtml, preconv,
- pre-grohtml, refer, roff2dvi, roff2html, roff2pdf,
- roff2ps, roff2text, roff2x, soelim, tbl, tfmtodit и
- troff</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/groff и
- /usr/share/doc/groff-1.23.0, /usr/share/groff</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm11965" name="idm11965"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="addftinfo" name="addftinfo"></a><span class=
- "term"><span class=
- "command"><strong>addftinfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает файл шрифта troff и добавляет некоторую
- дополнительную информацию о метрике шрифта,
- используемую системой <span class=
- "command"><strong>groff</strong></span>.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="afmtodit" name="afmtodit"></a><span class=
- "term"><span class=
- "command"><strong>afmtodit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создаёт файл шрифта для использования с
- <span class="command"><strong>groff</strong></span>
- и <span class=
- "command"><strong>grops</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chem" name="chem"></a><span class=
- "term"><span class=
- "command"><strong>chem</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Препроцессор Groff для создания диаграмм химических
- структур
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="eqn" name="eqn"></a><span class=
- "term"><span class=
- "command"><strong>eqn</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилирует описания уравнений, имеющихся внутри
- входных файлов troff, которые понятны <span class=
- "command"><strong>troff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="eqn2graph" name="eqn2graph"></a><span class=
- "term"><span class=
- "command"><strong>eqn2graph</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует a troff EQN (уравнение) во фрагмент
- изображения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gdiffmk" name="gdiffmk"></a><span class=
- "term"><span class=
- "command"><strong>gdiffmk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает различия между файлами groff/nroff/troff
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="glilypond" name="glilypond"></a><span class=
- "term"><span class=
- "command"><strong>glilypond</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует ноты, записанные на языке lilypond в
- язык groff
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gperl" name="gperl"></a><span class=
- "term"><span class=
- "command"><strong>gperl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Препроцессор для groff, позволяющий вставлять код
- perl в файлы groff
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gpinyin" name="gpinyin"></a><span class=
- "term"><span class=
- "command"><strong>gpinyin</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Препроцессор groff, позволяющий вставлять Pinyin
- (запись звуков китайского языка с помощью
- латинского алфавита) в файлы groff.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grap2graph" name=
- "grap2graph"></a><span class="term"><span class=
- "command"><strong>grap2graph</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует диаграммы grap во фрагмент растрового
- изображения (grap - это старый язык
- программирования Unix для создания диаграмм)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grn" name="grn"></a><span class=
- "term"><span class=
- "command"><strong>grn</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Препроцессор <span class=
- "command"><strong>groff</strong></span> для файлов
- gremlin
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grodvi" name="grodvi"></a><span class=
- "term"><span class=
- "command"><strong>grodvi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Драйвер для <span class=
- "command"><strong>groff</strong></span>, создающий
- выходные файлы в формате TeX dvi
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groff" name="groff"></a><span class=
- "term"><span class=
- "command"><strong>groff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Внешний интерфейс к системе форматирования
- документов groff; обычно он запускает программу
- <span class="command"><strong>troff</strong></span>
- и постпроцессор, соответствующий выбранному
- устройству
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="groffer" name="groffer"></a><span class=
- "term"><span class=
- "command"><strong>groffer</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает файлы groff и справочные страницы на
- терминалах X и tty
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grog" name="grog"></a><span class=
- "term"><span class=
- "command"><strong>grog</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает файлы и пытается определить, какие из
- параметров <span class=
- "command"><strong>groff</strong></span>
- <code class="option">-e</code>, <code class=
- "option">-man</code>, <code class=
- "option">-me</code>, <code class=
- "option">-mm</code>, <code class=
- "option">-ms</code>, <code class=
- "option">-p</code>, <code class="option">-s</code>,
- или <code class="option">-t</code> требуются для
- печати файлов, и указывает команду <span class=
- "command"><strong>groff</strong></span> с этими
- параметрами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grolbp" name="grolbp"></a><span class=
- "term"><span class=
- "command"><strong>grolbp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Драйвер <span class=
- "command"><strong>groff</strong></span> для
- принтеров Canon CAPSL (лазерные принтеры серий
- LBP-4 и LBP-8)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grolj4" name="grolj4"></a><span class=
- "term"><span class=
- "command"><strong>grolj4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Драйвер для <span class=
- "command"><strong>groff</strong></span> который
- выводит результат в формате PCL5, подходящем для
- принтера HP LaserJet 4
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gropdf" name="gropdf"></a><span class=
- "term"><span class=
- "command"><strong>gropdf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит выходные данные GNU <span class=
- "command"><strong>troff</strong></span> в формат
- PDF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grops" name="grops"></a><span class=
- "term"><span class=
- "command"><strong>grops</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит выходные данные GNU <span class=
- "command"><strong>troff</strong></span> в формат
- PostScript
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grotty" name="grotty"></a><span class=
- "term"><span class=
- "command"><strong>grotty</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит вывод GNU <span class=
- "command"><strong>troff</strong></span> в форму,
- подходящую для устройств, подобных пишущим
- машинкам.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hpftodit" name="hpftodit"></a><span class=
- "term"><span class=
- "command"><strong>hpftodit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файл шрифта для использования с
- <span class="command"><strong>groff
- -Tlj4</strong></span> из файла метрик шрифта для HP
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="indxbib" name="indxbib"></a><span class=
- "term"><span class=
- "command"><strong>indxbib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает инвертированный индекс для
- библиографических баз данных для указанного файла,
- используемый с <span class=
- "command"><strong>refer</strong></span>,
- <span class=
- "command"><strong>lookbib</strong></span>, и
- <span class="command"><strong>lkbib</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lkbib" name="lkbib"></a><span class=
- "term"><span class=
- "command"><strong>lkbib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск в библиографических базах данных
- ссылок, содержащих указанные ключи, и сообщает о
- любых найденных ссылках
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lookbib" name="lookbib"></a><span class=
- "term"><span class=
- "command"><strong>lookbib</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит приглашение при наличии стандартной ошибки
- (если устройство стандартного ввода не является
- терминалом), читает из устройства стандартного
- ввода строку, в которой находится набор ключевых
- слов, ищет в библиографической базе данных для
- указанного файла ссылки, содержащие эти ключевые
- слова, выводит все ссылки, найденные в стандартном
- выводе и повторяет этот процесс до тех пор, пока не
- завершится входной поток
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mmroff" name="mmroff"></a><span class=
- "term"><span class=
- "command"><strong>mmroff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Простой препроцессор для <span class=
- "command"><strong>groff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="neqn" name="neqn"></a><span class=
- "term"><span class=
- "command"><strong>neqn</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Форматирует уравнения для их вывода в формате
- American Standard Code for Information Interchange
- (ASCII)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nroff" name="nroff"></a><span class=
- "term"><span class=
- "command"><strong>nroff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Скрипт, который эмулирует команду <span class=
- "command"><strong>nroff</strong></span> с помощью
- <span class="command"><strong>groff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pdfmom" name="pdfmom"></a><span class=
- "term"><span class=
- "command"><strong>pdfmom</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это обертка над groff которая упрощает создание
- PDF-документов из файлов, отформатированных с
- помощью макросов mom.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pdfroff" name="pdfroff"></a><span class=
- "term"><span class=
- "command"><strong>pdfroff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает pdf-документы с помощью groff
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pfbtops" name="pfbtops"></a><span class=
- "term"><span class=
- "command"><strong>pfbtops</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует шрифт PostScript в формате <code class=
- "filename">.pfb</code> в формат ASCII
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pic" name="pic"></a><span class=
- "term"><span class=
- "command"><strong>pic</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилирует описания изображений, вставленных во
- входные файлы troff или TeX, в команды, понятные
- TeX или <span class=
- "command"><strong>troff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pic2graph" name="pic2graph"></a><span class=
- "term"><span class=
- "command"><strong>pic2graph</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует диаграмму PIC во фрагмент изображения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="post-grohtml" name=
- "post-grohtml"></a><span class="term"><span class=
- "command"><strong>post-grohtml</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит выходной поток GNU <span class=
- "command"><strong>troff</strong></span> в HTML
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="preconv" name="preconv"></a><span class=
- "term"><span class=
- "command"><strong>preconv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует кодировку входных файлов в формат,
- понимаемый GNU <span class=
- "command"><strong>troff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pre-grohtml" name=
- "pre-grohtml"></a><span class="term"><span class=
- "command"><strong>pre-grohtml</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит выходной поток GNU <span class=
- "command"><strong>troff</strong></span> в HTML
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="refer" name="refer"></a><span class=
- "term"><span class=
- "command"><strong>refer</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Копирует содержимое файла в стандартный вывод,
- кроме тех символов, которые расположены между
- <span class="emphasis"><em>.[</em></span> и
- <span class="emphasis"><em>.]</em></span> и
- интерпретируются как цитаты, и кроме строк между
- <span class="emphasis"><em>.R1</em></span> и
- <span class="emphasis"><em>.R2</em></span>, которые
- интерпретируются как команды, указывающие как
- цитаты должны быть обработаны
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2dvi" name="roff2dvi"></a><span class=
- "term"><span class=
- "command"><strong>roff2dvi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в формат DVI
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2html" name="roff2html"></a><span class=
- "term"><span class=
- "command"><strong>roff2html</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в формат HTML
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2pdf" name="roff2pdf"></a><span class=
- "term"><span class=
- "command"><strong>roff2pdf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в формат PDF
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2ps" name="roff2ps"></a><span class=
- "term"><span class=
- "command"><strong>roff2ps</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в файлы ps
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2text" name="roff2text"></a><span class=
- "term"><span class=
- "command"><strong>roff2text</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в текстовые файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="roff2x" name="roff2x"></a><span class=
- "term"><span class=
- "command"><strong>roff2x</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файлы roff в другие форматы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="soelim" name="soelim"></a><span class=
- "term"><span class=
- "command"><strong>soelim</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает файлы и заменяет строки вида <span class=
- "emphasis"><em>.so file</em></span> содержимым
- указанного файла <span class=
- "emphasis"><em>file</em></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tbl" name="tbl"></a><span class=
- "term"><span class=
- "command"><strong>tbl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилирует описания таблиц, вставленные во входные
- файлы troff, в команды, понимаемые <span class=
- "command"><strong>troff</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tfmtodit" name="tfmtodit"></a><span class=
- "term"><span class=
- "command"><strong>tfmtodit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файл шрифта для использования с
- <span class="command"><strong>groff
- -Tdvi</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="troff" name="troff"></a><span class=
- "term"><span class=
- "command"><strong>troff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Полностью совместим с Unix <span class=
- "command"><strong>troff</strong></span>; его
- следует вызывать с помощью команды <span class=
- "command"><strong>groff</strong></span>, которая
- также будет запускать препроцессоры и
- постпроцессоры в соответствующем порядке и с
- соответствующими параметрами
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-grub" name="ch-system-grub"></a>8.63.
- GRUB-2.12
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет GRUB содержит загрузчик операционной системы от проекта
- GNU (GRand Unified Bootloader).
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">166
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.63.1. Установка пакета GRUB
- </h3>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если ваша система поддерживает UEFI и вы хотите загрузить
- LFS с UEFI, вы можете пропустить установку этого пакета в
- LFS и установить GRUB с поддержкой UEFI (и его
- зависимости), следуя инструкции <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-efi.html">
- из BLFS</a>.
- </p>
- </div>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Сбросьте переменные окружения, которые могут повлиять на
- сборку:
- </p>
- <pre class="userinput"><kbd class=
- "command">unset {C,CPP,CXX,LD}FLAGS</kbd></pre>
- <p>
- Не пытайтесь <span class="quote">«<span class=
- "quote">настраивать</span>»</span> этот пакет с помощью
- пользовательских флагов компиляции. Этот пакет является
- загрузчиком. Низкоуровневые операции в исходном коде могут
- быть нарушены из-за агрессивной оптимизации.
- </p>
- </div>
- <p>
- Добавьте файл, отсутствующий в архиве релиза:
- </p>
- <pre class="userinput"><kbd class="command">echo <code class=
- "literal">depends bli part_gpt</code> &gt; grub-core/extra_deps.lst</kbd></pre>
- <p>
- Подготовьте GRUB к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --sysconfdir=/etc \
- --disable-efiemu \
- --disable-werror</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение новых параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-werror</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволяет завершить сборку с
- предупреждениями, появившимися в более поздних версиях
- Flex.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-efiemu</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр запрещает установку компонента, отключает
- функции и некоторые программы тестирования, которые не
- нужны для LFS.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Запуск набора тестов не рекомендуется. Большинство тестов
- зависят от пакетов, недоступных в ограниченной среде LFS.
- Если вы все равно хотите запустить тесты, выполните
- <span class="command"><strong>make check</strong></span>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</kbd></pre>
- <p>
- Создание загружаемой системы LFS с помощью GRUB будет
- обсуждаться в <a class="xref" href="#ch-bootable-grub" title=
- "10.4. Использование GRUB для настройки процесса загрузки">Раздел&nbsp;10.4,
- «Использование GRUB для настройки процесса загрузки»</a>.
- </p>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gRUB" name="contents-gRUB"></a>8.63.2.
- Содержимое пакета GRUB
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class=
- "segbody">grub-bios-setup, grub-editenv, grub-file,
- grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp,
- grub-macbless, grub-menulst2cfg, grub-mkconfig,
- grub-mkimage, grub-mklayout, grub-mknetdir,
- grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue,
- grub-mkstandalone, grub-ofpathname, grub-probe,
- grub-reboot, grub-render-label, grub-script-check,
- grub-set-default, grub-sparc64-setup и
- grub-syslinux2cfg</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/grub, /etc/grub.d,
- /usr/share/grub и /boot/grub (при первом запуске
- grub-install)</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm12394" name="idm12394"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="grub-bios-setup" name=
- "grub-bios-setup"></a><span class=
- "term"><span class=
- "command"><strong>grub-bios-setup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вспомогательная программа для <span class=
- "command"><strong>grub-install</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-editenv" name=
- "grub-editenv"></a><span class="term"><span class=
- "command"><strong>grub-editenv</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для редактирования блока окружения
- (environment block)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-file" name="grub-file"></a><span class=
- "term"><span class=
- "command"><strong>grub-file</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет, относится ли данный файл к указанному
- типу
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-fstest" name=
- "grub-fstest"></a><span class="term"><span class=
- "command"><strong>grub-fstest</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инструмент для отладки драйвера файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-glue-efi" name=
- "grub-glue-efi"></a><span class="term"><span class=
- "command"><strong>grub-glue-efi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет 32-разрядные и 64-разрядные бинарные
- файлы в один файл (для компьютеров Apple)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-install" name=
- "grub-install"></a><span class="term"><span class=
- "command"><strong>grub-install</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает GRUB на ваш диск
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-kbdcomp" name=
- "grub-kbdcomp"></a><span class="term"><span class=
- "command"><strong>grub-kbdcomp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Скрипт, который преобразует макет xkb в макет,
- распознаваемый GRUB
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-macbless" name=
- "grub-macbless"></a><span class="term"><span class=
- "command"><strong>grub-macbless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это аналог bless в стиле Mac для файловых систем
- HFS или HFS+ (команда <span class=
- "command"><strong>bless</strong></span> характерна
- для компьютеров Apple; она делает устройство
- загрузочным)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-menulst2cfg" name=
- "grub-menulst2cfg"></a><span class=
- "term"><span class=
- "command"><strong>grub-menulst2cfg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует GRUB Legacy <code class=
- "filename">menu.lst</code> в <code class=
- "filename">grub.cfg</code> для использования с GRUB
- 2
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkconfig" name=
- "grub-mkconfig"></a><span class="term"><span class=
- "command"><strong>grub-mkconfig</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует файл <code class=
- "filename">grub.cfg</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkimage" name=
- "grub-mkimage"></a><span class="term"><span class=
- "command"><strong>grub-mkimage</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создаёт загрузочный образ GRUB
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mklayout" name=
- "grub-mklayout"></a><span class="term"><span class=
- "command"><strong>grub-mklayout</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создаёт файл раскладки клавиатуры GRUB
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mknetdir" name=
- "grub-mknetdir"></a><span class="term"><span class=
- "command"><strong>grub-mknetdir</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подготавливает сетевой загрузочный каталог GRUB
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkpasswd-pbkdf2" name=
- "grub-mkpasswd-pbkdf2"></a><span class=
- "term"><span class=
- "command"><strong>grub-mkpasswd-pbkdf2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует зашифрованный пароль PBKDF2 для
- использования в меню загрузки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkrelpath" name=
- "grub-mkrelpath"></a><span class=
- "term"><span class="command"><strong>grub-mkrelpath</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает имена системных путей относительно корня
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkrescue" name=
- "grub-mkrescue"></a><span class="term"><span class=
- "command"><strong>grub-mkrescue</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает загрузочный образ GRUB, подходящий для
- дискеты, CDROM/DVD или USB-накопителя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-mkstandalone" name=
- "grub-mkstandalone"></a><span class=
- "term"><span class=
- "command"><strong>grub-mkstandalone</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует автономный образ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-ofpathname" name=
- "grub-ofpathname"></a><span class=
- "term"><span class=
- "command"><strong>grub-ofpathname</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вспомогательная программа, которая выводит путь к
- устройству GRUB
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-probe" name=
- "grub-probe"></a><span class="term"><span class=
- "command"><strong>grub-probe</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет информацию об устройстве для заданного
- пути или устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-reboot" name=
- "grub-reboot"></a><span class="term"><span class=
- "command"><strong>grub-reboot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает пункт меню в GRUB для загрузки по
- умолчанию, только для следующей
- загрузки(однократно)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-render-label" name=
- "grub-render-label"></a><span class=
- "term"><span class=
- "command"><strong>grub-render-label</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает .disk_label для компьютеров Apple Mac
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-script-check" name=
- "grub-script-check"></a><span class=
- "term"><span class=
- "command"><strong>grub-script-check</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет скрипт настройки GRUB на наличие
- синтаксических ошибок
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-set-default" name=
- "grub-set-default"></a><span class=
- "term"><span class=
- "command"><strong>grub-set-default</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает для GRUB загрузочную запись по
- умолчанию
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-sparc64-setup" name=
- "grub-sparc64-setup"></a><span class=
- "term"><span class=
- "command"><strong>grub-sparc64-setup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Вспомогательная программа для grub-setup
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="grub-syslinux2cfg" name=
- "grub-syslinux2cfg"></a><span class=
- "term"><span class=
- "command"><strong>grub-syslinux2cfg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует файл конфигурации syslinux в формат
- grub.cfg
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-gzip" name="ch-system-gzip"></a>8.64.
- Gzip-1.13
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Gzip содержит программы для сжатия и распаковки файлов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">21 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.64.1. Установка пакета Gzip
- </h3>
- <p>
- Подготовьте Gzip к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-gzip" name="contents-gzip"></a>8.64.2.
- Содержимое пакета Gzip
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">gunzip, gzexe,
- gzip, uncompress (жесткая ссылка на gunzip), zcat, zcmp,
- zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore и
- znew</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm12609" name="idm12609"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="gunzip" name="gunzip"></a><span class=
- "term"><span class=
- "command"><strong>gunzip</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает gzip-файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gzexe" name="gzexe"></a><span class=
- "term"><span class=
- "command"><strong>gzexe</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает самораспаковывающиеся исполняемые файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="gzip" name="gzip"></a><span class=
- "term"><span class=
- "command"><strong>gzip</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сжимает файлы, используя алгоритм Lempel-Ziv
- (LZ77).
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uncompress" name=
- "uncompress"></a><span class="term"><span class=
- "command"><strong>uncompress</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает сжатые файлы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zcat" name="zcat"></a><span class=
- "term"><span class=
- "command"><strong>zcat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Распаковывает указанные сжатые файлы в стандартный
- поток вывода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zcmp" name="zcmp"></a><span class=
- "term"><span class=
- "command"><strong>zcmp</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>cmp</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zdiff" name="zdiff"></a><span class=
- "term"><span class=
- "command"><strong>zdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>diff</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zegrep" name="zegrep"></a><span class=
- "term"><span class=
- "command"><strong>zegrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>egrep</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zfgrep" name="zfgrep"></a><span class=
- "term"><span class=
- "command"><strong>zfgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>fgrep</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zforce" name="zforce"></a><span class=
- "term"><span class=
- "command"><strong>zforce</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Принудительно устанавливает расширение <code class=
- "filename">.gz</code> всем сжатым файлам, чтобы
- <span class="command"><strong>gzip</strong></span>
- не сжимал их снова; это может быть полезно, когда
- имена файлов были обрезаны во время передачи файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zgrep" name="zgrep"></a><span class=
- "term"><span class=
- "command"><strong>zgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>grep</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zless" name="zless"></a><span class=
- "term"><span class=
- "command"><strong>zless</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>less</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zmore" name="zmore"></a><span class=
- "term"><span class=
- "command"><strong>zmore</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>more</strong></span> для
- архивированных файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="znew" name="znew"></a><span class=
- "term"><span class=
- "command"><strong>znew</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Повторно сжимает файлы из формата <span class=
- "command"><strong>compress</strong></span> в формат
- <span class="command"><strong>gzip</strong></span>
- — из <code class="filename">.Z</code> в
- <code class="filename">.gz</code>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-iproute2" name=
- "ch-system-iproute2"></a>8.65. IPRoute2-6.7.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет IPRoute2 содержит набор программ для базового и
- расширенного администрирования сетей IPv4.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">17 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.65.1. Установка пакета IPRoute2
- </h3>
- <p>
- Программа <span class="command"><strong>arpd</strong></span>,
- входящая в этот пакет, не будет собрана, поскольку зависит от
- Berkeley DB, которая не установлена в LFS. Однако каталог и
- справочная страница для <span class=
- "command"><strong>arpd</strong></span> все равно будут
- установлены. Предотвратить это можно, выполнив приведенные
- ниже команды.
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i /ARPD/d Makefile
-rm -fv man/man8/arpd.8</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make NETNS_RUN_DIR=/run/netns</kbd></pre>
- <p>
- Этот пакет не содержит рабочего набора тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make SBINDIR=/usr/sbin install</kbd></pre>
- <p>
- По желанию, установите документацию:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv /usr/share/doc/iproute2-6.7.0
-cp -v COPYING README* /usr/share/doc/iproute2-6.7.0</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-iproute2" name=
- "contents-iproute2"></a>8.65.2. Содержимое пакета IPRoute2
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bridge, ctstat
- (ссылка на lnstat), genl, ifstat, ip, lnstat, nstat,
- routel, rtacct, rtmon, rtpr, rtstat (ссылка на lnstat),
- ss и tc</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/iproute2, /usr/lib/tc и
- /usr/share/doc/iproute2-6.7.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm12760" name="idm12760"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bridge" name="bridge"></a><span class=
- "term"><span class=
- "command"><strong>bridge</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает сетевые мосты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ctstat" name="ctstat"></a><span class=
- "term"><span class=
- "command"><strong>ctstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита состояния подключения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="genl" name="genl"></a><span class=
- "term"><span class=
- "command"><strong>genl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Универсальный интерфейс утилиты netlink
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifstat" name="ifstat"></a><span class=
- "term"><span class=
- "command"><strong>ifstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает статистику интерфейса, включая
- количество переданных и полученных пакетов по
- интерфейсам.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ip" name="ip"></a><span class=
- "term"><span class=
- "command"><strong>ip</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Основной исполняемый файл. Он имеет несколько
- различных функций, в том числе эти:
- </p>
- <p>
- <span class="command"><strong>ip link <em class=
- "replaceable"><code>&lt;device&gt;</code></em></strong></span>
- позволяет пользователям просматривать состояние
- устройств и вносить изменения
- </p>
- <p>
- <span class="command"><strong>ip
- addr</strong></span> позволяет пользователям
- просматривать адреса и их свойства, добавлять новые
- адреса и удалять старые
- </p>
- <p>
- <span class="command"><strong>ip
- neighbor</strong></span> позволяет пользователям
- просматривать связи с соседями и их свойства,
- добавлять новые записи и удалять старые
- </p>
- <p>
- <span class="command"><strong>ip
- rule</strong></span> позволяет пользователям
- просматривать политики маршрутизации и изменять их
- </p>
- <p>
- <span class="command"><strong>ip
- route</strong></span> позволяет пользователям
- просматривать таблицу маршрутизации и изменять
- правила таблицы маршрутизации
- </p>
- <p>
- <span class="command"><strong>ip
- tunnel</strong></span> позволяет пользователям
- просматривать IP-туннели и их свойства, а также
- изменять их
- </p>
- <p>
- <span class="command"><strong>ip
- maddr</strong></span> позволяет пользователям
- просматривать multicast адреса и их свойства и
- изменять их
- </p>
- <p>
- <span class="command"><strong>ip
- mroute</strong></span> позволяет пользователям
- устанавливать, изменять или удалять multicast
- маршрутизацию.
- </p>
- <p>
- <span class="command"><strong>ip
- monitor</strong></span> позволяет пользователям
- постоянно отслеживать состояние устройств, адресов
- и маршрутов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lnstat" name="lnstat"></a><span class=
- "term"><span class=
- "command"><strong>lnstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет сетевую статистику Linux; это
- обобщенная и более полнофункциональная замена
- старой программы <span class=
- "command"><strong>rtstat</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nstat" name="nstat"></a><span class=
- "term"><span class=
- "command"><strong>nstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает сетевую статистику
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="routel" name="routel"></a><span class=
- "term"><span class=
- "command"><strong>routel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компонент <span class="command"><strong>ip
- route</strong></span> для просмотра таблиц
- маршрутизации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rtacct" name="rtacct"></a><span class=
- "term"><span class=
- "command"><strong>rtacct</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает содержимое <code class=
- "filename">/proc/net/rt_acct</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rtmon" name="rtmon"></a><span class=
- "term"><span class=
- "command"><strong>rtmon</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Мониторит изменения таблицы маршрутизации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rtpr" name="rtpr"></a><span class=
- "term"><span class=
- "command"><strong>rtpr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует вывод <span class="command"><strong>ip
- -o</strong></span> в удобочитаемую форму
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rtstat" name="rtstat"></a><span class=
- "term"><span class=
- "command"><strong>rtstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита состояния маршрута
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ss" name="ss"></a><span class=
- "term"><span class=
- "command"><strong>ss</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Аналогично команде <span class=
- "command"><strong>netstat</strong></span>
- показывает активные соединения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tc" name="tc"></a><span class=
- "term"><span class=
- "command"><strong>tc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Управление трафиком для реализаций качества
- обслуживания (QoS) и класса обслуживания (CoS)
- </p>
- <p>
- <span class="command"><strong>tc
- qdisc</strong></span> позволяет пользователям
- настроить дисциплину обработки очередей
- </p>
- <p>
- <span class="command"><strong>tc
- class</strong></span> позволяет пользователям
- настраивать классы, на основе планирования
- дисциплины обработки очередей
- </p>
- <p>
- <span class="command"><strong>tc
- filter</strong></span> позволяет пользователям
- настроить фильтрацию пакетов QOS/COS
- </p>
- <p>
- <span class="command"><strong>tc
- monitor</strong></span> может использоваться для
- просмотра изменений, внесенных в управление
- трафиком в ядре
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-kbd" name="ch-system-kbd"></a>8.66.
- Kbd-2.6.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Kbd содержит файлы таблиц клавиш, консольные шрифты и
- утилиты клавиатуры.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">34 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.66.1. Установка пакета Kbd
- </h3>
- <p>
- Поведение клавиш backspace и delete не согласуется между
- раскладками в пакете Kbd. Следующий патч исправляет эту
- проблему для раскладок i386:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../kbd-2.6.4-backspace-1.patch</kbd></pre>
- <p>
- После исправления клавиша backspace генерирует символ с кодом
- 127, а клавиша delete генерирует хорошо известную
- escape-последовательность.
- </p>
- <p>
- Удалите ненужную программу <span class=
- "command"><strong>resizecons</strong></span> (она требуется
- несуществующей svgalib для предоставления файлов видеорежима
- — для нормального использования <span class=
- "command"><strong>setfont</strong></span>, который правильно
- определяет размеры консоли) вместе с ее справочной страницей.
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
-sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in</kbd></pre>
- <p>
- Подготовьте Kbd для компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr --disable-vlock</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-vlock</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр предотвращает сборку утилиты vlock,
- поскольку для неё требуется библиотека PAM, которая
- недоступна в среде chroot.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Для некоторых языков (например белорусского) пакет Kbd не
- предоставляет подходящую раскладку, штатная раскладка
- <span class="quote">«<span class="quote">by</span>»</span>
- предполагает кодировку ISO-8859-5, а обычно используется
- раскладка CP1251. Пользователи таких языков должны отдельно
- загрузить рабочую раскладку.
- </p>
- </div>
- <p>
- По желанию, установите документацию::
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -R -v docs/doc -T /usr/share/doc/kbd-2.6.4</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-kbd" name="contents-kbd"></a>8.66.2.
- Содержимое пакета Kbd
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">chvt,
- deallocvt, dumpkeys, fgconsole, getkeycodes, kbdinfo,
- kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt,
- psfaddtable (ссылка на psfxtable), psfgettable (ссылка на
- psfxtable), psfstriptable (ссылка на psfxtable),
- psfxtable, setfont, setkeycodes, setleds, setmetamode,
- setvtrgb, showconsolefont, showkey, unicode_start и
- unicode_stop</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/consolefonts,
- /usr/share/consoletrans, /usr/share/keymaps,
- /usr/share/doc/kbd-2.6.4 и /usr/share/unimaps</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm12949" name="idm12949"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="chvt" name="chvt"></a><span class=
- "term"><span class=
- "command"><strong>chvt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет используемый виртуальный терминал
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="deallocvt" name="deallocvt"></a><span class=
- "term"><span class=
- "command"><strong>deallocvt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Освобождает неиспользуемые виртуальные терминалы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dumpkeys" name="dumpkeys"></a><span class=
- "term"><span class=
- "command"><strong>dumpkeys</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает дамп таблиц перевода клавиатуры
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fgconsole" name="fgconsole"></a><span class=
- "term"><span class=
- "command"><strong>fgconsole</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит номер активного виртуального терминала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getkeycodes" name=
- "getkeycodes"></a><span class="term"><span class=
- "command"><strong>getkeycodes</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит таблицу ядра соответствия сканкода и кода
- клавиши
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="kbdinfo" name="kbdinfo"></a><span class=
- "term"><span class=
- "command"><strong>kbdinfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Получает информацию о состоянии консоли
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="kbd_mode" name="kbd_mode"></a><span class=
- "term"><span class=
- "command"><strong>kbd_mode</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит или устанавливает режим клавиатуры
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="kbdrate" name="kbdrate"></a><span class=
- "term"><span class=
- "command"><strong>kbdrate</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает частоту повторных нажатий клавиш и
- задержки клавиатуры
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="loadkeys" name="loadkeys"></a><span class=
- "term"><span class=
- "command"><strong>loadkeys</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает таблицу преобразования клавиатуры
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="loadunimap" name=
- "loadunimap"></a><span class="term"><span class=
- "command"><strong>loadunimap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает таблицу ядра отображения символов юникода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mapscrn" name="mapscrn"></a><span class=
- "term"><span class=
- "command"><strong>mapscrn</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устаревшая программа, которая использовалась для
- загрузки определяемой пользователем таблицы
- соответствия выводимых символов в драйвер консоли;
- теперь эту функцию выполняет <span class=
- "command"><strong>setfont</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="openvt" name="openvt"></a><span class=
- "term"><span class=
- "command"><strong>openvt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу на новом виртуальном терминале
- (VT)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="psfaddtable" name=
- "psfaddtable"></a><span class="term"><span class=
- "command"><strong>psfaddtable</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Добавляет таблицу символов Unicode в консольный
- шрифт.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="psfgettable" name=
- "psfgettable"></a><span class="term"><span class=
- "command"><strong>psfgettable</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Извлекает встроенную таблицу символов Unicode из
- консольного шрифта.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="psfstriptable" name=
- "psfstriptable"></a><span class="term"><span class=
- "command"><strong>psfstriptable</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет встроенную таблицу символов Unicode из
- консольного шрифта.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="psfxtable" name="psfxtable"></a><span class=
- "term"><span class=
- "command"><strong>psfxtable</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обрабатывает таблицы символов Unicode для
- консольных шрифтов.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setfont" name="setfont"></a><span class=
- "term"><span class=
- "command"><strong>setfont</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет шрифты Enhanced Graphic Adapter (EGA) и
- Video Graphics Array (VGA), используемые в консоли
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setkeycodes" name=
- "setkeycodes"></a><span class="term"><span class=
- "command"><strong>setkeycodes</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает таблицу соответствия сканкодов ядра и
- кодов клавиш; это удобно, если на клавиатуре есть
- нестандартные клавиши
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setleds" name="setleds"></a><span class=
- "term"><span class=
- "command"><strong>setleds</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает значения флагов клавиатуры и
- индикаторов (обычно - светодиоды)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setmetamode" name=
- "setmetamode"></a><span class="term"><span class=
- "command"><strong>setmetamode</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Определяет обработку метаклавиши на клавиатуре
- (обычно, это клавиша Win)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setvtrgb" name="setvtrgb"></a><span class=
- "term"><span class=
- "command"><strong>setvtrgb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает цветовую схему консоли для всех
- виртуальных терминалов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="showconsolefont" name=
- "showconsolefont"></a><span class=
- "term"><span class=
- "command"><strong>showconsolefont</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает текущий шрифт экрана консоли EGA/VGA
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="showkey" name="showkey"></a><span class=
- "term"><span class=
- "command"><strong>showkey</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает сканкоды, код клавиши и код ASCII для
- клавиш, нажатых на клавиатуре
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unicode_start" name=
- "unicode_start"></a><span class="term"><span class=
- "command"><strong>unicode_start</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит клавиатуру и консоль в режим UNICODE. [Не
- используйте эту программу, если вы не используете
- файл раскладки для кодировки ISO-8859-1. Для других
- кодировок эта утилита выдает неправильные
- результаты].
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unicode_stop" name=
- "unicode_stop"></a><span class="term"><span class=
- "command"><strong>unicode_stop</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Возвращает клавиатуру и консоль из режима UNICODE
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-libpipeline" name=
- "ch-system-libpipeline"></a>8.67. Libpipeline-1.5.7
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Libpipeline содержит библиотеку для гибкого и удобного
- управления подпроцессами.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">10 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.67.1. Установка пакета Libpipeline
- </h3>
- <p>
- Подготовьте Libpipeline к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-libpipeline" name=
- "contents-libpipeline"></a>8.67.2. Содержимое пакета
- Libpipeline
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libpipeline.so</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13160" name="idm13160"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="libpipeline" name=
- "libpipeline"></a><span class="term"><code class=
- "filename">libpipeline</code></span>
- </p>
- </td>
- <td>
- <p>
- Эта библиотека используется для безопасного
- построения конвейеров между подпроцессами.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-make" name="ch-system-make"></a>8.68.
- Make-4.4.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Make содержит программу, управляющую генерацией
- исполняемых и других файлов, из исходного кода.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">13 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.68.1. Установка пакета Make
- </h3>
- <p>
- Подготовьте Make к компиляции:
- </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">chown -R tester .
-su tester -c "PATH=$PATH make check"</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-make" name="contents-make"></a>8.68.2.
- Содержимое пакета Make
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">make</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13202" name="idm13202"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="make" name="make"></a><span class=
- "term"><span class=
- "command"><strong>make</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Автоматически определяет, какие части пакета
- необходимо (пере)компилировать и запускает
- соответствующие команды.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-patch" name="ch-system-patch"></a>8.69.
- Patch-2.7.6
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Patch содержит программу для изменения или создания
- файлов путём наложение <span class="quote">«<span class=
- "quote">патча</span>»</span>, обычно, создаваемого программой
- <span class="command"><strong>diff</strong></span>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">12 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.69.1. Установка пакета Patch
- </h3>
- <p>
- Подготовьте Patch к компиляции:
- </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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-patch" name="contents-patch"></a>8.69.2.
- Содержимое пакета Patch
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">patch</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13246" name="idm13246"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="patch" name="patch"></a><span class=
- "term"><span class=
- "command"><strong>patch</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет файлы в соответствии с файлом исправления
- (патч обычно представляет собой список отличий,
- создаваемый с помощью программы <span class=
- "command"><strong>diff</strong></span>. Применяя их
- к исходным файлам, <span class=
- "command"><strong>patch</strong></span> создает
- исправленные версии.)
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-tar" name="ch-system-tar"></a>8.70.
- Tar-1.35
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Tar предоставляет возможность создавать tar архивы, а
- также производить с ними различные манипуляции. Tar может
- распаковать предварительно созданный архив, добавить или
- обновить файлы в нём, вернуть список файлов в архиве.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">43 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.70.1. Установка пакета Tar
- </h3>
- <p>
- Подготовьте Tar к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">FORCE_UNSAFE_CONFIGURE=1 \
-./configure --prefix=/usr</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><code class=
- "envar">FORCE_UNSAFE_CONFIGURE=1</code></span>
- </dt>
- <dd>
- <p>
- Этот параметр принудительно запускает тест для
- <code class="function">mknod</code> от имени
- пользователя <code class="systemitem">root</code>.
- Обычно считается опасным запускать этот тест от имени
- пользователя <code class="systemitem">root</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 check</kbd></pre>
- <p>
- Известно, что один тест, capabilities: binary store/restore,
- завершается ошибкой при запуске, потому что в LFS отсутствует
- selinux, он будет пропущен, если ядро хоста не поддерживает
- расширенные атрибуты или метки безопасности файловой системы,
- используемой для сборки LFS.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install
-make -C doc install-html docdir=/usr/share/doc/tar-1.35</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-tar" name="contents-tar"></a>8.70.2.
- Содержимое пакета Tar
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">tar</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/doc/tar-1.35</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13303" name="idm13303"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="tar" name="tar"></a><span class=
- "term"><span class=
- "command"><strong>tar</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает архивы, извлекает файлы и отображает
- содержимое архивов, также известных как Тарболл.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-texinfo" name=
- "ch-system-texinfo"></a>8.71. Texinfo-7.1
- </h2>
- </div>
- </div>
- </div>
- <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.3 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">139
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.71.1. Установка пакета Texinfo
- </h3>
- <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 check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- По желанию установите компоненты, входящие в пакет TeX::
- </p>
- <pre class="userinput"><kbd class=
- "command">make TEXMF=/usr/share/texmf install-tex</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>TEXMF=/usr/share/texmf</code></em></span>
- </dt>
- <dd>
- <p>
- Переменная makefile <code class="envar">TEXMF</code>
- содержит расположение корня дерева TeX, это
- понадобится, если, например, пакет TeX планируется
- установить позже.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Система документации использует простой текстовый файл для
- хранения списка пунктов меню. Файл находится в <code class=
- "filename">/usr/share/info/dir</code>. К сожалению, из-за
- случайных проблем в Makefile различных пакетов он иногда
- может не синхронизироваться с информационными страницами,
- установленными в системе. Если когда-либо потребуется
- пересоздать файл <code class=
- "filename">/usr/share/info/dir</code>, следующие
- необязательные команды решают эту задачу:
- </p>
- <pre class="userinput"><kbd class=
- "command">pushd /usr/share/info
- rm -v dir
- for f in *
- do install-info $f dir 2&gt;/dev/null
- done
-popd</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-texinfo" name="contents-texinfo"></a>8.71.2.
- Содержимое пакета Texinfo
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">info,
- install-info, makeinfo (ссылка на texi2any), pdftexi2dvi,
- pod2texi, texi2any, texi2dvi, texi2pdf, и texindex</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">MiscXS.so,
- Parsetexi.so и XSParagraph.so (все в
- /usr/lib/texinfo)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/texinfo и
- /usr/lib/texinfo</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13365" name="idm13365"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="info" name="info"></a><span class=
- "term"><span class=
- "command"><strong>info</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для чтения информационных страниц,
- которые похожи на справочные страницы, но гораздо
- подробнее описывают применение всех доступных
- параметров командной строки [Например, сравните
- <span class="command"><strong>man
- bison</strong></span> и <span class=
- "command"><strong>info bison</strong></span>.]
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="install-info" name=
- "install-info"></a><span class="term"><span class=
- "command"><strong>install-info</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для установки информационных страниц;
- он обновляет записи в индексном файле команды
- <span class="command"><strong>info</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="makeinfo" name="makeinfo"></a><span class=
- "term"><span class=
- "command"><strong>makeinfo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит исходные документы Texinfo в
- информационные страницы, обычный текст или HTML.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pdftexi2dvi" name=
- "pdftexi2dvi"></a><span class="term"><span class=
- "command"><strong>pdftexi2dvi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для форматирования документа Texinfo в
- файл Portable Document Format (PDF).
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pod2texi" name="pod2texi"></a><span class=
- "term"><span class=
- "command"><strong>pod2texi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует Pod в формат Texinfo
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="texi2any" name="texi2any"></a><span class=
- "term"><span class=
- "command"><strong>texi2any</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переводит исходную документацию Texinfo в различные
- другие форматы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="texi2dvi" name="texi2dvi"></a><span class=
- "term"><span class=
- "command"><strong>texi2dvi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для форматирования документа Texinfo в
- независимый от устройства файл, который можно
- распечатать
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="texi2pdf" name="texi2pdf"></a><span class=
- "term"><span class=
- "command"><strong>texi2pdf</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для форматирования данного документа
- Texinfo в файл Portable Document Format (PDF).
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="texindex" name="texindex"></a><span class=
- "term"><span class=
- "command"><strong>texindex</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для сортировки индексных файлов
- Texinfo.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-vim" name="ch-system-vim"></a>8.72.
- Vim-9.1.0041
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Vim содержит мощный текстовый редактор.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">2.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">236
- MB</span>
- </div>
- </div>
- </div>
- <div class="admon tip">
- <h3>
- Альтернативы Vim
- </h3>
- <p>
- .Если вы предпочитаете другой текстовый редактор, например,
- Emacs, Joe или Nano, обратитесь к <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/editors.html">
- https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/editors.html</a>
- за рекомендациями по установке.
- </p>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.72.1. Установка пакета Vim
- </h3>
- <p>
- Во-первых, измените расположение файла конфигурации
- <code class="filename">vimrc</code> на <code class=
- "filename">/etc</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo '#define SYS_VIMRC_FILE "/etc/vimrc"' &gt;&gt; src/feature.h</kbd></pre>
- <p>
- Подготовьте Vim к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы подготовить тесты, убедитесь, что пользователь
- <code class="systemitem">tester</code> может писать в
- исходное дерево:
- </p>
- <pre class="userinput"><kbd class=
- "command">chown -R tester .</kbd></pre>
- <p>
- Теперь запустите тесты от имени пользователя <code class=
- "systemitem">tester</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">su tester -c "TERM=xterm-256color LANG=en_US.UTF-8 make -j1 test" \
- &amp;&gt; vim-test.log</kbd></pre>
- <p>
- Набор тестов выводит на экран много двоичных данных. Это
- может вызвать проблемы с настройками текущего терминала
- (особенно, когда мы переопределяем переменную <code class=
- "envar">TERM</code>, чтобы удовлетворить некоторые требования
- набора тестов). Чтобы этого избежать, перенаправьте вывод в
- файл журнала, как показано выше. Тест пройден успешно, если
- лог по завершении содержит текст: <code class=
- "computeroutput">ALL DONE</code>.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Многие пользователи рефлекторно набирают <span class=
- "command"><strong>vi</strong></span> вместо <span class=
- "command"><strong>vim</strong></span>. Чтобы разрешить
- выполнение <span class="command"><strong>vim</strong></span>,
- когда пользователи вводят <span class=
- "command"><strong>vi</strong></span>, создайте символическую
- ссылку как для двоичного файла, так и для справочной
- страницы:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv vim /usr/bin/vi
-for L in /usr/share/man/{,*/}man1/vim.1; do
- ln -sv vim.1 $(dirname $L)/vi.1
-done</kbd></pre>
- <p>
- По умолчанию документация Vim установливается в каталог
- <code class="filename">/usr/share/vim</code>. Следующая
- символическая ссылка позволяет получить доступ к документации
- через каталог <code class=
- "filename">/usr/share/doc/vim-9.1.0041</code>, что
- согласуется с расположением документации остальных пакетов:
- </p>
- <pre class="userinput"><kbd class=
- "command">ln -sv ../vim/vim91/doc /usr/share/doc/vim-9.1.0041</kbd></pre>
- <p>
- Если в LFS будет установлена система X Window, может
- потребоваться перекомпилировать Vim после установки X. Vim
- поставляется с графической версией редактора, для которой
- требуется установка X и некоторых дополнительных библиотек.
- Для получения дополнительной информации об этом процессе
- обратитесь к документации по Vim и странице установки Vim в
- книге BLFS по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/vim.html">
- https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/vim.html</a>.
- </p>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-vim" name="conf-vim"></a>8.72.2. Настройка Vim
- </h3>
- <p>
- По умолчанию <span class=
- "command"><strong>vim</strong></span> работает в режиме,
- несовместимом с vi. Это может показаться необычным для
- пользователей, которые в прошлом использовали другие
- редакторы. Параметр <span class="quote">«<span class=
- "quote">nocompatible</span>»</span> включен ниже, чтобы
- подчеркнуть тот факт, что используется новое поведение.
- Настройка также напоминает тем, кто хотел бы перейти в режим
- <span class="quote">«<span class=
- "quote">compatible</span>»</span>, что параметр должен быть
- первым в файле конфигурации. Это необходимо, потому что
- изменяются другие параметры, и переопределения происходят
- после этой настройки. Создайте файл конфигурации <span class=
- "command"><strong>vim</strong></span> по умолчанию, выполнив
- следующие действия:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/vimrc &lt;&lt; "EOF"
-<code class="literal">" Begin /etc/vimrc
-
-" Ensure defaults are set before customizing settings, not after
-source $VIMRUNTIME/defaults.vim
-let skip_defaults_vim=1
-
-set nocompatible
-set backspace=2
-set mouse=
-syntax on
-if (&amp;term == "xterm") || (&amp;term == "putty")
- set background=dark
-endif
-
-" End /etc/vimrc</code>
-EOF</kbd></pre>
- <p>
- Параметр <em class="parameter"><code>set
- nocompatible</code></em> заставляет <span class=
- "command"><strong>vim</strong></span> вести себя более
- правильно (по умолчанию), чем vi-совместимый способ. Удалите
- <span class="quote">«<span class="quote">no</span>»</span>,
- чтобы сохранить старое поведение <span class=
- "command"><strong>vi</strong></span>. Параметр <em class=
- "parameter"><code>set backspace=2</code></em> позволяет
- удалять символы через перенос строки, автоматические отступы
- и начало вставки. Параметр <em class="parameter"><code>syntax
- on</code></em> включает подсветку синтаксиса vim. Параметр
- <em class="parameter"><code>set mouse=</code></em> позволяет
- правильно вставлять текст с помощью мыши при работе в chroot
- или через удаленное соединение. Наконец, оператор
- <span class="emphasis"><em>if</em></span> с параметром
- <em class="parameter"><code>set background=dark</code></em>
- корректирует предположение <span class=
- "command"><strong>vim</strong></span> о цвете фона некоторых
- эмуляторов терминала. Это придает подсветке лучшую цветовую
- схему для использования на черном фоне этих программ.
- </p>
- <p>
- Документацию по другим доступным параметрам можно получить,
- выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">vim -c ':options'</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- По умолчанию vim устанавливает файлы проверки орфографии
- только для английского языка. Для установки файлов проверки
- орфографии других языков, скопируйте файлы <code class=
- "filename">.spl</code> и, при необходимости, <code class=
- "filename">.sug</code> для вашего языка и кодировки
- символов из <code class="filename">runtime/spell</code>,
- сохраните их в <code class=
- "filename">/usr/share/vim/vim91/spell/</code>.
- </p>
- <p>
- Чтобы использовать эти файлы проверки орфографии,
- необходимо указать параметры для vim в файле <code class=
- "filename">/etc/vimrc</code>, пример:
- </p>
- <pre class="screen"><code class="literal">set spelllang=en,ru
-set spell</code></pre>
- <p>
- Дополнительные сведения смотрите в файле <code class=
- "filename">runtime/spell/README.txt</code>.
- </p>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-vim" name="contents-vim"></a>8.72.3.
- Содержимое пакета Vim
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">ex (ссылка на
- vim), rview (ссылка на vim), rvim (ссылка на vim), vi
- (ссылка на vim), view (ссылка на vim), vim, vimdiff
- (ссылка на vim), vimtutor и xxd</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/share/vim</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13537" name="idm13537"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="ex" name="ex"></a><span class=
- "term"><span class=
- "command"><strong>ex</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>vim</strong></span> в режиме ex
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rview" name="rview"></a><span class=
- "term"><span class=
- "command"><strong>rview</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это ограниченная версия <span class=
- "command"><strong>view</strong></span>; никакие
- команды оболочки не могут быть запущены, и
- <span class="command"><strong>view</strong></span>
- не может быть приостановлен
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rvim" name="rvim"></a><span class=
- "term"><span class=
- "command"><strong>rvim</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Это ограниченная версия <span class=
- "command"><strong>vim</strong></span>; никакие
- команды оболочки не могут быть запущены, и
- <span class="command"><strong>vim</strong></span>
- не может быть приостановлен
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vi" name="vi"></a><span class=
- "term"><span class=
- "command"><strong>vi</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Ссылка на <span class=
- "command"><strong>vim</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="view" name="view"></a><span class=
- "term"><span class=
- "command"><strong>view</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает <span class=
- "command"><strong>vim</strong></span> в режиме
- только для чтения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vim" name="vim"></a><span class=
- "term"><span class=
- "command"><strong>vim</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сам редактор
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vimdiff" name="vimdiff"></a><span class=
- "term"><span class=
- "command"><strong>vimdiff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Редактирует две или три версии файла с помощью
- <span class="command"><strong>vim</strong></span> и
- показывает различия
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vimtutor" name="vimtutor"></a><span class=
- "term"><span class=
- "command"><strong>vimtutor</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обучает основным горячим клавишам и командам
- <span class="command"><strong>vim</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="xxd" name="xxd"></a><span class=
- "term"><span class=
- "command"><strong>xxd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает шестнадцатеричный дамп данного файла; он
- также может выполнять обратную операцию, поэтому
- его можно использовать для бинарных патчей
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-markupsafe" name=
- "ch-system-markupsafe"></a>8.73. MarkupSafe-2.1.5
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- MarkupSafe — это модуль Python, реализующий безопасное
- использование строк в языках разметки XML/HTML/XHTML
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">508
- KB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.73.1. Установка пакета MarkupSafe
- </h3>
- <p>
- Скомпилируйте MarkupSafe с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- С этим пакетом не поставляется тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --no-user --find-links dist Markupsafe</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-markupsafe" name=
- "contents-markupsafe"></a>8.73.2. Содержимое пакета
- MarkupSafe
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/MarkupSafe-2.1.5.dist-info</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-jinja2" name="ch-system-jinja2"></a>8.74.
- Jinja2-3.1.3
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Jinja2 - это модуль Python, который реализует простой язык
- шаблонов pythonic
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">3.2
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.74.1. Установка пакета Jinja2
- </h3>
- <p>
- Соберите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">pip3 install --no-index --no-user --find-links dist Jinja2</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-jinja2" name="contents-jinja2"></a>8.74.2.
- Содержимое пакета Jinja2
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class=
- "segbody">/usr/lib/python3.12/site-packages/Jinja2-3.1.3.dist-info</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-udev" name="ch-system-udev"></a>8.75. Udev
- из Systemd-255
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Udev содержит программы для динамического создания
- узлов устройств.
- </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">144
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.75.1. Установка пакета Udev
- </h3>
- <p>
- Udev является частью пакета systemd-255. Используйте файл
- systemd-255.tar.xz в качестве исходного архива.
- </p>
- <p>
- Удалите две ненужные группы <code class=
- "systemitem">render</code> и <code class=
- "systemitem">sgx</code>, из правил udev по умолчанию:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i -e 's/GROUP="render"/GROUP="video"/' \
- -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in</kbd></pre>
- <p>
- Удалите одно правило udev, требующее полной установки
- Systemd:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in</kbd></pre>
- <p>
- Измените жестко заданные пути к файлам конфигурации сети для
- автономной установки udev:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed '/NETWORK_DIRS/s/systemd/udev/' -i src/basic/path-lookup.h</kbd></pre>
- <p>
- Подготовьте Udev к компиляции:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -p build
-cd build
-
-meson setup \
- --prefix=/usr \
- --buildtype=release \
- -Dmode=release \
- -Ddev-kvm-mode=0660 \
- -Dlink-udev-shared=false \
- -Dlogind=false \
- -Dvconsole=false \
- ..</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров meson:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--buildtype=release</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр переопределяет тип сборки по умолчанию
- (<span class="quote">«<span class=
- "quote">debug</span>»</span>), который создает
- неоптимизированные двоичные файлы.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dmode=release</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает некоторые функции, которые разработчики
- считают экспериментальными.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Ddev-kvm-mode=0660</code></em></span>
- </dt>
- <dd>
- <p>
- По умолчанию правило udev разрешает всем пользователям
- доступ к <code class="filename">/dev/kvm</code>.
- Редакторы LFS считают это опасным. Данная опция
- переопределяет разрешение по умолчанию.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dlink-udev-shared=false</code></em></span>
- </dt>
- <dd>
- <p>
- Эта опция запрещает udev связываться с внутренней общей
- библиотекой systemd <code class=
- "systemitem">libsystemd-shared</code>. Эта библиотека
- предназначена для совместного использования многими
- компонентами Systemd, и ее использование избыточно,
- когда установлен только udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>-Dlogind=false
- -Dvconsole=false</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры предотвращают создание нескольких файлов
- правил udev, принадлежащих другим компонентам Systemd,
- которые мы не будем устанавливать.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Получите список предоставляемых udev helpers и сохраните его
- в переменной (экспортировать его не обязательно, но это
- упрощает сборку от имени обычного пользователя или при
- использовании менеджера пакетов):
- </p>
- <pre class="userinput"><kbd class=
- "command">export udev_helpers=$(grep "'name' :" ../src/udev/meson.build | \
- awk '{print $3}' | tr -d ",'" | grep -v 'udevadm')</kbd></pre>
- <p>
- Соберите только компоненты, необходимые для udev:
- </p>
- <pre class="userinput"><kbd class=
- "command">ninja udevadm systemd-hwdb \
- $(ninja -n | grep -Eo '(src/(lib)?udev|rules.d|hwdb.d)/[^ ]*') \
- $(realpath libudev.so --relative-to .) \
- $udev_helpers</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb.d,rules.d,network}
-install -vm755 -d /usr/{lib,share}/pkgconfig
-install -vm755 udevadm /usr/bin/
-install -vm755 systemd-hwdb /usr/bin/udev-hwdb
-ln -svfn ../bin/udevadm /usr/sbin/udevd
-cp -av libudev.so{,*[0-9]} /usr/lib/
-install -vm644 ../src/libudev/libudev.h /usr/include/
-install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
-install -vm644 src/udev/*.pc /usr/share/pkgconfig/
-install -vm644 ../src/udev/udev.conf /etc/udev/
-install -vm644 rules.d/* ../rules.d/README /usr/lib/udev/rules.d/
-install -vm644 $(find ../rules.d/*.rules \
- -not -name '*power-switch*') /usr/lib/udev/rules.d/
-install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/
-install -vm755 $udev_helpers /usr/lib/udev
-install -vm644 ../network/99-default.link /usr/lib/udev/network</kbd></pre>
- <p>
- Установите некоторые пользовательские правила и
- вспомогательные файлы, полезные в среде LFS:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xvf ../../udev-lfs-20230818.tar.xz
-make -f udev-lfs-20230818/Makefile.lfs install</kbd></pre>
- <p>
- Установите справочные страницы:
- </p>
- <pre class="userinput"><kbd class=
- "command">tar -xf ../../systemd-man-pages-255.tar.xz \
- --no-same-owner --strip-components=1 \
- -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
- '*/systemd.link.5' \
- '*/systemd-'{hwdb,udevd.service}.8
-
-sed 's|systemd/network|udev/network|' \
- /usr/share/man/man5/systemd.link.5 \
- &gt; /usr/share/man/man5/udev.link.5
-
-sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \
- &gt; /usr/share/man/man8/udev-hwdb.8
-
-sed 's|lib.*udevd|sbin/udevd|' \
- /usr/share/man/man8/systemd-udevd.service.8 \
- &gt; /usr/share/man/man8/udevd.8
-
-rm /usr/share/man/man*/systemd*</kbd></pre>
- <p>
- Наконец, сбросьте значение переменной <code class=
- "envar">udev_helpers</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">unset udev_helpers</kbd></pre>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-udev" name="conf-udev"></a>8.75.2. Настройка Udev
- </h3>
- <p>
- Информация об аппаратных устройствах хранится в каталогах
- <code class="filename">/etc/udev/hwdb.d</code> и <code class=
- "filename">/usr/lib/udev/hwdb.d</code>. <span class=
- "application">Udev</span> необходимо, чтобы эта информация
- была скомпилирована в двоичную базу данных <code class=
- "filename">/etc/udev/hwdb.bin</code>. Создайте исходную базу
- данных:
- </p>
- <pre class="userinput"><kbd class=
- "command">udev-hwdb update</kbd></pre>
- <p>
- Эту команду необходимо запускать каждый раз при обновлении
- информации об оборудовании.
- </p>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-udev" name="contents-udev"></a>8.75.3.
- Содержимое пакета Udev
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">udevadm, udevd
- (символическая ссылка на udevadm) и udev-hwdb</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libudev.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/udev и /usr/lib/udev</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm13770" name="idm13770"></a>Short Descriptions
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="udevadm" name="udevadm"></a><span class=
- "term"><span class=
- "command"><strong>udevadm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Универсальный инструмент администрирования udev:
- управляет демоном udevd, предоставляет информацию
- из базы данных Udev, отслеживает uevents, ожидает
- завершения uevents, проверяет конфигурацию Udev и
- запускает uevents для данного устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udevd" name="udevd"></a><span class=
- "term"><span class=
- "command"><strong>udevd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Демон, который прослушивает uevents в сокете
- netlink, создает устройства и запускает настроенные
- внешние программы в ответ на эти uevents
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-hwdb" name="udev-hwdb"></a><span class=
- "term"><span class=
- "command"><strong>udev-hwdb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обновляет или запрашивает базу данных оборудования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libudev" name="libudev"></a><span class=
- "term"><code class="filename">libudev</code></span>
- </p>
- </td>
- <td>
- <p>
- Библиотека для получения информации об устройствах
- udev
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="etc-udev" name="etc-udev"></a><span class=
- "term"><code class=
- "filename">/etc/udev</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит файлы конфигурации Udev, разрешения для
- устройств и правила именования устройств
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-man-db" name="ch-system-man-db"></a>8.76.
- Man-DB-2.12.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Man-DB содержит программы для поиска и просмотра
- справочных страниц.
- </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">41 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.76.1. Установка пакета Man-DB
- </h3>
- <p>
- Подготовьте Man-DB к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --docdir=/usr/share/doc/man-db-2.12.0 \
- --sysconfdir=/etc \
- --disable-setuid \
- --enable-cache-owner=bin \
- --with-browser=/usr/bin/lynx \
- --with-vgrind=/usr/bin/vgrind \
- --with-grap=/usr/bin/grap \
- --with-systemdtmpfilesdir= \
- --with-systemdsystemunitdir=</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-setuid</code></em></span>
- </dt>
- <dd>
- <p>
- Отключает установку setuid пользователю <code class=
- "systemitem">man</code> при сборке программы
- <span class="command"><strong>man</strong></span>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-cache-owner=bin</code></em></span>
- </dt>
- <dd>
- <p>
- Изменяет владельца файлов общесистемного кэша на
- пользователя <code class="systemitem">bin</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-...</code></em></span>
- </dt>
- <dd>
- <p>
- Эти три аргумента используются для настройки программ
- по умолчанию. <span class=
- "command"><strong>lynx</strong></span> текстовый
- веб-браузер (см. инструкции по установке в книге BLFS),
- <span class="command"><strong>vgrind</strong></span>
- преобразует исходные коды программ во входные данные
- Groff, <span class=
- "command"><strong>grap</strong></span> удобен для
- набора графов в документах Groff. Программы
- <span class="command"><strong>vgrind</strong></span> и
- <span class="command"><strong>grap</strong></span>
- обычно не нужны для просмотра справочных страниц. Они
- не входят в состав книг LFS или BLFS, но вы можете
- установить их самостоятельно после сборки LFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--with-systemd...</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры предотвращают установку ненужных
- каталогов и файлов systemd.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы протестировать пакет, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.76.2. Не англоязычные страницы руководств в LFS
- </h3>
- <p>
- В следующей таблице приведены наборы символов, в которых
- могут быть закодированы страницы руководств пакета Man-DB,
- устанавливаемые в директории <code class=
- "filename">/usr/share/man/&lt;ll&gt;</code>. Кроме этого,
- Man-DB правильно определяет, имеют ли справочные страницы,
- установленные в этом каталоге, кодировку UTF-8.
- </p>
- <div class="table">
- <a id="idm13867" name="idm13867"></a>
- <p class="title">
- <strong>Таблица 8.1. Допустимые кодировки старых 8-битных
- страниц руководств</strong>
- </p>
- <div class="table-contents">
- <table class="table" summary=
- "Допустимые кодировки старых 8-битных страниц руководств"
- border="1">
- <colgroup>
- <col width="1.5in" />
- <col width="1in" />
- <col width="2.5in" />
- <col width="1in" />
- </colgroup>
- <thead>
- <tr>
- <th>
- Язык (код)
- </th>
- <th>
- Кодировка
- </th>
- <th>
- Язык (код)
- </th>
- <th>
- Кодировка
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- Датский (da)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Хорватский (hr)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Немецкий (de)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Венгерский (hu)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Английский (en)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Японский (ja)
- </td>
- <td>
- EUC-JP
- </td>
- </tr>
- <tr>
- <td>
- Испанский (es)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Корейский (ko)
- </td>
- <td>
- EUC-KR
- </td>
- </tr>
- <tr>
- <td>
- Эстонский (et)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Литовский (lt)
- </td>
- <td>
- ISO-8859-13
- </td>
- </tr>
- <tr>
- <td>
- Финский (fi)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Латышский (lv)
- </td>
- <td>
- ISO-8859-13
- </td>
- </tr>
- <tr>
- <td>
- Французский (fr)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Македонский (mk)
- </td>
- <td>
- ISO-8859-5
- </td>
- </tr>
- <tr>
- <td>
- Ирландский (ga)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Польский (pl)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Галисийский (gl)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Румынский (ro)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Индонезийский (id)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Русский (ru)
- </td>
- <td>
- KOI8-R
- </td>
- </tr>
- <tr>
- <td>
- Исландский (is)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Словацкий (sk)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Итальянский (it)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Словенский (sl)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Норвежский букмол (nb)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Сербский латинский (sr@latin)
- </td>
- <td>
- ISO-8859-2
- </td>
- </tr>
- <tr>
- <td>
- Голландский (nl)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Сербский (sr)
- </td>
- <td>
- ISO-8859-5
- </td>
- </tr>
- <tr>
- <td>
- Норвежский нюнорск (nn)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Турецкий (tr)
- </td>
- <td>
- ISO-8859-9
- </td>
- </tr>
- <tr>
- <td>
- Норвежский (no)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Украинский (uk)
- </td>
- <td>
- KOI8-U
- </td>
- </tr>
- <tr>
- <td>
- Португальский (pt)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Вьетнамский (vi)
- </td>
- <td>
- TCVN5712-1
- </td>
- </tr>
- <tr>
- <td>
- Шведский (sv)
- </td>
- <td>
- ISO-8859-1
- </td>
- <td>
- Упрощенный китайский (zh_CN)
- </td>
- <td>
- GBK
- </td>
- </tr>
- <tr>
- <td>
- Белорусский (be)
- </td>
- <td>
- CP1251
- </td>
- <td>
- Упрощенный китайский, Сингапур (zh_SG)
- </td>
- <td>
- GBK
- </td>
- </tr>
- <tr>
- <td>
- Болгарский (bg)
- </td>
- <td>
- CP1251
- </td>
- <td>
- Традиционный китайский, Гонконг (zh_HK)
- </td>
- <td>
- BIG5HKSCS
- </td>
- </tr>
- <tr>
- <td>
- Чешский (cs)
- </td>
- <td>
- ISO-8859-2
- </td>
- <td>
- Традиционный китайский (zh_TW)
- </td>
- <td>
- BIG5
- </td>
- </tr>
- <tr>
- <td>
- Греческий (el)
- </td>
- <td>
- ISO-8859-7
- </td>
- <td>
- &nbsp;
- </td>
- <td>
- &nbsp;
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div><br class="table-break" />
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Страницы руководств на языках, которые не указаны в списке,
- не поддерживаются.
- </p>
- </div>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-man-db" name="contents-man-db"></a>8.76.3.
- Содержимое пакета Man-DB
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">accessdb,
- apropos (ссылка на whatis), catman, lexgrog, man,
- man-recode, mandb, manpath, и whatis</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libman.so и
- libmandb.so (обе в /usr/lib/man-db)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/lib/man-db,
- /usr/libexec/man-db и /usr/share/doc/man-db-2.12.0</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm14004" name="idm14004"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="accessdb" name="accessdb"></a><span class=
- "term"><span class=
- "command"><strong>accessdb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит содержимое базы данных <span class=
- "command"><strong>whatis</strong></span> в
- удобочитаемой форме.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="apropos" name="apropos"></a><span class=
- "term"><span class=
- "command"><strong>apropos</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск в базе данных <span class=
- "command"><strong>whatis</strong></span> и
- отображает краткое описание системных команд,
- содержащих заданную строку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="catman" name="catman"></a><span class=
- "term"><span class=
- "command"><strong>catman</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает или обновляет предварительно
- отформатированные страницы руководств
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lexgrog" name="lexgrog"></a><span class=
- "term"><span class=
- "command"><strong>lexgrog</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает однострочную сводную информацию о данной
- странице руководства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="man" name="man"></a><span class=
- "term"><span class=
- "command"><strong>man</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Форматирует и отображает запрошенную страницу
- руководства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="man-recode" name=
- "man-recode"></a><span class="term"><span class=
- "command"><strong>man-recode</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует страницы руководства в другую кодировку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mandb" name="mandb"></a><span class=
- "term"><span class=
- "command"><strong>mandb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает или обновляет базу данных <span class=
- "command"><strong>whatis</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="manpath" name="manpath"></a><span class=
- "term"><span class=
- "command"><strong>manpath</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает содержимое переменной $MANPATH или (если
- переменная $MANPATH не установлена) соответствующий
- путь поиска, определяемый в настройках man.conf и в
- пользовательском окружении
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="whatis" name="whatis"></a><span class=
- "term"><span class=
- "command"><strong>whatis</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск в базе данных <span class=
- "command"><strong>whatis</strong></span> и
- отображает краткие описания системных команд, в
- которых в описании ключей указано искомое слово
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libman" name="libman"></a><span class=
- "term"><code class="filename">libman</code></span>
- </p>
- </td>
- <td>
- <p>
- Включает поддержку <span class=
- "command"><strong>man</strong></span> во время
- выполнения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmandb" name="libmandb"></a><span class=
- "term"><code class=
- "filename">libmandb</code></span>
- </p>
- </td>
- <td>
- <p>
- Включает поддержку <span class=
- "command"><strong>man</strong></span> во время
- выполнения
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-procps" name="ch-system-procps"></a>8.77.
- Procps-ng-4.0.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Procps-ng содержит программы для мониторинга процессов.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">27 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.77.1. Установка пакета Procps-ng
- </h3>
- <p>
- Подготовьте Procps-ng к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --prefix=/usr \
- --docdir=/usr/share/doc/procps-ng-4.0.4 \
- --disable-static \
- --disable-kill</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметра configure:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-kill</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр отключает сборку команды <span class=
- "command"><strong>kill</strong></span>; она будет
- установлена из пакета Util-linux.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы запустить набор тестов, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make -k check</kbd></pre>
- <p>
- Известно, что тест <code class="literal">ps with output flag
- bsdtime,cputime,etime,etimes</code> завершается неудачно,
- если ядро хоста собрано с выключенным параметром <code class=
- "literal">CONFIG_BSD_PROCESS_ACCT</code>. Также известно, что
- два теста: <code class="literal">pmap X with unreachable
- process</code> и <code class="literal">pmap XX with
- unreachable process</code> иногда завершаются неудачно.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-procps" name="contents-procps"></a>8.77.2.
- Содержимое пакета Procps-ng
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">free, pgrep,
- pidof, pkill, pmap, ps, pwdx, slabtop, sysctl, tload,
- top, uptime, vmstat, w и watch</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class=
- "segbody">libproc-2.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/procps и
- /usr/share/doc/procps-ng-4.0.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm14139" name="idm14139"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="free" name="free"></a><span class=
- "term"><span class=
- "command"><strong>free</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает объем свободной и используемой памяти (как
- физической, так и файла подкачки) в системе.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pgrep" name="pgrep"></a><span class=
- "term"><span class=
- "command"><strong>pgrep</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск процессов на основе их имени и
- других атрибутов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pidof" name="pidof"></a><span class=
- "term"><span class=
- "command"><strong>pidof</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает PIDы указанных программ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pkill" name="pkill"></a><span class=
- "term"><span class=
- "command"><strong>pkill</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отправка сигналов процессам на основе их имени и
- других атрибутов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pmap" name="pmap"></a><span class=
- "term"><span class=
- "command"><strong>pmap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Команда выводит детальную информацию об
- использование оперативной памяти процессами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ps" name="ps"></a><span class=
- "term"><span class=
- "command"><strong>ps</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Список запущенных процессов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pwdx" name="pwdx"></a><span class=
- "term"><span class=
- "command"><strong>pwdx</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает текущий рабочий каталог процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="slabtop" name="slabtop"></a><span class=
- "term"><span class=
- "command"><strong>slabtop</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает подробную информацию о кэш-памяти ядра в
- режиме реального времени.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sysctl" name="sysctl"></a><span class=
- "term"><span class=
- "command"><strong>sysctl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет параметры ядра во время выполнения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tload" name="tload"></a><span class=
- "term"><span class=
- "command"><strong>tload</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит график текущей средней загрузки системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="top" name="top"></a><span class=
- "term"><span class=
- "command"><strong>top</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает список процессов, наиболее интенсивно
- использующих ЦП; обеспечивает просмотр активности
- процессора в режиме реального времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uptime" name="uptime"></a><span class=
- "term"><span class=
- "command"><strong>uptime</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает сколько времени работает система, сколько
- пользователей вошли в систему и средние значения
- загрузки системы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="vmstat" name="vmstat"></a><span class=
- "term"><span class=
- "command"><strong>vmstat</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает статистику виртуальной памяти, содержащую
- информацию о процессах, памяти, подкачке, блочном
- вводе/выводе (IO), прерываниях и активности ЦП.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="w" name="w"></a><span class=
- "term"><span class=
- "command"><strong>w</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает, какие пользователи в настоящее время
- вошли в систему и с какого момента
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="watch" name="watch"></a><span class=
- "term"><span class=
- "command"><strong>watch</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет заданную команду повторно, отображая
- первый экран, заполненный ее выводом; это позволяет
- пользователю наблюдать за изменениями с течением
- времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libproc-2" name="libproc-2"></a><span class=
- "term"><code class=
- "filename">libproc-2</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит функции, используемые большинством
- программ в этом пакете.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-util-linux" name=
- "ch-system-util-linux"></a>8.78. Util-linux-2.39.3
- </h2>
- </div>
- </div>
- </div>
- <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.5 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">313
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.78.1. Установка пакета Util-linux
- </h3>
- <p>
- Сначала отключите проблемный тест:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am</kbd></pre>
- <p>
- Подготовьте Util-linux к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">./configure --bindir=/usr/bin \
- --libdir=/usr/lib \
- --runstatedir=/run \
- --sbindir=/usr/sbin \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python \
- --without-systemd \
- --without-systemdsystemunitdir \
- ADJTIME_PATH=/var/lib/hwclock/adjtime \
- --docdir=/usr/share/doc/util-linux-2.39.3</kbd></pre>
- <p>
- Параметры --disable и --without предотвращают появление
- предупреждений о сборке компонентов, для которых требуются
- пакеты, отсутствующие в LFS, или которые несовместимы с
- программами, установленными другими пакетами.
- </p>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- По желанию запустите набор тестов от имени пользователя без
- полномочий <code class="systemitem">root</code>:
- </p>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Запуск набора тестов от имени пользователя <code class=
- "systemitem">root</code> может повредить вашу систему.
- Чтобы запустить тесты, опция CONFIG_SCSI_DEBUG для ядра
- должна быть доступна в текущей работающей системе и должна
- быть собрана как модуль. Включение её в ядро будет
- прерывать загрузку. Для полного охвата тестами в систему
- необходимо установить другие пакеты из BLFS. По желанию,
- этот тест можно запустить после загрузки в готовую систему
- LFS:
- </p>
- <pre class="userinput"><kbd class=
- "command">bash tests/run.sh --srcdir=$PWD --builddir=$PWD</kbd></pre>
- </div>
- <pre class="userinput"><kbd class="command">chown -R tester .
-su tester -c "make -k check"</kbd></pre>
- <p>
- Тесты с <span class="emphasis"><em>жесткими
- ссылками</em></span> завершатся неудачей, если в ядре хоста
- не включена опция <code class=
- "option">CONFIG_CRYPTO_USER_API_HASH</code> или не включено
- никаких опций, обеспечивающих реализацию SHA256 (например,
- <code class="option">CONFIG_CRYPTO_SHA256</code> или
- <code class="option">CONFIG_CRYPTO_SHA256_SSSE3</code>, если
- процессор поддерживает инструкции SSE3). Кроме того,
- известно, что два подтеста из misc: mbsencode и один подтест
- из script: replay не проходят.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-utillinux" name=
- "contents-utillinux"></a>8.78.2. Содержимое пакета Util-linux
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">addpart,
- agetty, blkdiscard, blkid, blkzone, blockdev, cal,
- cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm,
- column, ctrlaltdel, delpart, dmesg, eject, fallocate,
- fdisk, fincore, findfs, findmnt, flock, fsck,
- fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt,
- hardlink, hexdump, hwclock, i386 (ссылка на setarch),
- ionice, ipcmk, ipcrm, ipcs, irqtop, isosize, kill, last,
- lastb (ссылка на last), ldattach, linux32 (link to
- setarch), linux64 (ссылка на setarch), logger, look,
- losetup, lsblk, lscpu, lsipc, lsirq, lsfd, lslocks,
- lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs,
- mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint,
- namei, nsenter, partx, pivot_root, prlimit, readprofile,
- rename, renice, resizepart, rev, rfkill, rtcwake, script,
- scriptlive, scriptreplay, setarch, setsid, setterm,
- sfdisk, sulogin, swaplabel, swapoff, swapon, switch_root,
- taskset, uclampset, ul, umount, uname26 (ссылка на
- setarch), unshare, utmpdump, uuidd, uuidgen, uuidparse,
- wall, wdctl, whereis, wipefs, x86_64 (ссылка на setarch)
- и zramctl</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libblkid.so,
- libfdisk.so, libmount.so, libsmartcols.so и
- libuuid.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/blkid,
- /usr/include/libfdisk, /usr/include/libmount,
- /usr/include/libsmartcols, /usr/include/uuid,
- /usr/share/doc/util-linux-2.39.3 и
- /var/lib/hwclock</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm14305" name="idm14305"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="addpart" name="addpart"></a><span class=
- "term"><span class=
- "command"><strong>addpart</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает ядру Linux о новых разделах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="agetty" name="agetty"></a><span class=
- "term"><span class=
- "command"><strong>agetty</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Открывает порт tty, запрашивает имя для входа, а
- затем вызывает программу <span class=
- "command"><strong>login</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="blkdiscard" name=
- "blkdiscard"></a><span class="term"><span class=
- "command"><strong>blkdiscard</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Очищает сектора на устройстве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="blkid" name="blkid"></a><span class=
- "term"><span class=
- "command"><strong>blkid</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита командной строки для вывода атрибутов
- блочного устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="blkzone" name="blkzone"></a><span class=
- "term"><span class=
- "command"><strong>blkzone</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для управления зонированными блочными
- системами хранения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="blockdev" name="blockdev"></a><span class=
- "term"><span class=
- "command"><strong>blockdev</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет пользователям вызывать ioctl блочного
- устройства из командной строки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cal" name="cal"></a><span class=
- "term"><span class=
- "command"><strong>cal</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает простой календарь
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cfdisk" name="cfdisk"></a><span class=
- "term"><span class=
- "command"><strong>cfdisk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Управляет таблицей разделов данного устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chcpu" name="chcpu"></a><span class=
- "term"><span class=
- "command"><strong>chcpu</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет состояние процессоров
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chmem" name="chmem"></a><span class=
- "term"><span class=
- "command"><strong>chmem</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает память
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="choom" name="choom"></a><span class=
- "term"><span class=
- "command"><strong>choom</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает и регулирует оценки OOM-killer,
- используемые для определения того, какой процесс
- следует завершить первым, когда в Linux
- заканчивается память
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chrt" name="chrt"></a><span class=
- "term"><span class=
- "command"><strong>chrt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Манипулирует атрибутами процесса в режиме реального
- времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="col" name="col"></a><span class=
- "term"><span class=
- "command"><strong>col</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтрует обратные переносы строк из входного
- потока
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="colcrt" name="colcrt"></a><span class=
- "term"><span class=
- "command"><strong>colcrt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтрует данные, выдаваемые командой <span class=
- "command"><strong>nroff</strong></span> на
- терминалы, у которых отсутствует ряд возможностей,
- например, отображение перечеркнутых символов или
- верхних и нижних индексов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="colrm" name="colrm"></a><span class=
- "term"><span class=
- "command"><strong>colrm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтрует вывод указанных столбцов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="column" name="column"></a><span class=
- "term"><span class=
- "command"><strong>column</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Форматирует заданный файл в несколько столбцов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ctrlaltdel" name=
- "ctrlaltdel"></a><span class="term"><span class=
- "command"><strong>ctrlaltdel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает для комбинации символов Ctrl+Alt+Del
- жесткую или мягкую перезагрузку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="delpart" name="delpart"></a><span class=
- "term"><span class=
- "command"><strong>delpart</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запрашивает у ядра Linux удаление раздела
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dmesg" name="dmesg"></a><span class=
- "term"><span class=
- "command"><strong>dmesg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит загрузочные сообщения ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="eject" name="eject"></a><span class=
- "term"><span class=
- "command"><strong>eject</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Извлекает съемный носитель
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fallocate" name="fallocate"></a><span class=
- "term"><span class=
- "command"><strong>fallocate</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предварительное выделение места под файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fdisk" name="fdisk"></a><span class=
- "term"><span class=
- "command"><strong>fdisk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Манипулирует таблицей разделов указанного
- устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fincore" name="fincore"></a><span class=
- "term"><span class=
- "command"><strong>fincore</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подчитывает сколько страниц приложение хранит в
- памяти ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="findfs" name="findfs"></a><span class=
- "term"><span class=
- "command"><strong>findfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Находит файловую систему по метке или
- универсальному уникальному идентификатору (UUID)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="findmnt" name="findmnt"></a><span class=
- "term"><span class=
- "command"><strong>findmnt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Представляет собой интерфейс командной строки к
- библиотеке libmount для работы с файлами mountinfo,
- fstab и mtab
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="flock" name="flock"></a><span class=
- "term"><span class=
- "command"><strong>flock</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Осуществляет блокировку файла, а затем выполняет
- команду, не снимая блокировку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck" name="fsck"></a><span class=
- "term"><span class=
- "command"><strong>fsck</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для проверки и, при необходимости,
- восстановления файловых систем
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck.cramfs" name=
- "fsck.cramfs"></a><span class="term"><span class=
- "command"><strong>fsck.cramfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет проверку целостности файловой системы
- Cramfs на данном устройстве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck.minix" name=
- "fsck.minix"></a><span class="term"><span class=
- "command"><strong>fsck.minix</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет проверку целостности файловой системы
- Minix на данном устройстве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsfreeze" name="fsfreeze"></a><span class=
- "term"><span class=
- "command"><strong>fsfreeze</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Очень простая программа-обертка для выполнение
- операций с драйвером ядра FIFREEZE/FITHAW ioctl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fstrim" name="fstrim"></a><span class=
- "term"><span class=
- "command"><strong>fstrim</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Освобождает неиспользованные блоки смонтированной
- файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="getopt" name="getopt"></a><span class=
- "term"><span class=
- "command"><strong>getopt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Разбирает параметры указанной командной строки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hardlink" name="hardlink"></a><span class=
- "term"><span class=
- "command"><strong>hardlink</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Объединяет дубликаты файлов путем создания жестких
- ссылок
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hexdump" name="hexdump"></a><span class=
- "term"><span class=
- "command"><strong>hexdump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает дамп указанного файла в шестнадцатеричном,
- десятичном, восьмеричном или ascii-формате
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="hwclock" name="hwclock"></a><span class=
- "term"><span class=
- "command"><strong>hwclock</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает или устанавливает значение аппаратных часов
- системы, называемых также часами реального времени
- (RTC- Real-Time Clock) или часами БИОС (BIOS -
- Basic Input-Output System)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="i386" name="i386"></a><span class=
- "term"><span class=
- "command"><strong>i386</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символьная ссылка на setarch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ionice" name="ionice"></a><span class=
- "term"><span class=
- "command"><strong>ionice</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает или устанавливает класс и приоритет
- обработки ввода/вывода для программ
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ipcmk" name="ipcmk"></a><span class=
- "term"><span class=
- "command"><strong>ipcmk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает различные ресурсы межпроцессного
- взаимодействия (IPC)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ipcrm" name="ipcrm"></a><span class=
- "term"><span class=
- "command"><strong>ipcrm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет указанный ресурс межпроцессного
- взаимодействия (IPC)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ipcs" name="ipcs"></a><span class=
- "term"><span class=
- "command"><strong>ipcs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет информацию о состоянии IPC
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="irqtop" name="irqtop"></a><span class=
- "term"><span class=
- "command"><strong>irqtop</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о счетчике прерываний ядра в
- стиле <a class="ulink" href=
- "https://man.archlinux.org/man/top.1">top(1)</a>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="isosize" name="isosize"></a><span class=
- "term"><span class=
- "command"><strong>isosize</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает о размере файловой системы iso9660
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="kill" name="kill"></a><span class=
- "term"><span class=
- "command"><strong>kill</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Посылает сигналы процессам
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="last" name="last"></a><span class=
- "term"><span class=
- "command"><strong>last</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает, какие пользователи в последний раз
- входили (и выходили), выполняя поиск в файле
- <code class="filename">/var/log/wtmp</code>; кроме
- этого показывает информацию о загрузке системы,
- завершение работы и изменениях уровня выполнения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lastb" name="lastb"></a><span class=
- "term"><span class=
- "command"><strong>lastb</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает неудачные попытки входа в систему,
- зарегистрированные в <code class=
- "filename">/var/log/btmp</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ldattach" name="ldattach"></a><span class=
- "term"><span class=
- "command"><strong>ldattach</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Назначает устройству последовательного доступа
- алгоритм, определяющий дисциплину обслуживания
- этого устройства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="linux32" name="linux32"></a><span class=
- "term"><span class=
- "command"><strong>linux32</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символическая ссылка на setarch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="linux64" name="linux64"></a><span class=
- "term"><span class=
- "command"><strong>linux64</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символическая ссылка на setarch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="logger" name="logger"></a><span class=
- "term"><span class=
- "command"><strong>logger</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Добавляет указанное сообщение в системный журнал
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="look" name="look"></a><span class=
- "term"><span class=
- "command"><strong>look</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает строки, начинающиеся с указанной
- последовательности символов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="losetup" name="losetup"></a><span class=
- "term"><span class=
- "command"><strong>losetup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает и управляет устройствами типа loop
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsblk" name="lsblk"></a><span class=
- "term"><span class=
- "command"><strong>lsblk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию обо всех или выбранных блочных
- устройствах в древовидном формате
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lscpu" name="lscpu"></a><span class=
- "term"><span class=
- "command"><strong>lscpu</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию об архитектуре процессора
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsfd" name="lsfd"></a><span class=
- "term"><span class=
- "command"><strong>lsfd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию об открытых файлах; заменяет
- <span class="command"><strong>lsof</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsipc" name="lsipc"></a><span class=
- "term"><span class=
- "command"><strong>lsipc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию об объектах IPC, которые в
- настоящее время используются в системе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsirq" name="lsirq"></a><span class=
- "term"><span class=
- "command"><strong>lsirq</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает информацию о счетчике прерываний ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lslocks" name="lslocks"></a><span class=
- "term"><span class=
- "command"><strong>lslocks</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает список всех заблокированных в настоящее
- время файлов в системе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lslogins" name="lslogins"></a><span class=
- "term"><span class=
- "command"><strong>lslogins</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию о пользователях, группах и
- системных учетных записях
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsmem" name="lsmem"></a><span class=
- "term"><span class=
- "command"><strong>lsmem</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает диапазоны доступной памяти с указанием
- их оперативного статуса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsns" name="lsns"></a><span class=
- "term"><span class=
- "command"><strong>lsns</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает список пространств имен
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mcookie" name="mcookie"></a><span class=
- "term"><span class=
- "command"><strong>mcookie</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Генерирует для <span class=
- "command"><strong>xauth</strong></span> магические
- куки (128-битные случайные числа в
- шестнадцатеричном формате)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mesg" name="mesg"></a><span class=
- "term"><span class=
- "command"><strong>mesg</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Определяет, могут ли другие пользователи отправлять
- сообщения на терминал текущего пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs" name="mkfs"></a><span class=
- "term"><span class=
- "command"><strong>mkfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файловую систему на устройстве (обычно это
- раздел жесткого диска)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.bfs" name="mkfs.bfs"></a><span class=
- "term"><span class=
- "command"><strong>mkfs.bfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файловую систему Santa Cruz Operations
- (SCO) bfs
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.cramfs" name=
- "mkfs.cramfs"></a><span class="term"><span class=
- "command"><strong>mkfs.cramfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файловую систему cramfs
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.minix" name=
- "mkfs.minix"></a><span class="term"><span class=
- "command"><strong>mkfs.minix</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файловую систему Minix
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkswap" name="mkswap"></a><span class=
- "term"><span class=
- "command"><strong>mkswap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инициализирует данное устройство или файл для
- использования в качестве области подкачки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="more" name="more"></a><span class=
- "term"><span class=
- "command"><strong>more</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтр постраничного вывода текста
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mount" name="mount"></a><span class=
- "term"><span class=
- "command"><strong>mount</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подключение файловой системы, находящейся на
- заданном устройстве, к указанному каталогу в дереве
- файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mountpoint" name=
- "mountpoint"></a><span class="term"><span class=
- "command"><strong>mountpoint</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет, является ли каталог точкой монтирования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="namei" name="namei"></a><span class=
- "term"><span class=
- "command"><strong>namei</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Разделяет на составляющие путь к файлу или
- каталогу, показывая информацию о типе каждого
- элемента
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="nsenter" name="nsenter"></a><span class=
- "term"><span class=
- "command"><strong>nsenter</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает программу в пространстве имен других
- процессов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="partx" name="partx"></a><span class=
- "term"><span class=
- "command"><strong>partx</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает ядру информацию о наличии и количестве
- разделов, находящихся на диске
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="pivot_root" name=
- "pivot_root"></a><span class="term"><span class=
- "command"><strong>pivot_root</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Делает данную файловую систему новой корневой
- файловой системой текущего процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="prlimit" name="prlimit"></a><span class=
- "term"><span class=
- "command"><strong>prlimit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Получает и устанавливает ограничения использования
- ресурсов процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="readprofile" name=
- "readprofile"></a><span class="term"><span class=
- "command"><strong>readprofile</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Читает информацию о профилировании ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rename" name="rename"></a><span class=
- "term"><span class=
- "command"><strong>rename</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переименовывает заданные файлы, заменяя одну строку
- другой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="renice" name="renice"></a><span class=
- "term"><span class=
- "command"><strong>renice</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет приоритет запущенных процессов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="resizepart" name=
- "resizepart"></a><span class="term"><span class=
- "command"><strong>resizepart</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запрашивает у ядра Linux изменение размера раздела
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rev" name="rev"></a><span class=
- "term"><span class=
- "command"><strong>rev</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Меняет в указанном файле порядок строк на обратный
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rfkill" name="rfkill"></a><span class=
- "term"><span class=
- "command"><strong>rfkill</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Bнструмент командной строки для управления
- беспроводными устройствами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rtcwake" name="rtcwake"></a><span class=
- "term"><span class=
- "command"><strong>rtcwake</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для перехода системы в спящий режим до
- указанного времени пробуждения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="script" name="script"></a><span class=
- "term"><span class=
- "command"><strong>script</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает скрипт терминальной сессии
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="scriptlive" name=
- "scriptlive"></a><span class="term"><span class=
- "command"><strong>scriptlive</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перезапускает скрипт терминальной сессии, используя
- информацию о времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="scriptreplay" name=
- "scriptreplay"></a><span class="term"><span class=
- "command"><strong>scriptreplay</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Воспроизводит скрипт в соответствие с указанным
- временем запуска
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setarch" name="setarch"></a><span class=
- "term"><span class=
- "command"><strong>setarch</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- В окружении, используемом новой программой,
- изменяет информацию об архитектуре и устанавливает
- флаги персонализации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setsid" name="setsid"></a><span class=
- "term"><span class=
- "command"><strong>setsid</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает указанную программу в новом сеансе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setterm" name="setterm"></a><span class=
- "term"><span class=
- "command"><strong>setterm</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает атрибуты терминала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sfdisk" name="sfdisk"></a><span class=
- "term"><span class=
- "command"><strong>sfdisk</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Управляет таблицей разделов диска
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sulogin" name="sulogin"></a><span class=
- "term"><span class=
- "command"><strong>sulogin</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет пользователю <code class=
- "systemitem">root</code> входить в систему; обычно
- он вызывается <span class=
- "command"><strong>init</strong></span>, когда
- система переходит в однопользовательский режим
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="swaplabel" name="swaplabel"></a><span class=
- "term"><span class=
- "command"><strong>swaplabel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет UUID и метку раздела подкачки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="swapoff" name="swapoff"></a><span class=
- "term"><span class=
- "command"><strong>swapoff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отключает устройства и файлы подкачки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="swapon" name="swapon"></a><span class=
- "term"><span class=
- "command"><strong>swapon</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Включает устройства и файлы, применяемые для
- раздела подкачки, а также выводит список устройств
- и файлов, используемых в данный момент
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="switch_root" name=
- "switch_root"></a><span class="term"><span class=
- "command"><strong>switch_root</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Переключается на другую файловую систему и
- устанавливает её в качестве корневой
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="taskset" name="taskset"></a><span class=
- "term"><span class=
- "command"><strong>taskset</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Устанавливает привязку процессора к процессу
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uclampset" name="uclampset"></a><span class=
- "term"><span class=
- "command"><strong>uclampset</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Управляет атрибутами ограничения использования
- системы или процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ul" name="ul"></a><span class=
- "term"><span class=
- "command"><strong>ul</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Фильтр для преобразования символов подчеркивания в
- escape-последовательности
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="umount" name="umount"></a><span class=
- "term"><span class=
- "command"><strong>umount</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Размонтирует файловую систему из дерева ФС
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uname26" name="uname26"></a><span class=
- "term"><span class=
- "command"><strong>uname26</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символическая ссылка на setarch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="unshare" name="unshare"></a><span class=
- "term"><span class=
- "command"><strong>unshare</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет процессу (или потоку) отделить части
- своего контекста выполнения, которые используются
- совместно с другими процессами (или потоками)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="utmpdump" name="utmpdump"></a><span class=
- "term"><span class=
- "command"><strong>utmpdump</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает содержимое указанного файла входа в
- систему в удобном для пользователя формате
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uuidd" name="uuidd"></a><span class=
- "term"><span class=
- "command"><strong>uuidd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Демон, используемый библиотекой UUID для создания
- безопасных и гарантированно уникальных
- идентификаторов UUID
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uuidgen" name="uuidgen"></a><span class=
- "term"><span class=
- "command"><strong>uuidgen</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает новые идентификаторы (UUID). Каждый новый
- UUID - это случайная последовательность, которая,
- будет с очень высокой вероятностью уникальной среди
- всех идентификаторов, созданных как на локальной
- машине, так и на любых других системах, в прошлом и
- будущем (2<sup>128</sup> или около 3,4 х
- 10<sup>38</sup> вариантов)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="uuidparse" name="uuidparse"></a><span class=
- "term"><span class=
- "command"><strong>uuidparse</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита для анализа уникальных идентификаторов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="wall" name="wall"></a><span class=
- "term"><span class=
- "command"><strong>wall</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает содержимое файла или, по умолчанию, его
- вывод на терминалах всех пользователей, вошедших в
- систему в данный момент
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="wdctl" name="wdctl"></a><span class=
- "term"><span class=
- "command"><strong>wdctl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Показывает статус аппаратного сторожевого таймера
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="whereis" name="whereis"></a><span class=
- "term"><span class=
- "command"><strong>whereis</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает местоположение двоичного файла, исходного
- кода и справочной страницы для указанной команды
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="wipefs" name="wipefs"></a><span class=
- "term"><span class=
- "command"><strong>wipefs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Стирает с устройства сигнатуру файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="x86_64" name="x86_64"></a><span class=
- "term"><span class=
- "command"><strong>x86_64</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Символическая ссылка на setarch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="zramctl" name="zramctl"></a><span class=
- "term"><span class=
- "command"><strong>zramctl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Программа для настройки и управления устройствами
- zram (сжатый RAM-диск)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libblkid" name="libblkid"></a><span class=
- "term"><code class=
- "filename">libblkid</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы для идентификации устройства
- и извлечения токена
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libfdisk" name="libfdisk"></a><span class=
- "term"><code class=
- "filename">libfdisk</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы для управления таблицами
- разделов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libmount" name="libmount"></a><span class=
- "term"><code class=
- "filename">libmount</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы для монтирования и
- размонтирования блочных устройств
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libsmartcols" name=
- "libsmartcols"></a><span class="term"><code class=
- "filename">libsmartcols</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы для более удобного вывода на
- экран информации в табличном виде
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libuuid" name="libuuid"></a><span class=
- "term"><code class="filename">libuuid</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы для генерации уникальных
- идентификаторов для объектов, которые могут быть
- доступны за пределами локальной системы
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-e2fsprogs" name=
- "ch-system-e2fsprogs"></a>8.79. E2fsprogs-1.47.0
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет E2fsprogs содержит утилиты для работы с файловой
- системой <code class="systemitem">ext2</code>. Также он
- поддерживает журналируемые файловые системы <code class=
- "systemitem">ext3</code> и <code class=
- "systemitem">ext4</code>.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">2.4 SBU на жестком
- диске, 0.4 SBU на SSD диске</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">95 MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.79.1. Установка пакета E2fsprogs
- </h3>
- <p>
- В документации к E2fsprogs рекомендуется выполнять сборку в
- подкаталоге папки с исходниками:
- </p>
- <pre class="userinput"><kbd class="command">mkdir -v build
-cd build</kbd></pre>
- <p>
- Подготовьте E2fsprogs к компиляции:
- </p>
- <pre class="userinput"><kbd class=
- "command">../configure --prefix=/usr \
- --sysconfdir=/etc \
- --enable-elf-shlibs \
- --disable-libblkid \
- --disable-libuuid \
- --disable-uuidd \
- --disable-fsck</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров настройки:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>--enable-elf-shlibs</code></em></span>
- </dt>
- <dd>
- <p>
- Параметр создает общие библиотеки, которые используют
- некоторые программы в этом пакете.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>--disable-*</code></em></span>
- </dt>
- <dd>
- <p>
- Эти параметры предотвращают сборку и установку
- библиотек <code class="systemitem">libuuid</code> и
- <code class="systemitem">libblkid</code>, демона
- <code class="systemitem">uuidd</code>, и обертку для
- <span class="command"><strong>fsck</strong></span>,
- поскольку util-linux устанавливает более свежие версии.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Чтобы запустить тесты, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">make check</kbd></pre>
- <p>
- Известно, что один тест, с именем <code class=
- "filename">m_assume_storage_prezeroed</code>, завершается
- ошибкой.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- <p>
- Удалите ненужные статические библиотеки:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a</kbd></pre>
- <p>
- Этот пакет устанавливает сжатый файл <code class=
- "filename">.info</code> но не обновляет общесистемный файл
- <code class="filename">dir</code>. Разархивируйте этот файл,
- а затем обновите системный файл <code class=
- "filename">dir</code>, используя следующие команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">gunzip -v /usr/share/info/libext2fs.info.gz
-install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info</kbd></pre>
- <p>
- По желанию, создайте и установите дополнительную
- документацию, выполнив следующие команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo
-install -v -m644 doc/com_err.info /usr/share/info
-install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info</kbd></pre>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-e2fsprogs" name="conf-e2fsprogs"></a>8.79.2.
- Настройка E2fsprogs
- </h3>
- <p>
- Файл <code class="filename">/etc/mke2fs.conf</code> содержит
- значения по умолчанию для различных параметров командной
- строки <span class="command"><strong>mke2fs</strong></span>.
- Вы можете отредактировать файл, чтобы значения по умолчанию
- соответствовали вашим потребностям. Например, некоторые
- утилиты (не в LFS или BLFS) не могут распознать файловую
- систему <code class="systemitem">ext4</code> с включенным
- параметром <code class="literal">metadata_csum_seed</code>.
- <span class="bold"><strong>Если</strong></span> вам нужна
- такая утилита, вы можете удалить параметр из списка по
- умолчанию для <code class="systemitem">ext4</code> с помощью
- команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf</kbd></pre>
- <p>
- Подробности читайте на странице руководства <a class="ulink"
- href=
- "https://man.archlinux.org/man/mke2fs.conf.5">mke2fs.conf(5)</a>.
- </p>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-e2fsprogs" name=
- "contents-e2fsprogs"></a>8.79.3. Содержимое пакета E2fsprogs
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">badblocks,
- chattr, compile_et, debugfs, dumpe2fs, e2freefrag,
- e2fsck, e2image, e2label, e2mmpstatus, e2scrub,
- e2scrub_all, e2undo, e4crypt, e4defrag, filefrag,
- fsck.ext2, fsck.ext3, fsck.ext4, logsave, lsattr,
- mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4,
- mklost+found, resize2fs и tune2fs</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Установленные
- библиотеки:</strong> <span class="segbody">libcom_err.so,
- libe2p.so, libext2fs.so, и libss.so</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/usr/include/e2p, /usr/include/et,
- /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs,
- /usr/share/et и /usr/share/ss</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm15211" name="idm15211"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="badblocks" name="badblocks"></a><span class=
- "term"><span class=
- "command"><strong>badblocks</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет поиск поврежденных блоков на устройстве
- (обычно на разделе диска)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="chattr" name="chattr"></a><span class=
- "term"><span class=
- "command"><strong>chattr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Изменяет атрибуты файлов в файловых системах
- <code class="systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="compile_et" name=
- "compile_et"></a><span class="term"><span class=
- "command"><strong>compile_et</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Компилятор таблицы ошибок; конвертирует таблицу
- имен кодов ошибок и сообщений в файл исходного кода
- на языке С с тем, чтобы ее можно было использовать
- с библиотекой <code class="filename">com_err</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="debugfs" name="debugfs"></a><span class=
- "term"><span class=
- "command"><strong>debugfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отладчик файловой системы; его можно использовать
- для проверки и изменения состояния файловых систем
- <code class="systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="dumpe2fs" name="dumpe2fs"></a><span class=
- "term"><span class=
- "command"><strong>dumpe2fs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выводит информацию о суперблоке и группе блоков для
- файловой системы, присутствующей на указанном
- устройстве.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2freefrag" name=
- "e2freefrag"></a><span class="term"><span class=
- "command"><strong>e2freefrag</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает информацию о фрагментации свободного
- пространства
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2fsck" name="e2fsck"></a><span class=
- "term"><span class=
- "command"><strong>e2fsck</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для проверки и, при необходимости,
- восстановления файловых систем <code class=
- "systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2image" name="e2image"></a><span class=
- "term"><span class=
- "command"><strong>e2image</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для сохранения важных данных файловых
- систем <code class="systemitem">ext{234}</code> в
- файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2label" name="e2label"></a><span class=
- "term"><span class=
- "command"><strong>e2label</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Отображает или изменяет метку файловой системы в
- файловой системе <code class=
- "systemitem">ext{234}</code> на данном устройстве.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2mmpstatus" name=
- "e2mmpstatus"></a><span class="term"><span class=
- "command"><strong>e2mmpstatus</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет состояние MMP (Multiple Mount Protection
- - защита от множественного монтирования) файловой
- системы <code class="systemitem">ext4</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2scrub" name="e2scrub"></a><span class=
- "term"><span class=
- "command"><strong>e2scrub</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет содержимое смонтированной файловой
- системы <code class="systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2scrub_all" name=
- "e2scrub_all"></a><span class="term"><span class=
- "command"><strong>e2scrub_all</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет все смонтированные файловые системы
- <code class="systemitem">ext{234}</code> на наличие
- ошибок
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e2undo" name="e2undo"></a><span class=
- "term"><span class=
- "command"><strong>e2undo</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Воспроизводит журнал отмены (undo_log) для файловой
- системы <code class="systemitem">ext{234}</code>,
- обнаруженной на устройстве. [Это можно использовать
- для отмены неудачной операции программой
- E2fsprogs.]
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e4crypt" name="e4crypt"></a><span class=
- "term"><span class=
- "command"><strong>e4crypt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Утилита шифрования файловой системы <code class=
- "systemitem">Ext4</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="e4defrag" name="e4defrag"></a><span class=
- "term"><span class=
- "command"><strong>e4defrag</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Онлайн дефрагментатор для файловой системы
- <code class="systemitem">ext4</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="filefrag" name="filefrag"></a><span class=
- "term"><span class=
- "command"><strong>filefrag</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает о том, насколько сильно может быть
- фрагментирован конкретный файл
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck.ext2" name="fsck.ext2"></a><span class=
- "term"><span class=
- "command"><strong>fsck.ext2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию проверяет файловые системы
- <code class="systemitem">ext2</code> и является
- жесткой ссылкой на <span class=
- "command"><strong>e2fsck</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck.ext3" name="fsck.ext3"></a><span class=
- "term"><span class=
- "command"><strong>fsck.ext3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию проверяет файловые системы
- <code class="systemitem">ext3</code> и является
- жесткой ссылкой на <span class=
- "command"><strong>e2fsck</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fsck.ext4" name="fsck.ext4"></a><span class=
- "term"><span class=
- "command"><strong>fsck.ext4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию проверяет файловые системы
- <code class="systemitem">ext4</code> и является
- жесткой ссылкой на <span class=
- "command"><strong>e2fsck</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="logsave" name="logsave"></a><span class=
- "term"><span class=
- "command"><strong>logsave</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сохраняет вывод команды в файл журнала
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lsattr" name="lsattr"></a><span class=
- "term"><span class=
- "command"><strong>lsattr</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перечисляет атрибуты файлов во второй расширенной
- файловой системе.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mk_cmds" name="mk_cmds"></a><span class=
- "term"><span class=
- "command"><strong>mk_cmds</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Преобразует таблицу имен команд и справочных
- сообщений в исходный файл C, подходящий для
- использования с библиотекой подсистемы <code class=
- "filename">libss</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mke2fs" name="mke2fs"></a><span class=
- "term"><span class=
- "command"><strong>mke2fs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Создает файловую систему <code class=
- "systemitem">ext{234}</code> на указанном
- устройстве
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.ext2" name="mkfs.ext2"></a><span class=
- "term"><span class=
- "command"><strong>mkfs.ext2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию создает файловую систему <code class=
- "systemitem">ext2</code> и является жесткой ссылкой
- на <span class=
- "command"><strong>mke2fs</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.ext3" name="mkfs.ext3"></a><span class=
- "term"><span class=
- "command"><strong>mkfs.ext3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию создает файловую систему <code class=
- "systemitem">ext3</code> и является жесткой ссылкой
- на <span class=
- "command"><strong>mke2fs</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mkfs.ext4" name="mkfs.ext4"></a><span class=
- "term"><span class=
- "command"><strong>mkfs.ext4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- По умолчанию создает файловую систему <code class=
- "systemitem">ext4</code> и является жесткой ссылкой
- на <span class=
- "command"><strong>mke2fs</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mklost-found" name=
- "mklost-found"></a><span class="term"><span class=
- "command"><strong>mklost+found</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Используется для создания каталога <code class=
- "filename">lost+found</code> в файловой системе
- <code class="systemitem">ext{234}</code>;
- предварительно выделяет дисковые блоки для этого
- каталога, чтобы облегчить задачу <span class=
- "command"><strong>e2fsck</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="resize2fs" name="resize2fs"></a><span class=
- "term"><span class=
- "command"><strong>resize2fs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Может использоваться для увеличения или уменьшения
- файловой системы <code class=
- "systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="tune2fs" name="tune2fs"></a><span class=
- "term"><span class=
- "command"><strong>tune2fs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Позволяет настроить параметры для файловой системы
- <code class="systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libcom_err" name=
- "libcom_err"></a><span class="term"><code class=
- "filename">libcom_err</code></span>
- </p>
- </td>
- <td>
- <p>
- Стандартная процедура отображения ошибок
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libe2p" name="libe2p"></a><span class=
- "term"><code class="filename">libe2p</code></span>
- </p>
- </td>
- <td>
- <p>
- Используется <span class=
- "command"><strong>dumpe2fs</strong></span>,
- <span class=
- "command"><strong>chattr</strong></span>, и
- <span class=
- "command"><strong>lsattr</strong></span>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libext2fs" name="libext2fs"></a><span class=
- "term"><code class=
- "filename">libext2fs</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит подпрограммы, позволяющие программам
- пользовательского уровня управлять файловой
- системой <code class="systemitem">ext{234}</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="libss" name="libss"></a><span class=
- "term"><code class="filename">libss</code></span>
- </p>
- </td>
- <td>
- <p>
- Используется <span class=
- "command"><strong>debugfs</strong></span>
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-sysklogd" name=
- "ch-system-sysklogd"></a>8.80. Sysklogd-1.5.1
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Sysklogd содержит программы для логирования системных
- сообщений, таких как сообщения ядра, когда происходят
- различные события.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">680
- KB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.80.1. Установка пакета Sysklogd
- </h3>
- <p>
- Во-первых, устраните проблему, которая при некоторых условиях
- вызывает в klogd ошибку сегментирования и исправьте
- устаревшую программную конструкцию:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
-sed -i 's/union wait/int/' syslogd.c</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- Этот пакет не содержит набора тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make BINDIR=/sbin install</kbd></pre>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-sysklogd" name="conf-sysklogd"></a>8.80.2.
- Настройка Sysklogd
- </h3>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/syslog.conf</code>, выполнив следующую
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/syslog.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/syslog.conf
-
-auth,authpriv.* -/var/log/auth.log
-*.*;auth,authpriv.none -/var/log/sys.log
-daemon.* -/var/log/daemon.log
-kern.* -/var/log/kern.log
-mail.* -/var/log/mail.log
-user.* -/var/log/user.log
-*.emerg *
-
-# End /etc/syslog.conf</code>
-EOF</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-sysklogd" name=
- "contents-sysklogd"></a>8.80.3. Содержимое пакета Sysklogd
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">klogd и
- syslogd</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm15523" name="idm15523"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="klogd" name="klogd"></a><span class=
- "term"><span class=
- "command"><strong>klogd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Системный демон для перехвата и регистрации
- сообщений ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="syslogd" name="syslogd"></a><span class=
- "term"><span class=
- "command"><strong>syslogd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Регистрирует сообщения системных программ для
- записи в лог [Каждое регистрируемое сообщение
- содержит как минимум время события, имя хоста, а
- также имя программы, но это зависит от настроек
- службы логирования.]
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-sysvinit" name=
- "ch-system-sysvinit"></a>8.81. Sysvinit-3.08
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет Sysvinit содержит программы для управления загрузкой,
- выполнением и выключением системы.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">3.5
- MB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 8.81.1. Установка пакета Sysvinit
- </h3>
- <p>
- Сначала примените патч, который удаляет несколько программ,
- установленных другими пакетами и исправляет предупреждение
- компилятора:
- </p>
- <pre class="userinput"><kbd class=
- "command">patch -Np1 -i ../sysvinit-3.08-consolidated-1.patch</kbd></pre>
- <p>
- Скомпилируйте пакет:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- С этим пакетом не поставляется набор тестов.
- </p>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-sysvinit" name=
- "contents-sysvinit"></a>8.81.2. Содержимое пакета Sysvinit
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные
- программы:</strong> <span class="segbody">bootlogd,
- fstab-decode, halt, init, killall5, poweroff (ссылка на
- halt), reboot (ссылка на halt), runlevel, shutdown и
- telinit (ссылка на init)</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm15570" name="idm15570"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="bootlogd" name="bootlogd"></a><span class=
- "term"><span class=
- "command"><strong>bootlogd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Логирует сообщения при загрузке системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="fstab-decode" name=
- "fstab-decode"></a><span class="term"><span class=
- "command"><strong>fstab-decode</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает команду с аргументами, заданными в fstab
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="halt-sysv" name="halt-sysv"></a><span class=
- "term"><span class=
- "command"><strong>halt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обычно вызывает команду <span class=
- "command"><strong>shutdown</strong></span> с
- параметром <em class=
- "parameter"><code>-h</code></em>, за исключением
- случаев, когда уровень запуска уже равен 0, тогда
- он посылает ядру сигнал на остановку системы; Кроме
- этого отмечает в файле <code class=
- "filename">/var/log/wtmp</code>, что система
- завершает работу
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="init-sysv" name="init-sysv"></a><span class=
- "term"><span class=
- "command"><strong>init</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Первый процесс, который запускается после
- инициализации оборудования; init берет на себя
- процесс загрузки и запускает все процессы, которые
- указанны в его файле конфигурации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="killall5" name="killall5"></a><span class=
- "term"><span class=
- "command"><strong>killall5</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Посылает сигнал всем процессам, за исключением
- процессов в его собственном сеансе; он не завершит
- свою родительскую оболочку
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="poweroff-sysv" name=
- "poweroff-sysv"></a><span class="term"><span class=
- "command"><strong>poweroff</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Посылает ядру команду остановить систему и
- выключить компьютер (смотрите команду <span class=
- "command"><strong>halt</strong></span>)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="reboot-sysv" name=
- "reboot-sysv"></a><span class="term"><span class=
- "command"><strong>reboot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Посылает ядру команду перезагрузить систему
- (смотрите команду <span class=
- "command"><strong>halt</strong></span>)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="runlevel-sysv" name=
- "runlevel-sysv"></a><span class="term"><span class=
- "command"><strong>runlevel</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает о предыдущем и текущем уровнях выполнения
- так, как это указано в последней записи в файле
- <code class="filename">/run/utmp</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="shutdown-sysv" name=
- "shutdown-sysv"></a><span class="term"><span class=
- "command"><strong>shutdown</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Безопасно останавливает систему, отправляя сигналы
- всем процессам и оповещая всех пользователей,
- находящихся в системе
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="telinit-sysv" name=
- "telinit-sysv"></a><span class="term"><span class=
- "command"><strong>telinit</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сообщает <span class=
- "command"><strong>init</strong></span> на какой
- уровень выполнения перейти
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-aboutdebug" name=
- "ch-system-aboutdebug"></a>8.82. Об отладочных символах
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Большинство программ и библиотек по умолчанию компилируются с
- отладочными символами (<span class=
- "command"><strong>gcc</strong></span> с параметром <em class=
- "parameter"><code>-g</code></em>). Это означает, что при
- отладке программы или библиотеки, которые были скомпилированы с
- использованием отладочной информации, отладчик может
- предоставить не только адреса памяти, но и имена подпрограмм и
- переменных.
- </p>
- <p>
- Включение отладочных символов значительно увеличивает размер
- программы или библиотеки. Ниже приведена информация по объему
- пространства, занимаемого отладочными символами:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Двоичный файл <span class=
- "command"><strong>bash</strong></span> с отладочными
- символами: 1200 KB
- </p>
- </li>
- <li class="listitem">
- <p>
- Двоичный файл <span class=
- "command"><strong>bash</strong></span> без отладочных
- символов: 480 KB (на 60% меньше)
- </p>
- </li>
- <li class="listitem">
- <p>
- Файлы Glibc и GCC (<code class="filename">/lib</code> и
- <code class="filename">/usr/lib</code>) с отладочными
- символами: 87 MB
- </p>
- </li>
- <li class="listitem">
- <p>
- Файлы Glibc и GCC без отладочных символов: 16 MB (на 82%
- меньше)
- </p>
- </li>
- </ul>
- </div>
- <p>
- Размеры могут варьироваться в зависимости от используемого
- компилятора и библиотеки Си, но программа, в которой были
- удалены отладочные символы, обычно примерно на 50-80% меньше,
- чем ее аналог с ними. Поскольку большинство пользователей
- никогда не будут использовать отладчик в своем программном
- обеспечении, удаление отладочных символов может освободить
- много места на диске. В следующем разделе показано, как удалить
- все отладочные символы из программ и библиотек.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-stripping" name=
- "ch-system-stripping"></a>8.83. Удаление отладочных
- символов
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Этот раздел является необязательным. Если предполагаемый
- пользователь не является программистом и не планирует выполнять
- какую-либо отладку системного программного обеспечения, размер
- системы можно уменьшить примерно на 2 ГБ, удалив отладочные
- символы и некоторые ненужные записи таблицы символов из
- двоичных файлов и библиотек. Это не вызывает никаких неудобств
- для обычного пользователя Linux.
- </p>
- <p>
- Большинство людей, использующих приведенные ниже команды, не
- испытывают никаких трудностей. Однако легко допустить опечатку
- и сделать новую систему непригодной для использования. Поэтому
- перед выполнением команды <span class=
- "command"><strong>strip</strong></span> рекомендуется сделать
- резервную копию системы LFS.
- </p>
- <p>
- Команда <span class="command"><strong>strip</strong></span> с
- параметром <em class=
- "parameter"><code>--strip-unneeded</code></em> удаляет все
- отладочные символы из двоичного файла или библиотеки. Кроме
- этого, она удаляет все записи таблицы символов, ненужные
- компоновщику (для статических библиотек) или динамическому
- компоновщику (для динамически подключаемых двоичных файлов и
- общих библиотек).
- </p>
- <p>
- Отладочные символы из выбранных библиотек сжимаются с помощью
- <span class="application">Zlib</span> и сохраняются в отдельных
- файлах. Эта отладочная информация необходима при выполнении
- регрессионных тестов, с помощью <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1//general/valgrind.html">
- valgrind</a> или <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1//general/gdb.html">
- gdb</a> позже, в BLFS.
- </p>
- <p>
- Обратите внимание, что команда <span class=
- "command"><strong>strip</strong></span> перезапишет двоичный
- файл или библиотеку, которую она обрабатывает. Это может
- привести к сбою процессов, использующих код или данные из
- файла. Если это затронет сам процесс, выполняющий <span class=
- "command"><strong>strip</strong></span>, удаляемый двоичный
- файл или библиотека могут быть уничтожены; это может сделать
- систему полностью непригодной для использования. Чтобы избежать
- этого, мы скопируем некоторые библиотеки и двоичные файлы в
- <code class="filename">/tmp</code>, очистим их и переустановим
- с помощью команды <span class=
- "command"><strong>install</strong></span>. Прочтите статью
- <a class="xref" href="#pkgmgmt-upgrade-issues" title=
- "8.2.1. Проблемы с обновлением">Раздел&nbsp;8.2.1, «Проблемы с
- обновлением»</a>, чтобы понять, почему следует использовать
- команду <span class="command"><strong>install</strong></span>
- здесь.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Имя загрузчика ELF — ld-linux-x86-64.so.2 в 64-битных
- системах. и ld-linux.so.2 в 32-битных системах. Конструкция
- ниже выбирает правильное имя для текущей архитектуры,
- исключая всё, что заканчивается на <code class=
- "literal">g</code>, если приведенные ниже команды уже были
- выполнены.
- </p>
- </div>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Если есть какой-либо пакет, версия которого отличается от
- версии, указанной в книге (либо в соответствии с
- рекомендациями по безопасности, либо в соответствии с личными
- предпочтениями), может потребоваться обновить имя файла
- библиотеки в <code class="envar">save_usrlib</code> или
- <code class="envar">online_usrlib</code>. <span class=
- "bold"><strong>В противном случае система может стать
- полностью непригодной для использования.</strong></span>
- </p>
- </div>
- <pre class="userinput"><kbd class=
- "command">save_usrlib="$(cd /usr/lib; ls ld-linux*[^g])
- libc.so.6
- libthread_db.so.1
- libquadmath.so.0.0.0
- libstdc++.so.6.0.32
- libitm.so.1.0.0
- libatomic.so.1.2.0"
-
-cd /usr/lib
-
-for LIB in $save_usrlib; do
- objcopy --only-keep-debug --compress-debug-sections=zlib $LIB $LIB.dbg
- cp $LIB /tmp/$LIB
- strip --strip-unneeded /tmp/$LIB
- objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
- install -vm755 /tmp/$LIB /usr/lib
- rm /tmp/$LIB
-done
-
-online_usrbin="bash find strip"
-online_usrlib="libbfd-2.42.so
- libsframe.so.1.0.0
- libhistory.so.8.2
- libncursesw.so.6.4-20230520
- libm.so.6
- libreadline.so.8.2
- libz.so.1.3.1
- libzstd.so.1.5.5
- $(cd /usr/lib; find libnss*.so* -type f)"
-
-for BIN in $online_usrbin; do
- cp /usr/bin/$BIN /tmp/$BIN
- strip --strip-unneeded /tmp/$BIN
- install -vm755 /tmp/$BIN /usr/bin
- rm /tmp/$BIN
-done
-
-for LIB in $online_usrlib; do
- cp /usr/lib/$LIB /tmp/$LIB
- strip --strip-unneeded /tmp/$LIB
- install -vm755 /tmp/$LIB /usr/lib
- rm /tmp/$LIB
-done
-
-for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
- $(find /usr/lib -type f -name \*.a) \
- $(find /usr/{bin,sbin,libexec} -type f); do
- case "$online_usrbin $online_usrlib $save_usrlib" in
- *$(basename $i)* )
- ;;
- * ) strip --strip-unneeded $i
- ;;
- esac
-done
-
-unset BIN LIB save_usrlib online_usrbin online_usrlib
-</kbd></pre>
- <p>
- Большое количество файлов будет помечено как ошибочные, потому
- что формат файла не распознан. Эти предупреждения можно смело
- игнорировать. Они указывают на то, что файлы являются
- скриптами, а не двоичными файлами.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-system-cleanup" name=
- "ch-system-cleanup"></a>8.84. Очистка
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Наконец, удалите некоторые лишние файлы, оставшиеся после
- запуска тестов:
- </p>
- <pre class="userinput"><kbd class=
- "command">rm -rf /tmp/*</kbd></pre>
- <p>
- Также в каталогах /usr/lib и /usr/libexec есть несколько файлов
- с расширением .la. Это файлы <span class="quote">«<span class=
- "quote">архива libtool</span>»</span>. Как было сказано ранее,
- в современной системе Linux файлы .la libtool необходимы только
- для libltdl. Предполагается, что libltdl не будет загружать
- библиотеки в LFS, кроме этого известно, что некоторые файлы .la
- могут нарушить сборку пакетов BLFS. Удалите эти файлы сейчас:
- </p>
- <pre class="userinput"><kbd class=
- "command">find /usr/lib /usr/libexec -name \*.la -delete</kbd></pre>
- <p>
- Дополнительные сведения об архивных файлах Libtool смотрите в
- книге BLFS <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/introduction/la-files.html">
- "О файлах Libtool Archive (.la)"</a>.
- </p>
- <p>
- Компилятор, собранный в <a class="xref" href=
- "#chapter-temporary-tools" title=
- "Глава 6. Кросс-Компиляция временных инструментов">Глава&nbsp;6</a>
- и <a class="xref" href="#chapter-chroot-temporary-tools" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Глава&nbsp;7</a> все еще установлен, но больше не нужен.
- Удалите его с помощью команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf</kbd></pre>
- <p>
- Наконец, удалите временную учетную запись пользователя
- 'tester', созданную в начале предыдущей главы.
- </p>
- <pre class="userinput"><kbd class=
- "command">userdel -r tester</kbd></pre>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-config" name="chapter-config"></a>Глава 9.
- Системные настройки
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-introduction" name=
- "ch-config-introduction"></a>9.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Загрузка системы Linux включает в себя несколько задач. Процесс
- должен монтировать как виртуальные, так и реальные файловые
- системы, инициализировать устройства, активировать файл
- подкачки, проверять целостность файловых систем, монтировать
- любые разделы или файл подкачки, устанавливать системные часы,
- запускать сеть, запускать требуемые системой службы и выполнять
- любые другие необходимые пользователю задачи. Этот процесс
- должен быть организован таким образом, чтобы задачи выполнялись
- в правильном порядке, но в то же время как можно быстрее.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="sysv-desc" name="sysv-desc"></a>9.1.1. System V
- </h3>
- <p>
- System V это классический процесс загрузки, который
- использовался в Unix и Unix-подобных системах, таких как
- Linux с 1983 года. Он состоит из небольшой программы
- <span class="command"><strong>init</strong></span>, которая
- настраивает базовые программы, такие как <span class=
- "command"><strong>login</strong></span> (через getty) и
- запускает скрипт. Этот скрипт, обычно именуемый <span class=
- "command"><strong>rc</strong></span> управляет выполнением
- дополнительных сценариев, необходимых для инициализации
- системы.
- </p>
- <p>
- Программа <span class="command"><strong>init</strong></span>
- управляется файлом <code class="filename">/etc/inittab</code>
- и разделена по уровням выполнения, которые могут быть выбраны
- пользователем. В LFS используются следующие уровни:
- </p>
- <div class="literallayout">
- <p>
- 0&nbsp;—&nbsp;выключение<br />
- 1&nbsp;—&nbsp;Однопользовательский&nbsp;режим<br />
- 2&nbsp;—&nbsp;Определяемый&nbsp;пользователем<br />
- 3&nbsp;—&nbsp;Полный&nbsp;многопользовательский&nbsp;режим<br />
-
- 4&nbsp;—&nbsp;Определяемый&nbsp;пользователем<br />
- 5&nbsp;—&nbsp;Полный&nbsp;многопользовательский&nbsp;режим&nbsp;с&nbsp;дисплей-менеджером<br />
-
- 6&nbsp;—&nbsp;перезагрузка
- </p>
- </div>
- <p>
- Уровень выполнения по умолчанию равен 3 или 5.
- </p>
- <h4>
- <a id="idm15733" name="idm15733"></a>Преимущества
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Устоявшаяся, хорошо отлаженная система.
- </p>
- </li>
- <li class="listitem">
- <p>
- Легко настраивается.
- </p>
- </li>
- </ul>
- </div>
- <h4>
- <a id="idm15739" name="idm15739"></a>Недостатки
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Может загружаться медленнее. Загрузка базовой системы
- LFS в среднем занимает 8-12 секунд, при этом время
- загрузки измеряется от первого сообщения ядра до
- запроса на вход в систему. Подключение к сети обычно
- устанавливается примерно через 2 секунды после запроса
- на вход в систему.
- </p>
- </li>
- <li class="listitem">
- <p>
- Последовательная обработка задач загрузки. Это связано
- с предыдущим пунктом. Задержка в работе любого
- процесса, например, проверка файловой системы, приведет
- к задержке всего процесса загрузки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Напрямую не поддерживает дополнительные функции, такие
- как контрольные группы (cgroups) и диспетчер системных
- ресурсов для каждого пользователя.
- </p>
- </li>
- <li class="listitem">
- <p>
- Добавление init-скриптов требует ручных однотипных
- действий.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-bootscripts" name=
- "ch-config-bootscripts"></a>9.2. LFS-Bootscripts-20230728
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет LFS-Bootscripts содержит набор скриптов для
- запуска/остановки системы LFS при загрузке/завершении работы.
- Файлы конфигурации и процедуры, необходимые для настройки
- /процесса загрузки, описаны в следующих разделах.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">менее 0.1
- SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">244
- KB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.2.1. Установка пакета LFS-Bootscripts
- </h3>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class=
- "command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-bootscripts" name=
- "contents-bootscripts"></a>9.2.2. Содержимое пакета
- LFS-Bootscripts
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные скрипты:</strong>
- <span class="segbody">checkfs, cleanfs, console,
- functions, halt, ifdown, ifup, localnet, modules,
- mountfs, mountvirtfs, network, rc, reboot, sendsignals,
- setclock, ipv4-static, swap, sysctl, sysklogd, template,
- udev и udev_retry</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/rc.d, /etc/init.d
- (символическая ссылка), /etc/sysconfig, /lib/services,
- /lib/lsb (символическая ссылка)</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm15776" name="idm15776"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="checkfs-bootscripts" name=
- "checkfs-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>checkfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет целостность файловых систем перед их
- монтированием (за исключением журналируемых и
- сетевых файловых систем)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cleanfs-bootscripts" name=
- "cleanfs-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>cleanfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет файлы, которые не должны сохраняться между
- перезагрузками, например, те, которые находятся в
- директориях <code class="filename">/run/</code> и
- <code class="filename">/var/lock/</code>; скрипт
- пересоздает <code class="filename">/run/utmp</code>
- и удаляет файлы, которые, возможно, существуют
- <code class="filename">/etc/nologin</code>,
- <code class="filename">/fastboot</code>, и
- <code class="filename">/forcefsck</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="console-bootscripts" name=
- "console-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>console</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает правильную таблицу раскладок для
- требуемой раскладки клавиатуры; он также
- устанавливает экранный шрифт
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="functions-bootscripts" name=
- "functions-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>functions</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Содержит общие функции, такие как проверка ошибок и
- состояния, которые используются несколькими
- загрузочными скриптами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="halt-bootscripts" name=
- "halt-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>halt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Останавливает работу системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifdown-bootscripts" name=
- "ifdown-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>ifdown</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Останавливает сетевое устройство
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifup-bootscripts" name=
- "ifup-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>ifup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инициализирует сетевое устройство
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="localnet-bootscripts" name=
- "localnet-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>localnet</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает имя хоста системы и локальное
- устройство loopback
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="modules-bootscripts" name=
- "modules-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>modules</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает модули ядра из списка, который находится
- в файле <code class=
- "filename">/etc/sysconfig/modules</code>, используя
- указанные там же аргументы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mountfs-bootscripts" name=
- "mountfs-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>mountfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Монтирует все файловые системы, кроме тех, которые
- помечены как <span class=
- "emphasis"><em>noauto</em></span> или сетевых
- файловых систем
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mountvirtfs-bootscripts" name=
- "mountvirtfs-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>mountvirtfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Монтирует виртуальные файловые системы, такие как
- <code class="systemitem">proc</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="network-bootscripts" name=
- "network-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>network</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет настройку сетевых интерфейсов, например,
- сетевых карт, и настаивает шлюз по-умолчанию (где
- это применимо)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rc-bootscripts" name=
- "rc-bootscripts"></a><span class=
- "term"><span class="command"><strong>rc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Основной сценарий управления; он отвечает за запуск
- всех остальных загрузочных скриптов один за другим,
- в последовательности, определяемой именами
- символических ссылок на другие скрипты.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="reboot-bootscripts" name=
- "reboot-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>reboot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перезагружает систему
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sendsignals-bootscripts" name=
- "sendsignals-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>sendsignals</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обеспечивает завершение каждого процесса перед
- перезагрузкой или остановкой системы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setclock-bootscripts" name=
- "setclock-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>setclock</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сбрасывает системные часы на местное время, если
- аппаратные часы не установлены на всемирное
- координированное время (UTC).
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ipv4-static-bootscripts" name=
- "ipv4-static-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>ipv4-static</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет функциональные возможности,
- необходимые для назначения статического адреса
- сетевому интерфейсу.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="swap-bootscripts" name=
- "swap-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>swap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Включает и отключает файлы и разделы, используемые
- для подкачки.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sysctl-bootscripts" name=
- "sysctl-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>sysctl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает в работающее ядро значения системных
- настроек из файла <code class=
- "filename">/etc/sysctl.conf</code>, если этот файл
- существует
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sysklogd-bootscripts" name=
- "sysklogd-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>sysklogd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает и останавливает демоны журналирования
- сообщений, выдаваемых системой и ядром.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="template-bootscripts" name=
- "template-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>template</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Шаблон для создания пользовательских загрузочных
- скриптов для других демонов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-bootscripts" name=
- "udev-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>udev</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подготавливает каталог <code class=
- "filename">/dev</code> и запускает демон udev
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-retry-bootscripts" name=
- "udev-retry-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>udev_retry</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Повторяет неудачные попытки запуска udev uevents и
- копирует сгенерированные файлы правил из
- <code class="filename">/run/udev</code> в
- <code class="filename">/etc/udev/rules.d</code>
- если требуется.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-udev" name="ch-config-udev"></a>9.3.
- Взаимодействие с устройствами и модулями
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В <a class="xref" href="#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a>, мы установили демон udev во время сборки
- <span class="phrase">udev</span> . Прежде чем мы углубимся в
- детали того, как работает udev, необходимо кратко рассказать о
- предыдущих методах взаимодействия с устройствами.
- </p>
- <p>
- Системы Linux традиционно использовали метод статического
- создания устройств, при котором огромное количество узлов
- устройств(иногда буквально тысячи узлов) создавалось в
- <code class="filename">/dev</code>, независимо от того,
- существовали ли соответствующие аппаратные устройства на самом
- деле. Обычно это делалось с помощью скрипта <span class=
- "command"><strong>MAKEDEV</strong></span>, который содержал ряд
- вызовов команды <span class=
- "command"><strong>mknod</strong></span> с соответствующими
- основными и второстепенными номерами устройств, для всех
- возможных вариантов, которые только могут существовать в мире.
- </p>
- <p>
- Используя метод udev, узлы устройств создаются только для тех
- устройств, которые обнаружены ядром. Эти узлы устройств
- создаются каждый раз при загрузке системы; они хранятся в
- файловой системе <code class="systemitem">devtmpfs</code>
- (виртуальная файловая система, которая полностью находится в
- оперативной памяти). Узлы не занимают много места в памяти и их
- общий размер незначителен.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.3.1. История
- </h3>
- <p>
- В феврале 2000 года, новая файловая система <code class=
- "systemitem">devfs</code> была принята в ветку ядра 2.3.46 и
- была доступна на протяжении выпуска стабильных релизов ветки
- 2.4. Хотя она и присутствовала в ядре, такой способ
- динамического создания устройств никогда не получал поддержки
- от разработчиков ядра.
- </p>
- <p>
- Основная проблема с подходом, принятым <code class=
- "systemitem">devfs</code> была связана с обработкой
- обнаружения, создания и назначения имен устройствам. Проблема
- связанная с именованием узлов была самой важной. Общепринято,
- что если имена устройств можно настраивать, политика
- именования устройств должна выбираться системными
- администраторами, а не навязываться разработчиками. Файловая
- система <code class="systemitem">devfs</code> также страдала
- от состояния гонки, присущего её архитектуре; оно не могло
- быть исправлено без существенной переработки ядра.
- <code class="systemitem">devfs</code> долгое время была
- помечена как устаревшая и, наконец, была удалена из ядра в
- июне 2006 года.
- </p>
- <p>
- При разработке нестабильной ветки ядра 2.5, позднее,
- выпущенной как стабильный релиз 2.6, появилась новая
- виртуальная файловая система <code class=
- "systemitem">sysfs</code>. Задача этой файловой системы
- заключалась в предоставление информации о конфигурации
- оборудования системы процессам пользовательского
- пространства. С помощью этого представления, видимого в
- пользовательском пространстве, стало возможным разработать
- замену пользовательского пространства для <code class=
- "systemitem">devfs</code>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.3.2. Реализация Udev
- </h3>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm15978" name="idm15978"></a>9.3.2.1. Sysfs
- </h4>
- </div>
- </div>
- </div>
- <p>
- Краткое описание файловой системы <code class=
- "systemitem">sysfs</code> было представлено выше. Можно
- задаться вопросом, как <code class=
- "systemitem">sysfs</code> получает информацию об
- устройствах в системе, и о том, какие номера устройств
- должны использоваться для них. Драйверы, скомпилированные в
- ядро, регистрируют свои объекты в <code class=
- "systemitem">sysfs</code> (внутри <code class=
- "systemitem">devtmpfs</code>), по мере обнаружения ядром.
- Для драйверов, которые скомпилированы в виде модулей,
- регистрация происходит при его загрузке. После монтирования
- файловой системы <code class="systemitem">sysfs</code> (в
- каталог <code class="filename">/sys</code>), данные,
- зарегистрированные драйверами, в <code class=
- "systemitem">sysfs</code>, станут доступны для
- пользовательского пространства и udevd для обработки
- (включая модификацию узлов устройств).
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="ch-config-udev-device-node-creation" name=
- "ch-config-udev-device-node-creation"></a>9.3.2.2.
- Создание узла устройства
- </h4>
- </div>
- </div>
- </div>
- <p>
- Файлы устройств создаются ядром в файловой системе
- <code class="systemitem">devtmpfs</code>. Любой драйвер,
- которому необходимо зарегистрировать узел устройства, будет
- использовать для этого <code class=
- "systemitem">devtmpfs</code> (через системный драйвер
- ядра). Когда экземпляр <code class=
- "systemitem">devtmpfs</code> монтируется в каталог
- <code class="filename">/dev</code>, узел устройства будет
- доступен в пользовательском пространстве с фиксированным
- именем, разрешениями и владельцем.
- </p>
- <p>
- Через некоторое время, ядро отправит uevent в <span class=
- "command"><strong>udevd</strong></span>. На основе правил,
- которые указанны в файлах в каталогах <code class=
- "filename">/etc/udev/rules.d</code>, <code class=
- "filename">/lib/udev/rules.d</code>, и <code class=
- "filename">/run/udev/rules.d</code>, <span class=
- "command"><strong>udevd</strong></span> создаст
- дополнительные символические ссылки на узлы устройств, или
- сменит разрешения, владельца или группу, или изменит запись
- (имя) во внутренней базе данных <span class=
- "command"><strong>udevd</strong></span> для этого объекта.
- </p>
- <p>
- Правила в этих трёх каталогах пронумерованы и используются
- совместно. Если <span class=
- "command"><strong>udevd</strong></span> не может найти
- правило для устройства, он оставит права доступа и
- владельца на <code class="systemitem">devtmpfs</code>,
- которые были установлены изначально.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="module-loading" name=
- "module-loading"></a>9.3.2.3. Загрузка модуля
- </h4>
- </div>
- </div>
- </div>
- <p>
- Драйверы устройств, скомпилированные в виде модулей ядра
- могут содержать встроенные псевдонимы. Псевдонимы можно
- увидеть просмотрев вывод программы <span class=
- "command"><strong>modinfo</strong></span>, обычно они
- связаны со специфичными для шины идентификаторами
- устройств, которые поддерживается модулем. Например,
- драйвер <span class="emphasis"><em>snd-fm801</em></span>
- подерживает PCI устройства с идентификатором поставщика
- 0x1319 и идентификатором устройства 0x0801, и имеет
- псевдоним <code class=
- "literal">pci:v00001319d00000801sv*sd*bc04sc01i*</code>.
- Для большинства устройств, драйвер шины экспортирует
- псевдонимы драйвера, которые будет обрабатывать устройство
- через <code class="systemitem">sysfs</code>. Например, файл
- <code class=
- "filename">/sys/bus/pci/devices/0000:00:0d.0/modalias</code>
- может содержать строку <code class=
- "literal">pci:v00001319d00000801sv00001319sd00001319bc04sc01i00</code>.
- Правила по умолчанию, которые предоставлены Udev, заставят
- <span class="command"><strong>udevd</strong></span> вызвать
- <span class=
- "command"><strong>/sbin/modprobe</strong></span> с
- содержимым, которое находится в значении переменной
- окружения <code class="envar">MODALIAS</code> uevent
- (которое должно совпадать с содержимым файла <code class=
- "filename">modalias</code> в sysfs), тем самым загружая все
- модули, чьи псевдонимы совпадают в строке после расширения
- подстановочных знаков
- </p>
- <p>
- В указанном примере, это означает, что в дополнение к
- <span class="emphasis"><em>snd-fm801</em></span> будет
- загружен устаревший (и нежелательный) драйвер <span class=
- "emphasis"><em>forte</em></span>, если он будет доступен.
- Ниже приведены способы, как можно предотвратить загрузку
- нежелательных драйверов.
- </p>
- <p>
- Само ядро также способно загружать модули для сетевых
- протоколов, файловых систем и поддержки NLS по запросу.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16022" name="idm16022"></a>9.3.2.4. Работа
- с устройствами с горячей заменой или динамическими
- устройствами
- </h4>
- </div>
- </div>
- </div>
- <p>
- При подключении устройства, например, MP3-плеер, к
- универсальной последовательной шине (USB), ядро распознает,
- что устройство подключено, и генерирует событие uevent.
- Затем это событие обрабатывается <span class=
- "command"><strong>udevd</strong></span>, как было описано
- выше.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.3.3. Проблемы с загрузкой модулей и созданием устройств
- </h3>
- <p>
- Существует несколько возможных проблем, связанных с
- автоматическим созданием узлов устройств.
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16029" name="idm16029"></a>9.3.3.1. Модуль
- ядра не загружается автоматически
- </h4>
- </div>
- </div>
- </div>
- <p>
- Udev загрузит модуль только в том случае, если у него есть
- псевдоним, специфичный для шины, и драйвер шины правильно
- экспортирует необходимые псевдонимы в <code class=
- "systemitem">sysfs</code>. В других случаях следует
- организовать загрузку модуля иными способами. Известно,
- что, начиная с версии Linux-6.7.4, udev, выполняет загрузку
- правильно написанных драйверов для INPUT, IDE, PCI, USB,
- SCSI, SERIO, и FireWire устройств.
- </p>
- <p>
- Чтобы определить, имеет ли требуемый драйвер устройства
- необходимую поддержку Udev, запустите <span class=
- "command"><strong>modinfo</strong></span> с именем модуля в
- качестве аргумента. Далее, попробуйте найти каталог
- устройства в <code class="filename">/sys/bus</code> и
- проверьте, есть ли там файл <code class=
- "filename">modalias</code>.
- </p>
- <p>
- Если файл <code class="filename">modalias</code> существует
- в <code class="systemitem">sysfs</code>, то драйвер,
- который поддерживает устройство, может обращаться к нему
- напрямую, но не имеет псевдонима, это ошибка в драйвере.
- Загрузите драйвер без помощи Udev и ожидайте, что проблема
- будет исправлена позднее.
- </p>
- <p>
- Если же в каталоге <code class="filename">/sys/bus</code>
- нет файла <code class="filename">modalias</code>, это
- означает, что разработчики ядра еще не добавили поддержку
- <code class="filename">modalias</code> к этому типу шины. В
- Linux-6.7.4 это относится к шиной ISA. Ожидайте, что эта
- проблема будет исправлена в более поздних версиях ядра.
- </p>
- <p>
- Udev не предназначен для загрузки драйверов <span class=
- "quote">«<span class="quote">обёрток</span>»</span>, таких
- как <span class="emphasis"><em>snd-pcm-oss</em></span> и не
- аппаратных драйверов, например, <span class=
- "emphasis"><em>loop</em></span>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16048" name="idm16048"></a>9.3.3.2. Модуль
- ядра не загружается автоматически и Udev не
- предназначен для его загрузки
- </h4>
- </div>
- </div>
- </div>
- <p>
- Если модуль <span class="quote">«<span class=
- "quote">обёртка</span>»</span> только расширяет
- функциональность, предоставляемую каким-либо другим модулем
- (например модуль <span class=
- "emphasis"><em>snd-pcm-oss</em></span> расширяет
- функциональность модуля <span class=
- "emphasis"><em>snd-pcm</em></span>, давая возможность
- звуковым картам быть доступными для OSS приложений),
- настройте <span class=
- "command"><strong>modprobe</strong></span> для загрузки
- оболочки после того, как Udev загрузит обернутый модуль.
- Для этого добавьте строку <span class="quote">«<span class=
- "quote">softdep</span>»</span> в файл, который находится в
- каталоге <code class="filename">/etc/modprobe.d/<em class=
- "replaceable"><code>&lt;filename&gt;</code></em>.conf</code>.
- Например:
- </p>
- <pre class="screen"><code class=
- "literal">softdep snd-pcm post: snd-pcm-oss</code></pre>
- <p>
- Обратите внимание, что команда <span class=
- "quote">«<span class="quote">softdep</span>»</span>
- разрешает добавлять <code class="literal">pre:</code>
- зависимости, или одновременно <code class=
- "literal">pre:</code> и <code class="literal">post:</code>
- зависимости. Обратитесь к документации <a class="ulink"
- href=
- "https://man.archlinux.org/man/modprobe.d.5">modprobe.d(5)</a>
- для изучения синтаксиса и возможностей <span class=
- "quote">«<span class="quote">softdep</span>»</span>.
- </p>
- <p>
- Если рассматриваемый модуль не является обёрткой, и полезен
- сам по себе, настройте загрузочный скрипт <span class=
- "command"><strong>modules</strong></span>, чтобы он
- инициализировался при загрузке системы. Для этого добавьте
- имя модуля в файл <code class=
- "filename">/etc/sysconfig/modules</code> в отдельной
- строке. Этот способ сработает и для модулей-обёрток, но не
- является оптимальным.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16070" name="idm16070"></a>9.3.3.3. Udev
- загружает какой-то нежелательный модуль
- </h4>
- </div>
- </div>
- </div>
- <p>
- Либо не создавайте модуль, либо занесите его в черный
- список в файле <code class=
- "filename">/etc/modprobe.d/blacklist.conf</code>, как это
- сделано с модулем <span class=
- "emphasis"><em>forte</em></span> в примере ниже:
- </p>
- <pre class="screen"><code class=
- "literal">blacklist forte</code></pre>
- <p>
- Модули, занесенные в черный список, можно загрузить вручную
- с помощью явной команды <span class=
- "command"><strong>modprobe</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16079" name="idm16079"></a>9.3.3.4. Udev
- неправильно создает устройство или делает
- неправильную символическую ссылку
- </h4>
- </div>
- </div>
- </div>
- <p>
- Это обычно происходит, если правило неожиданно совпадает с
- другим устройством. Например, плохо написанное поставщиком
- оборудования правило может соответствовать как диску
- SCSI(искомое устройство), так и универсальному устройству
- SCSI (неправильно). Найдите ошибочное правило и исправьте
- его с помощью команды <span class="command"><strong>udevadm
- info</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16083" name="idm16083"></a>9.3.3.5. Правило
- Udev работает ненадежно
- </h4>
- </div>
- </div>
- </div>
- <p>
- Это может быть проявлением предыдущей проблемы. В ином
- случае, если правило использует атрибуты файловой системы
- <code class="systemitem">sysfs</code>, то это может быть
- проблемой синхронизации ядра, которая будет исправлена в
- более поздних версиях ядра. Но вы можете обойти проблему,
- создав правило, которое ожидает используемый атрибут
- <code class="systemitem">sysfs</code> и добавляет его к
- файлу правил <code class=
- "filename">/etc/udev/rules.d/10-wait_for_sysfs.rules</code>
- (создайте его, если файл не существует). Пожалуйста,
- сообщите в списке рассылки разработчиков LFS, если это
- решение вам поможет.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16089" name="idm16089"></a>9.3.3.6. Udev не
- создаёт устройство
- </h4>
- </div>
- </div>
- </div>
- <p>
- Во-первых, убедитесь, что драйвер встроен в ядро или уже
- загружен как модуль, и, что udev не создает устройство с
- неправильным именем.
- </p>
- <p>
- Если драйвер ядра не экспортирует свои данные в
- <code class="systemitem">sysfs</code>, udev не хватает
- информации, необходимой для создания узла устройства. Это,
- вероятнее всего, произойдет со сторонними драйверами,
- которых нет в дереве исходного кода ядра. Создайте
- статический узел в каталоге <code class=
- "filename">/usr/lib/udev/devices</code> с соответствующими
- старшим/младшим номерами (смотрите файл devices.txt в
- документации к ядру или документации, предоставленной
- сторонним поставщиком драйвера). Статический узел будет
- скопирован в <code class="filename">/dev</code> с помощью
- <span class="command"><strong>udev</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16097" name="idm16097"></a>9.3.3.7. Порядок
- присвоения имен устройствам меняется случайным
- образом после перезагрузки
- </h4>
- </div>
- </div>
- </div>
- <p>
- Это связано с тем, что udev обрабатывает события uevents и
- загружает модули параллельно, а значит в непредсказуемом
- порядке. Это никогда не будет <span class=
- "quote">«<span class="quote">исправлено</span>»</span>. Вы
- не должны полагаться на то что имена устройств ядра
- стабильны. Вместо этого создайте свои собственные правила,
- которые делают символические ссылки со стабильными именами
- на основе некоторых неизменяемых атрибутов устройства,
- таких как серийный номер или вывод различных утилит *_id,
- установленных Udev. Смотрите <a class="xref" href=
- "#ch-config-symlinks" title=
- "9.4. Управление устройствами">Раздел&nbsp;9.4, «Управление
- устройствами»</a> и <a class="xref" href=
- "#ch-config-network" title=
- "9.5. Настройка сети">Раздел&nbsp;9.5, «Настройка сети»</a>
- для примера.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.3.4. Полезная информация
- </h3>
- <p>
- Дополнительную документацию можно получить на следующих
- сайтах:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Реализация пользовательского пространства в
- <code class="systemitem">devfs</code> <a class="ulink"
- href=
- "http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf">
- http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf</a>
- </p>
- </li>
- <li class="listitem">
- <p>
- Файловая система <code class="systemitem">sysfs</code>
- <a class="ulink" href=
- "https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf">
- https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf</a>
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-symlinks" name=
- "ch-config-symlinks"></a>9.4. Управление устройствами
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.4.1. Сетевые устройства
- </h3>
- <p>
- Udev по умолчанию присваивает имена сетевым устройствам в
- соответствии с данными прошивки, BIOS'а или физическими
- характеристиками, такими как шина, слот или MAC-адрес. Целью
- такого соглашения об именовании является обеспечение того,
- чтобы сетевые устройства именовались последовательно, а не
- основывались на времени обнаружения сетевой карты. Например,
- в более старых версиях Linux—на компьютере с двумя сетевыми
- картами производства Intel и Realtek, сетевая карта
- производства Intel могла стать eth0, а карта Realtek — eth1.
- Иногда после перезагрузки карты именовались наоборот.
- </p>
- <p>
- В новой схеме именования, типичными именами сетевых устройств
- являются enp5s0 или wlp3s0. Если такие имена для вас
- нежелательны, то может быть реализована традиционная схема
- именования или своя собственная.
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16121" name="idm16121"></a>9.4.1.1.
- Отключение постоянного присвоения имен в параметрах
- загрузки ядра
- </h4>
- </div>
- </div>
- </div>
- <p>
- Традиционная схема именования - eth0, eth1, и так далее,
- может быть включена путем добавления параметра
- <strong class=
- "userinput"><code>net.ifnames=0</code></strong> в командную
- строку ядра. Это решение подходит для систем, которые имеют
- только одно сетевое устройство каждого типа. Часто в
- ноутбуках несколько сетевых устройств с именами eth0 и
- wlan0; в таких ноутбуках также может использоваться этот
- метод. Командная строка указывается в файле конфигурации
- GRUB. Подробности смотрите на странице <a class="xref"
- href="#grub-cfg" title=
- "10.4.4. Создание файла конфигурации GRUB">Раздел&nbsp;10.4.4,
- «Создание файла конфигурации GRUB»</a>.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16126" name="idm16126"></a>9.4.1.2.
- Создание пользовательских правил Udev
- </h4>
- </div>
- </div>
- </div>
- <p>
- Схему именования можно настроить, создав пользовательские
- правила udev. В состав книги включен скрипт, который
- генерирует начальные правила. Чтобы их сгенерировать,
- выполните команду:
- </p>
- <pre class="install"><kbd class=
- "command">bash /usr/lib/udev/init-net-rules.sh</kbd></pre>
- <p>
- Теперь, проверьте файл <code class=
- "filename">/etc/udev/rules.d/70-persistent-net.rules</code>,
- чтобы узнать какое имя с каким сетевым устройством
- сопоставлено:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat /etc/udev/rules.d/70-persistent-net.rules</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В некоторых случаях, например, когда MAC-адреса были
- назначены сетевой карте вручную или в виртуальной среде,
- такой как Qemu или Xen, возможно, файл сетевых правил не
- будет сгенерирован, поскольку адреса назначаются не
- последовательно. В таких случаях, этот способ не
- применим.
- </p>
- </div>
- <p>
- Файл начинается с блока комментариев, далее следуют две
- строки для каждой сетевой карты (NIC). Первая строка
- представляет собой описание с комментариями и содержит
- аппаратные идентификаторы (например, поставщика PCI и
- идентификаторы устройств, если это PCI-карта), а также
- информацию о драйвере (если его удалось обнаружить). Ни
- идентификатор оборудования, ни драйвер не используются для
- определения того, какое имя присвоить интерфейсу; эта
- информация предназначена только для справки. Вторая строка
- - это правило udev, которое соответствует этому сетевому
- адаптеру и фактически присваивает ему имя.
- </p>
- <p>
- Все правила udev состоят из нескольких ключевых слов,
- разделенных запятыми и необязательными пробелами. Ниже
- приведены ключевые слова и пояснения по каждому из них:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <code class="literal">SUBSYSTEM=="net"</code> -
- указывает Udev игнорировать устройства, которые не
- являются сетевыми картами.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ACTION=="add"</code> -
- указывает Udev игнорировать правила для событий,
- отличных от добавления (события "удалить" и
- "изменить" также происходят, но не требуют
- переименования сетевых интерфейсов).
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">DRIVERS=="?*"</code> -
- существует для того, чтобы Udev проигнорировал
- подинтерфейсы VLAN или моста (потому что эти
- подинтерфейсы не имеют драйверов). Эти подинтерфейсы
- пропускаются, потому что назначенные им имена будут
- конфликтовать с именами их родительских устройств.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ATTR{address}</code> -
- значением этого ключевого слова является MAC-адрес
- сетевой карты.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ATTR{type}=="1"</code> - этот
- ключ гарантирует выполнение правила соответствующего
- только основному интерфейсу, при использовании
- определенных беспроводных драйверов, которые создают
- несколько виртуальных интерфейсов. Дополнительные
- интерфейсы пропускаются по той же причине, что и
- подинтерфейсы VLAN и мост, в ином случае произошел бы
- конфликт имен.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">NAME</code> - значением этого
- ключевого слова является имя, которое udev присвоит
- этому интерфейсу.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Значение <code class="literal">NAME</code> является очень
- важным. Прежде чем продолжить, убедитесь, что вы знаете,
- какое имя назначено каждой из сетевых карт и обязательно
- используйте это значение <code class="literal">NAME</code>
- при создании файлов конфигурации сети.
- </p>
- <p>
- Даже если создан пользовательский файл правил udev, udev
- все равно может назначить одно или несколько альтернативных
- имен для сетевой карты на основе физических характеристик.
- Если пользовательское правило udev переименовывает
- какой-либо сетевой адаптер, используя имя, уже назначенное
- в качестве альтернативного имени другого сетевого адаптера,
- это правило udev не будет выполнено. Если возникает эта
- проблема, вы можете создать файл конфигурации <code class=
- "filename">/etc/udev/network/99-default.link</code> с
- пустой альтернативной политикой назначения,
- переопределяющей файл конфигурации по умолчанию
- <code class="filename">/usr/lib/udev/network/99-default.link</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -e '/^AlternativeNamesPolicy/s/=.*$/=/' \
- -i /usr/lib/udev/network/99-default.link \
- &gt; /etc/udev/network/99-default.link</kbd></pre>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.4.2. Символические ссылки CD-ROM
- </h3>
- <p>
- Некоторое программное обеспечение, которое вы, возможно,
- захотите установить позже (например, различные медиаплееры)
- ожидают, что устройства <code class=
- "filename">/dev/cdrom</code> или <code class=
- "filename">/dev/dvd</code> и символические ссылки на CD-ROM
- или DVD-ROM устройства должны существовать. Кроме того, может
- быть удобно использовать эти символические ссылки в
- <code class="filename">/etc/fstab</code>. Udev поставляется с
- файлом сценария, который будет генерировать правила для
- создания этих символических ссылок, в зависимости от
- возможностей каждого устройства, но вам нужно решить, какой
- из двух режимов работы вы хотите использовать.
- </p>
- <p>
- Во-первых, скрипт может работать в режиме <span class=
- "quote">«<span class="quote">by-path</span>»</span>
- (используется по умолчанию для USB и FireWire устройств), где
- создаваемые им правила зависят от физического пути к CD или
- DVD устройству. Во-вторых, он может работать в режиме
- <span class="quote">«<span class="quote">by-id</span>»</span>
- (по умолчанию для устройств IDE и SCSI), где создаваемые им
- правила зависят от строк идентификации, хранящихся в самом
- устройстве CD или DVD. Путь определяется сценарием Udev
- <span class="command"><strong>path_id</strong></span>, а
- идентификационные строки считываются с оборудования командами
- <span class="command"><strong>ata_id</strong></span> или
- <span class="command"><strong>scsi_id</strong></span>, в
- зависимости от того, какой тип устройства у вас есть.
- </p>
- <p>
- У каждого подхода есть свои преимущества; правильный подход к
- использованию будет зависеть от того, какие изменения
- устройств могут произойти. Если вы ожидаете, что физический
- путь к устройству (порты и/или слоты, в который оно
- подключено), изменится, например, потому, что вы планируете
- переместить диск в другой порт IDE или другой разъем USB, то
- вы должны использовать режим <span class=
- "quote">«<span class="quote">by-id</span>»</span>. С другой
- стороны, если вы ожидаете, что идентификация устройства
- изменится, например, потому, что оно может выйти из строя, и
- вы замените его другим устройством с теми же характеристиками
- и подключите к тем же разъемам, тогда вы должны использовать
- режим <span class="quote">«<span class=
- "quote">by-path</span>»</span>.
- </p>
- <p>
- Если с вашим устройством возможен любой из вариантов,
- выберите тот, который по вашему мнению случается чаще.
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Внешние устройства (например, привод компакт-дисков,
- подключенный через USB) не следует подключать методом
- <span class="quote">«<span class=
- "quote">by-path</span>»</span>, потому что каждый раз,
- когда устройство подключено в новый внешний порт, изменится
- его физический путь. Все внешние устройства подвержены этой
- проблеме, если при написании правил Udev применять режим
- распознавания по их физическому пути. К тому же, эта
- проблема не ограничивается CD и DVD-приводами.
- </p>
- </div>
- <p>
- Если вы хотите увидеть значения, которые будут использовать
- скрипты udev, то для требуемого устройства CD-ROM найдите
- соответствующий каталог в <code class="filename">/sys</code>
- (например, это может быть <code class=
- "filename">/sys/block/hdd</code>) и выполните команду,
- аналогичную следующей:
- </p>
- <pre class="userinput"><kbd class=
- "command">udevadm test /sys/block/hdd</kbd></pre>
- <p>
- Обратите внимание на строки, содержащие вывод различных
- идентификаторов *_id. Режим <span class="quote">«<span class=
- "quote">by-id</span>»</span> будет использовать значение
- ID_SERIAL если оно существует и не пустое, иначе будет
- использована комбинация ID_MODEL и ID_REVISION. Режим
- <span class="quote">«<span class=
- "quote">by-path</span>»</span> будет использовать значение
- ID_PATH.
- </p>
- <p>
- Если режим по умолчанию не подходит для вашей ситуации, то в
- файл <code class=
- "filename">/etc/udev/rules.d/83-cdrom-symlinks.rules</code>
- можно внести следующие изменения (где <em class=
- "replaceable"><code>mode</code></em> является одним из
- значений <span class="quote">«<span class=
- "quote">by-id</span>»</span> или <span class=
- "quote">«<span class="quote">by-path</span>»</span>):
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -e 's/"write_cd_rules"/"write_cd_rules <em class=
- "replaceable"><code>mode</code></em>"/' \
- -i /etc/udev/rules.d/83-cdrom-symlinks.rules</kbd></pre>
- <p>
- Обратите внимание, что на данный момент, нет необходимости
- создавать файлы правил или символические ссылки, так как вы
- смонтировали каталог <code class="filename">/dev</code> хоста
- в систему LFS, и мы предполагаем, что символические ссылки
- уже существуют. Правила и символические ссылки будут
- создаваться при первой загрузке LFS системы.
- </p>
- <p>
- Однако, если у вас есть несколько устройств CD-ROM, то
- символические ссылки, сгенерированные в это время, могут
- указывать на другие устройства, и иметь различия от хост
- системы, потому что устройства не будут обнаружены в
- предсказуемом порядке. Назначения, созданные при первой
- загрузке системы LFS, будут правильными, проблема возникнет
- только в том случае, если символические ссылки в обеих
- системах указывают на одно и то же устройство. Если
- потребуется, проверьте (и, возможно, отредактируйте)
- сгенерированные правила в файле <code class=
- "filename">/etc/udev/rules.d/70-persistent-cd.rules</code>
- после загрузки, чтобы убедиться, что назначенные
- символические ссылки соответствуют тому, что вам нужно.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.4.3. Работа с дубликатами устройств
- </h3>
- <p>
- Как поясняется в <a class="xref" href="#ch-config-udev"
- title="9.3. Взаимодействие с устройствами и модулями">Раздел&nbsp;9.3,
- «Взаимодействие с устройствами и модулями»</a>, порядок
- отображения устройства с одинаковой функциональностью в
- <code class="filename">/dev</code> является, как правило,
- случайным. Например, если у вас есть веб камера и TV тюнер,
- иногда <code class="filename">/dev/video0</code> ссылается на
- камеру, а <code class="filename">/dev/video1</code> ссылается
- на TV тюнер, а иногда, например, после перезагрузки системы,
- порядок поменяется на противоположный. Для всех классов
- оборудования, за исключением звуковых и сетевых карт, это
- можно исправить, написав правила udev для создания постоянных
- символических ссылок. Случай с сетевыми картами описан
- отдельно в <a class="xref" href="#ch-config-network" title=
- "9.5. Настройка сети">Раздел&nbsp;9.5, «Настройка сети»</a>,
- инструкции по настройке звуковых карт можно найти в <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/devices.html">
- BLFS</a>.
- </p>
- <p>
- Для каждого из ваших устройств, которые могут иметь такую
- проблему (даже если проблема не существует в текущем
- дистрибутиве Linux ), найдите соответствующий каталог в
- <code class="filename">/sys/class</code> или <code class=
- "filename">/sys/block</code>. Для видеоустройств это может
- быть <code class=
- "filename">/sys/class/video4linux/video<em class=
- "replaceable"><code>X</code></em></code>. Определите
- атрибуты, которые однозначно идентифицируют устройство
- (обычно это идентификаторы поставщика и продукта и/или
- серийные номера):
- </p>
- <pre class="userinput"><kbd class=
- "command">udevadm info -a -p /sys/class/video4linux/video0</kbd></pre>
- <p>
- Затем напишите правила, которые создают символические ссылки,
- например:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/udev/rules.d/83-duplicate_devs.rules &lt;&lt; "EOF"
-<code class="literal">
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-</code>
-EOF</kbd></pre>
- <p>
- В результате устройства <code class=
- "filename">/dev/video0</code> и <code class=
- "filename">/dev/video1</code> по-прежнему случайным образом
- ссылаются на TV тюнер и веб-камеру (и, следовательно, никогда
- не должны использоваться напрямую), но есть символические
- ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают
- на правильное устройство.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-network" name="ch-config-network"></a>9.5.
- Настройка сети
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.5.1. Создание файлов конфигурации сетевого интерфейса
- </h3>
- <p>
- Файлы в каталоге <code class=
- "filename">/etc/sysconfig/</code> обычно определяют, какие
- интерфейсы запускаются и выключаются сетевым скриптом. Этот
- каталог должен содержать файл для каждого настраиваемого
- интерфейса, например <code class=
- "filename">ifconfig.xyz</code>, где <span class=
- "quote">«<span class="quote">xyz</span>»</span> описывает
- сетевую карту. Имя интерфейса (например, eth0) обычно
- является подходящим. Каждый файл содержит атрибуты одного
- интерфейса, такие как его IP-адреса, маски подсетей и так
- далее. Имя файла должно быть <span class=
- "emphasis"><em>ifconfig</em></span>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если процедура именования из предыдущего раздела не
- использовалась, udev будет назначать имена интерфейсов
- сетевых карт на основе физических характеристик системы,
- например, enp2s1. Если вы не знаете имя вашего интерфейса,
- вы всегда можете запустить <span class="command"><strong>ip
- link</strong></span> или <span class="command"><strong>ls
- /sys/class/net</strong></span> после загрузки системы.
- </p>
- <p>
- Имена интерфейсов зависят от реализации и конфигурации
- демона udev, работающего в системе. Демон udev для LFS
- (установленный в <a class="xref" href="#ch-system-udev"
- title="8.75. Udev из Systemd-255">Раздел&nbsp;8.75, «Udev
- из Systemd-255»</a>) не запустится, пока система LFS не
- будет загружена. Таким образом, имена интерфейсов в системе
- LFS не всегда можно определить, запустив эти команды в
- хост-дистрибутиве, <span class="emphasis"><em>даже в среде
- chroot</em></span>.
- </p>
- </div>
- <p>
- Следующая команда создает пример конфигурационного файла для
- устройства <span class="emphasis"><em>eth0</em></span> со
- статическим IP-адресом:
- </p>
- <pre class="userinput"><kbd class="command">cd /etc/sysconfig/
-cat &gt; ifconfig.<em class=
-"replaceable"><code>eth0</code></em> &lt;&lt; "EOF"
-<code class="literal">ONBOOT=<em class="replaceable"><code>yes</code></em>
-IFACE=<em class="replaceable"><code>eth0</code></em>
-SERVICE=<em class="replaceable"><code>ipv4-static</code></em>
-IP=<em class="replaceable"><code>192.168.1.2</code></em>
-GATEWAY=<em class="replaceable"><code>192.168.1.1</code></em>
-PREFIX=<em class="replaceable"><code>24</code></em>
-BROADCAST=<em class="replaceable"><code>192.168.1.255</code></em></code>
-EOF</kbd></pre>
- <p>
- Значения, выделенные курсивом, должны быть изменены в каждом
- файле, чтобы правильно настроить интерфейсы.
- </p>
- <p>
- Если переменной <code class="envar">ONBOOT</code> присвоено
- значение <code class="literal">yes</code>, сценарий загрузки
- сети System V вызовет сетевую карту (NIC) в процессе загрузки
- системы. Если задано значение, отличное от <code class=
- "literal">yes</code> сетевой адаптер будет проигнорирован
- сетевым скриптом и не будет запущен автоматически. Интерфейсы
- можно запускать или останавливать вручную с помощью команд
- <span class="command"><strong>ifup</strong></span> и
- <span class="command"><strong>ifdown</strong></span>.
- </p>
- <p>
- Переменная <code class="envar">IFACE</code> определяет имя
- сетевого интерфейса, например, eth0. Она необходима для всех
- файлов конфигураций сетевых устройств. Расширение файла
- должно соответствовать этому значению.
- </p>
- <p>
- Переменная <code class="envar">SERVICE</code> определяет
- метод получения IP-адреса. Пакет LFS-Bootscripts имеет
- модульный формат назначения IP, а создание дополнительных
- файлов в каталоге <code class=
- "filename">/lib/services/</code> позволит использовать другие
- методы назначения IP. Переменная обычно используется для
- протокола DHCP (Dynamic Host Configuration Protocol), который
- рассматривается в книге BLFS
- </p>
- <p>
- Переменная <code class="envar">GATEWAY</code> должна
- содержать IP-адрес шлюза по умолчанию, если таковой имеется.
- Если нет, то закомментируйте эту строку.
- </p>
- <p>
- Переменная <code class="envar">PREFIX</code> указывает
- количество бит, используемых в подсети. Каждый сегмент
- IP-адреса состоит из 8 бит. Если маска подсети равна
- 255.255.255.0, то для указания номера сети используются
- первые три сегмента (24 бита). Если сетевая маска
- 255.255.255.240, подсеть использует первые 28 бит. Префиксы
- длиннее 24 бит обычно используются DSL и кабельными
- интернет-провайдерами (ISP). В этом примере (PREFIX=24) маска
- сети — 255.255.255.0. Измените переменную <code class=
- "envar">PREFIX</code> в соответствии c конфигурацией вашей
- сети. Если этот параметр не указан, то ПРЕФИКС по умолчанию
- равен 24.
- </p>
- <p>
- Для получения дополнительной информации смотрите справочную
- страницу <span class="command"><strong>ifup</strong></span>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="resolv.conf" name="resolv.conf"></a>9.5.2. Создание
- файла /etc/resolv.conf
- </h3>
- <p>
- Системе потребуются дополнительные настройки службы доменных
- имен (DNS) для преобразования имен сети Интернет в IP-адреса
- и наоборот. Это достигается путем указания IP-адреса
- DNS-сервера, доступного от провайдера или администратора
- сети, в <code class="filename">/etc/resolv.conf</code>.
- Создайте файл, выполнив следующие действия:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/resolv.conf
-
-domain <em class="replaceable"><code>&lt;Ваше доменное имя&gt;</code></em>
-nameserver <em class=
-"replaceable"><code>&lt;IP-адрес вашего основного DNS-сервера&gt;</code></em>
-nameserver <em class=
-"replaceable"><code>&lt;IP-адрес вашего дополнительного DNS-сервера&gt;</code></em>
-
-# End /etc/resolv.conf</code>
-EOF</kbd></pre>
- <p>
- Оператор <code class="varname">domain</code> может быть
- опущен или заменён оператором <code class=
- "varname">search</code>. Смотрите справочную страницу
- resolv.conf для получения подробной информации.
- </p>
- <p>
- Замените <em class="replaceable"><code>&lt;IP-адрес вашего
- основного DNS-сервера&gt;</code></em> адресом наиболее
- подходящего DNS сервера. DNS серверов, может быть указано
- более одной записи (дополнительные серверы необходимы для
- возможности резервного переключения). Если вам нужен только
- один DNS-сервер, удалите вторую строку <span class=
- "emphasis"><em>nameserver</em></span> из файла. DNS-сервер
- также может выступать шлюзом в локальной сети.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Адреса общедоступных DNS серверов Google - 8.8.8.8 и
- 8.8.4.4.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-hostname" name=
- "ch-config-hostname"></a>9.5.3. Настройка имени хоста
- </h3>
- <p>
- В процессе загрузки файл <code class=
- "filename">/etc/hostname</code> используется для настройки
- имени хоста системы.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/hostname</code> и
- внесите имя хоста, выполнив команду:
- </p>
- <pre class="userinput"><kbd class="command">echo "<em class=
- "replaceable"><code>&lt;lfs&gt;</code></em>" &gt; /etc/hostname</kbd></pre>
- <p>
- <em class="replaceable"><code>&lt;lfs&gt;</code></em>
- замените на имя вашего компьютера. Не вносите сюда полное
- доменное имя(FQDN). Эта информация помещается в файл
- <code class="filename">/etc/hosts</code>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-hosts" name="ch-config-hosts"></a>9.5.4.
- Настройка файла /etc/hosts
- </h3>
- <p>
- Выберите полное доменное имя (FQDN) и возможные псевдонимы
- для использования в файле <code class=
- "filename">/etc/hosts</code>. Если вы используете статические
- IP-адреса, вам также необходимо определиться с IP-адресом.
- Синтаксис для записи в файле hosts следующий:
- </p>
- <pre class="screen"><code class=
- "literal">IP_address myhost.example.org aliases</code></pre>
- <p>
- Если компьютер не должен быть виден в Интернете (т. е. нет
- зарегистрированного домена и действительного блока
- назначенных IP-адресов—у большинства пользователей этого
- нет), убедитесь, что IP-адрес находится в диапазоне
- внутренних сетевых IP-адресов. Допустимые диапазоны:
- </p>
- <pre class="screen"><code class=
- "literal">Диапазон адресов локальной сети Стандартный префикс
-10.0.0.1 - 10.255.255.254 8
-172.x.0.1 - 172.x.255.254 16
-192.168.y.1 - 192.168.y.254 24</code></pre>
- <p>
- x может быть любым числом в диапазоне 16-31. y может быть
- любым числом в диапазоне 0-255.
- </p>
- <p>
- Правильным IP адресом в локальной сети может быть
- 192.168.1.1.
- </p>
- <p>
- Если компьютер должен быть виден в Интернете, действительным
- полным доменным именем может быть само имя домена или строка,
- полученная путем объединения префикса (часто имени хоста) и
- домена с помощью символа <span class="quote">«<span class=
- "quote">.</span>»</span>. Кроме того, вам необходимо
- обратиться к администратору домена, чтобы связать полное
- доменное имя и ваш общедоступный IP-адрес.
- </p>
- <p>
- Даже если компьютер не виден из Интернета, полное доменное
- имя все равно необходимо для правильной работы некоторых
- программ, таких как MTA. Для этих целей можно использовать
- специальное полное доменное имя <code class=
- "literal">localhost.localdomain</code>.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/hosts</code>,
- выполнив команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/hosts &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <em class="replaceable"><code>&lt;FQDN&gt;</code></em> <em class=
-"replaceable"><code>&lt;HOSTNAME&gt;</code></em>
-<em class="replaceable"><code>&lt;192.168.1.1&gt;</code></em> <em class=
-"replaceable"><code>&lt;FQDN&gt;</code></em> <em class=
-"replaceable"><code>&lt;HOSTNAME&gt;</code></em> <em class=
-"replaceable"><code>[alias1] [alias2 ...]</code></em>
-::1 localhost ip6-localhost ip6-loopback
-ff02::1 ip6-allnodes
-ff02::2 ip6-allrouters
-
-# End /etc/hosts</code>
-EOF</kbd></pre>
- <p>
- Значения <em class=
- "replaceable"><code>&lt;192.168.1.1&gt;</code></em>,
- <em class="replaceable"><code>&lt;FQDN&gt;</code></em>, и
- <em class="replaceable"><code>&lt;HOSTNAME&gt;</code></em>
- должны быть изменены в соответствии с предпочтениями
- пользователя или требованиями сети (если имеется IP-адрес
- выданный сетевым/системным администратором и машина
- подключена к существующей сети). Необязательные параметры
- могут быть опущены.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-usage" name="ch-config-usage"></a>9.6.
- Настройка и использование загрузочных скриптов System V
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.6.1. Как работают загрузочные скрипты System V?
- </h3>
- <p>
- В этой версии LFS используется специальное средство загрузки
- под названием SysVinit, основанное на наборе уровней
- выполнения (<span class=
- "emphasis"><em>run-levels</em></span>). Процедура загрузки
- может сильно отличаться от одной системы к другой; и тот
- факт, что в конкретном дистрибутиве Linux все работало
- должным образом, не гарантирует, что оно будут работать так
- же в LFS. LFS работает по-своему, но соблюдает общепринятые
- стандарты.
- </p>
- <p>
- Существует альтернативная система загрузки, которая
- называется <span class=
- "command"><strong>systemd</strong></span>. Мы не будем
- обсуждать этот вариант загрузки здесь. Для получения
- подробного описания, посетите <a class="ulink" href=
- "https://www.linux.com/training-tutorials/understanding-and-using-systemd/">
- https://www.linux.com/training-tutorials/understanding-and-using-systemd/</a>.
- </p>
- <p>
- SysVinit (в дальнейшем именуемый <span class=
- "quote">«<span class="quote">init</span>»</span>) использует
- схему уровней выполнения. Существует семь уровней выполнения,
- пронумерованных от 0 до 6. (На самом деле уровней больше, но
- они предназначены для особых случаев и обычно не
- используются. Подробности смотрите в руководстве <a class=
- "ulink" href=
- "https://man.archlinux.org/man/init.8">init(8)</a>). Каждый
- из них соответствует действиям, которые компьютер должен
- выполнить при запуске и выключении. Уровень выполнения по
- умолчанию — 3. Ниже приведено описание различных уровней в
- том виде, в каком они реализованы в LFS:
- </p>
- <div class="literallayout">
- <p>
- 0:&nbsp;выключение&nbsp;компьютера<br />
- 1:&nbsp;однопользовательский&nbsp;режим<br />
- 2:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 3:&nbsp;многопользовательский&nbsp;режим&nbsp;с&nbsp;поддержкой&nbsp;сети<br />
-
- 4:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 5:&nbsp;то&nbsp;же,&nbsp;что&nbsp;и&nbsp;4,&nbsp;обычно&nbsp;используется&nbsp;для&nbsp;входа&nbsp;в&nbsp;систему&nbsp;с&nbsp;графическим&nbsp;интерфейсом&nbsp;(например,&nbsp;<br />
-
- <span class=
- "command"><strong>gdm</strong></span>&nbsp;от&nbsp;GNOME&nbsp;или&nbsp;<span class="command"><strong>lxdm</strong></span>&nbsp;от&nbsp;LXDE)<br />
-
- 6:&nbsp;перезагрузка&nbsp;компьютера
- </p>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Раньше, много лет назад, уровень выполнения 2 обозначался
- как <span class="quote">«<span class=
- "quote">многопользовательский режим без поддержки
- сети</span>»</span>, тогда, несколько пользователей могли
- подключаться к системе через последовательные порты. В
- сегодняшних условиях это не имеет смысла, и мы обозначаем
- этот уровень как <span class="quote">«<span class=
- "quote">зарезервировано</span>»</span>.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-sysvinit" name="conf-sysvinit"></a>9.6.2.
- Настройка Sysvinit
- </h3>
- <p>
- Во время инициализации ядра первой запускаемой программой
- (если она не переопределена в командной строке) является
- <span class="command"><strong>init</strong></span>. Эта
- программа считывает файл инициализации <code class=
- "filename">/etc/inittab</code>. Создайте этот файл:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/inittab &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/inittab
-
-id:3:initdefault:
-
-si::sysinit:/etc/rc.d/init.d/rc S
-
-l0:0:wait:/etc/rc.d/init.d/rc 0
-l1:S1:wait:/etc/rc.d/init.d/rc 1
-l2:2:wait:/etc/rc.d/init.d/rc 2
-l3:3:wait:/etc/rc.d/init.d/rc 3
-l4:4:wait:/etc/rc.d/init.d/rc 4
-l5:5:wait:/etc/rc.d/init.d/rc 5
-l6:6:wait:/etc/rc.d/init.d/rc 6
-
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-su:S06:once:/sbin/sulogin
-s1:1:respawn:/sbin/sulogin
-
-1:2345:respawn:/sbin/agetty --noclear tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
-
-# End /etc/inittab</code>
-EOF</kbd></pre>
- <p>
- Пояснения по содержимому этого файла инициализации находится
- на справочной странице <span class=
- "emphasis"><em>inittab</em></span>. Для LFS основной командой
- является <span class="command"><strong>rc</strong></span>. В
- приведенном выше файле инициализации, <span class=
- "command"><strong>rc</strong></span> будет выполнять все
- сценарии, начинающиеся с символа S в каталоге <code class=
- "filename">/etc/rc.d/rcS.d</code>, за которыми следуют все
- скрипты, начинающиеся с S в каталоге <code class=
- "filename">/etc/rc.d/rc?.d</code>, где знак вопроса задается
- значением initdefault.
- </p>
- <p>
- Для удобства, скрипт <span class=
- "command"><strong>rc</strong></span> считывает библиотеку
- функций из <code class=
- "filename">/lib/lsb/init-functions</code>. Эта библиотека
- также читает необязательный файл конфигурации <code class=
- "filename">/etc/sysconfig/rc.site</code>. В этот файл можно
- поместить любой из параметров конфигурации системы, описанных
- в последующих разделах, что позволяет объединить все
- параметры системы в одном файле.
- </p>
- <p>
- Для удобства отладки скрипт functions также записывает весь
- вывод в <code class="filename">/run/var/bootlog</code>.
- Поскольку каталог <code class="filename">/run</code> является
- tmpfs, этот файл не сохраняется при загрузке; однако его
- содержимое добавляется в файл <code class=
- "filename">/var/log/boot.log</code> по окончании процесса
- загрузки.
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="init-levels" name="init-levels"></a>9.6.2.1.
- Изменение уровней выполнения
- </h4>
- </div>
- </div>
- </div>
- <p>
- Изменить уровень выполнения можно с помощью команды
- <span class="command"><strong>init <em class=
- "replaceable"><code>&lt;runlevel&gt;</code></em></strong></span>,
- где <em class=
- "replaceable"><code>&lt;runlevel&gt;</code></em> - это
- целевой уровнем выполнения. Например, чтобы перезагрузить
- компьютер, пользователь должен выполнить команду
- <span class="command"><strong>init 6</strong></span>,
- которая является псевдонимом для команды <span class=
- "command"><strong>reboot</strong></span>. Аналогично, init
- 0 является псевдонимом для команды <span class=
- "command"><strong>halt</strong></span>.
- </p>
- <p>
- В каталоге <code class="filename">/etc/rc.d</code> есть ещё
- несколько каталогов, которые выглядят как <code class=
- "filename">rc?.d</code> (где ? - номер уровня выполнения),
- все они содержат ряд символических ссылок. Некоторые ссылки
- начинаются с <span class="emphasis"><em>K</em></span>,
- другие начинаются с <span class=
- "emphasis"><em>S</em></span>, и все они содержат две цифры
- после начальной буквы. K означает остановить (убить)
- службу, а S означает запустить службу. Числа определяют
- порядок выполнения сценариев от 00 до 99—чем меньше число,
- тем раньше запускается скрипт. Когда <span class=
- "command"><strong>init</strong></span> переключается на
- другой уровень выполнения, соответствующие службы либо
- запускаются, либо останавливаются, в зависимости от
- выбранного уровня выполнения.
- </p>
- <p>
- Реальные скрипты находятся в каталоге <code class=
- "filename">/etc/rc.d/init.d</code>. Они выполняют
- фактическую работу, и символические ссылки указывают на
- них. Ссылки К и S указывают на один и тот же скрипт в
- <code class="filename">/etc/rc.d/init.d</code>. Это связано
- с тем, что скрипты могут вызываться с разными параметрами,
- такими как <em class="parameter"><code>start</code></em>,
- <em class="parameter"><code>stop</code></em>, <em class=
- "parameter"><code>restart</code></em>, <em class=
- "parameter"><code>reload</code></em>, и <em class=
- "parameter"><code>status</code></em>. Когда встречается
- ссылка K, соответствующий скрипт запускается с аргументом
- <em class="parameter"><code>stop</code></em>. Когда
- встречается S-ссылка, соответствующий скрипт запускается с
- аргументом <em class="parameter"><code>start</code></em>.
- </p>
- <p>
- Ниже приведено описание к аргументам скриптов:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>start</code></em></span>
- </dt>
- <dd>
- <p>
- Служба запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>stop</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>restart</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена и снова запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>reload</code></em></span>
- </dt>
- <dd>
- <p>
- Конфигурация сервиса обновлена. Используется после
- изменения файла конфигурации службы, когда перезапуск
- не требуется.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>status</code></em></span>
- </dt>
- <dd>
- <p>
- Сообщает, запущена ли служба и с какими ИД процессов.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Не стесняйтесь изменять работу процесса загрузки (в конце
- концов, это ваша собственная система LFS). Приведенные
- здесь файлы являются примером того, как это можно сделать.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 9.6.3. Загрузочные скрипты Udev
- </h3>
- <p>
- Инит-скрипт <code class=
- "filename">/etc/rc.d/init.d/udev</code> запускает
- <span class="command"><strong>udevd</strong></span>, который
- инициализирует все устройства "холодного подключения",
- которые уже были созданы ядром, и ожидает выполнения всех
- правил. Скрипт также отключает обработчик uevent по умолчанию
- <code class="filename">/sbin/hotplug</code>. Это сделано
- потому, что ядру больше не нужно обращаться к внешнему
- бинарному файлу. Вместо этого <span class=
- "command"><strong>udevd</strong></span> будет прослушивать
- сокет netlink на предмет событий, которые вызывает ядро.
- </p>
- <p>
- Инит-скрипт <span class=
- "command"><strong>/etc/rc.d/init.d/udev_retry</strong></span>
- решает задачу повторного запуска событий для подсистем,
- правила которых могут зависеть от файловых систем, которые не
- монтируются до запуска скрипта <span class=
- "command"><strong>mountfs</strong></span> (в частности, его
- вызывают <code class="filename">/usr</code> и <code class=
- "filename">/var</code>). Этот скрипт запускается после
- скрипта <span class=
- "command"><strong>mountfs</strong></span>, поэтому эти
- правила (при повторном запуске) должны сработать во второй
- раз. Он настраивается в файле <code class=
- "filename">/etc/sysconfig/udev_retry</code>; любые слова в
- этом файле, кроме комментариев, являются именами подсистем,
- которые запускаются при повторной попытке. Чтобы найти
- подсистему устройства, используйте <span class=
- "command"><strong>udevadm info --attribute-walk
- &lt;device&gt;</strong></span>, где &lt;device&gt; - это
- абсолютный путь в /dev или /sys, такой как /dev/sr0 или
- /sys/class/rtc.
- </p>
- <p>
- Для получения информации о загрузке модуля ядра и udev
- смотрите <a class="xref" href="#module-loading" title=
- "9.3.2.3. Загрузка модуля">Раздел&nbsp;9.3.2.3, «Загрузка
- модуля»</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-clock" name="ch-config-clock"></a>9.6.4.
- Настройка системного времени
- </h3>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- считывает время с аппаратных часов, также известных как часы
- BIOS или CMOS (Complementary Metal Oxide Semiconductor). Если
- на аппаратных часах установлено время UTC (всемирное
- скоординированное время), этот скрипт преобразует полученное
- значение в локальное время, используя файл <code class=
- "filename">/etc/localtime</code> (который сообщает программе
- <span class="command"><strong>hwclock</strong></span>, в
- какой временной зоне находится пользователь). Невозможно
- определить, установленное на аппаратных часах время UTC или
- же локальное, поэтому необходимо указать его вручную.
- </p>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- запускается системой <span class="application">udev</span>
- при загрузке, когда ядро определяет возможности аппаратного
- обеспечения. Также его можно запустить вручную с параметром
- stop, чтобы сохранить системное время в аппаратные часы CMOS.
- </p>
- <p>
- Если Вы не можете вспомнить, установлено на аппаратных часах
- UTC или локальное время, запустите команду <strong class=
- "userinput"><code>hwclock --localtime --show</code></strong>.
- Она отобразит текущее время в соответствии с аппаратными
- часами. Если оно совпадает с тем, что показывают ваши
- настенные/наручные часы, значит на часах CMOS установлено
- локальное время. Если вывод <span class=
- "command"><strong>hwclock</strong></span> не совпадает с
- локальным временем, скорее всего, это UTC. Проверьте это,
- добавив или вычитая нужное количество часов для вашего
- часового пояса ко времени, отображаемому <span class=
- "command"><strong>hwclock</strong></span>. Например, если ваш
- часовой пояс это MSK, также известный как GMT +0300, то нужно
- вычесть три часа из локального времени.
- </p>
- <p>
- Измените значение переменной <code class="envar">UTC</code>
- ниже на <em class="parameter"><code>0</code></em> (ноль),
- если на аппаратных часах установлено <span class=
- "emphasis"><em>НЕ</em></span> UTC.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/sysconfig/clock</code> выполнив:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/clock &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/clock
-
-UTC=1
-
-# Set this to any options you might need to give to hwclock,
-# such as machine hardware clock type for Alphas.
-CLOCKPARAMS=
-
-# End /etc/sysconfig/clock</code>
-EOF</kbd></pre>
- <p>
- Хороший совет, объясняющий, как обращаться с временем в LFS,
- доступен по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt</a>.
- Там объясняются такие вопросы, как часовые пояса, UTC и
- переменная окружения <code class="envar">TZ</code>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Параметры CLOCKPARAMS и UTC также могут быть указаны в
- файле <code class="filename">/etc/sysconfig/rc.site</code>.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-console" name="ch-config-console"></a>9.6.5.
- Настройка консоли Linux
- </h3>
- <p>
- Эта секция описывает настройку скрипта <span class=
- "command"><strong>console</strong></span>, который
- устанавливает раскладку клавиатуры, шрифт консоли и уровень
- подробности информации, выводимой ядром на консоль. Если Вы
- не планируете использовать символы, не соответствующие
- стандарту ASCII (например, знак копирайта, символы фунта и
- евро), и собираетесь печатать только в английской раскладке,
- то можете пропустить большую часть секции. Без файла
- конфигурации (или эквивалентных настроек в <code class=
- "filename">rc.site</code>), скрипт <span class=
- "command"><strong>console</strong></span> не будет ничего
- делать.
- </p>
- <p>
- Скрипт <span class="command"><strong>console</strong></span>
- считывает конфигурацию из файла <code class=
- "filename">/etc/sysconfig/console</code>. Решите для себя,
- какую раскладку клавиатуры и какой шрифт намерены
- использовать. В этом также могут помочь различные HOWTO для
- конкретных языков; смотрите <a class="ulink" href=
- "https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html">https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html</a>.
- Если вы все еще сомневаетесь, посмотрите в каталогах
- <code class="filename">/usr/share/keymaps</code> и
- <code class="filename">/usr/share/consolefonts</code>
- допустимые раскладки и экранные шрифты. Прочтите справочные
- страницы <a class="ulink" href=
- "https://man.archlinux.org/man/loadkeys.1">loadkeys(1)</a> и
- <a class="ulink" href=
- "https://man.archlinux.org/man/setfont.8">setfont(8)</a>,
- чтобы определить правильные аргументы для этих программ.
- </p>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code>
- должен содержать строки вида: <code class=
- "envar">ПЕРЕМЕННАЯ=значение</code>. Допустимы следующие
- переменные:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">LOGLEVEL</span>
- </dt>
- <dd>
- <p>
- Эта переменная задает уровень подробности сообщений,
- посылаемых ядром на системную консоль. Значение этой
- переменной передается в качестве аргумента утилите
- <span class="command"><strong>dmesg -n</strong></span>.
- Допустимы уровни от <code class="literal">1</code>(нет
- сообщений) до <code class="literal">8</code>. По
- умолчанию <code class="literal">7</code>, что является
- довольно подробным.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP</span>
- </dt>
- <dd>
- <p>
- Эта переменная указывает аргументы для программы
- <span class="command"><strong>loadkeys</strong></span>,
- обычно это имя загружаемой раскладки, например,
- <code class="literal">it</code>. Если эта переменная не
- установлена, загрузочный скрипт не будет запускать
- программу loadkeys, и будет использоваться раскладка по
- умолчанию. Обратите внимание, что некоторые раскладки
- имеют несколько версий с одним и тем же именем (cz и
- его варианты в qwerty/ и qwertz/, es в olpc/ и qwerty/
- и trf в fgGIod/ и qwerty/). В этих случаях также
- следует указать родительский каталог (например,
- qwerty/es), чтобы обеспечить загрузку правильной
- раскладки.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP_CORRECTIONS</span>
- </dt>
- <dd>
- <p>
- Эта (крайне редко используемая) переменная задает
- аргументы для второго вызова программы <span class=
- "command"><strong>loadkeys</strong></span>. Она
- полезна, если стандартная раскладка вас не совсем
- устраивает и необходимо внести небольшую корректировку.
- Например, чтобы добавить символ евро в раскладку,
- которая его не содержит, присвойте этой переменной
- значение <code class="literal">euro2</code>.
- </p>
- </dd>
- <dt>
- <span class="term">FONT</span>
- </dt>
- <dd>
- <p>
- Эта переменная определяет аргументы для программы
- <span class="command"><strong>setfont</strong></span>.
- Обычно она включает в себя имя шрифта <code class=
- "literal">-m</code> и имя загружаемой таблицы символов.
- Например, чтобы загрузить шрифт <span class=
- "quote">«<span class="quote">lat1-16</span>»</span>
- вместе с таблицей символов <span class=
- "quote">«<span class="quote">8859-1</span>»</span>
- (подходит для США), установите эту переменную в
- <code class="literal">lat1-16 -m 8859-1</code>. В
- режиме UTF-8 ядро использует таблицу символов для
- преобразования 8-битных кодов клавиш в UTF-8, поэтому
- аргумент параметра "-m" должен быть установлен на
- кодировку соответствующих кодов клавиш в раскладке.
- </p>
- </dd>
- <dt>
- <span class="term">UNICODE</span>
- </dt>
- <dd>
- <p>
- Присвойте этой переменной значение <code class=
- "literal">1</code>, <code class="literal">yes</code>
- или <code class="literal">true</code>, чтобы
- переключить консоль в режим UTF-8. Это полезно при
- использовании локали, основанной на UTF-8, и не
- рекомендуется в иных случаях.
- </p>
- </dd>
- <dt>
- <span class="term">LEGACY_CHARSET</span>
- </dt>
- <dd>
- <p>
- Для многих раскладок клавиатуры в пакете Kbd не
- существует готового Unicode-варианта. Скрипт
- <span class="command"><strong>console</strong></span>
- будет на лету конвертировать имеющуюся раскладку в
- UTF-8, если присвоить этой переменной имя доступной
- не-UTF-8 раскладки.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Несколько примеров:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Мы будем использовать <code class=
- "literal">C.UTF-8</code> в качестве локали для
- интерактивных сеансов в консоли Linux в <a class="xref"
- href="#ch-config-locale" title=
- "9.7. Настройка системной локали">Раздел&nbsp;9.7,
- «Настройка системной локали,»</a>, поэтому нам следует
- установить значение переменной <code class=
- "literal">UNICODE</code> в <code class=
- "literal">1</code>. Консольные шрифты, поставляемые
- пакетом <span class="application">Kbd</span>,
- содержащие глифы для всех символов сообщений программы
- в <code class="literal">C.UTF-8</code> являются
- <code class="filename">LatArCyrHeb*.psfu.gz</code>,
- <code class="filename">LatGrkCyr*.psfu.gz</code>,
- <code class="filename">Lat2-Terminus16.psfu.gz</code> и
- <code class="filename">pancyrillic.f16.psfu.gz</code>
- из каталога <code class=
- "filename">/usr/share/consolefonts</code> (в других
- поставляемых консольных шрифтах отсутствуют глифы
- некоторых символов Unicode, таких как левые/правые
- кавычки и английское тире). Поэтому установите один из
- них, например <code class=
- "filename">Lat2-Terminus16.psfu.gz</code>, в качестве
- шрифта консоли по умолчанию:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-FONT="Lat2-Terminus16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Для русскоязычных пользователей может подойти такой
- вариант:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="ruwin_alt_sh-UTF-8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Для поиска нужной раскладки, выполните команду:
- <span class="command"><strong>find /usr/share/keymaps
- -type f</strong></span>
- </p>
- <p>
- <code class="literal">ruwin_alt-UTF-8</code> -
- переключение раскладки по Alt.
- </p>
- <p>
- <code class="literal">ruwin_alt_sh-UTF-8</code> -
- переключение раскладки по Alt+Shift.
- </p>
- <p>
- <code class="literal">ruwin_cplk-UTF-8</code> -
- переключение раскладки по Caps Lock.
- </p>
- <p>
- <code class="literal">ruwin_ct_sh-UTF-8</code> -
- переключение раскладки по Ctrl+Shift.
- </p>
- <p>
- <code class="literal">ruwin_ctrl-UTF-8</code> -
- переключение раскладки по Ctrl.
- </p>
- <p>
- Посмотреть список доступных шрифтов можно с помощью
- следующей команды: <span class="command"><strong>ls
- /usr/share/consolefonts</strong></span>
- </p>
- </div>
- </li>
- <li class="listitem">
- <p>
- Для не-Unicode настройки необходимы только переменные
- KEYMAP и FONT. Например, для польских пользователей
- может подойти такой вариант:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="pl2"
-FONT="lat2a-16 -m 8859-2"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Как упоминалось выше, иногда бывает необходимо
- подкорректировать раскладку. Следующий пример добавляет
- символ евро к немецкой раскладке:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-FONT="lat0-16 -m 8859-15"
-UNICODE="1"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Ниже приведен пример с поддержкой Unicode для
- болгарского языка, где существует стандартная раскладка
- UTF-8:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="LatArCyrHeb-16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Из-за использования 512-символьного шрифта
- LatArCyrHeb-16 в предыдущем примере, яркие цвета больше
- не доступны в консоли Linux, если используется
- фреймбуфер. Если Вы хотите использовать яркие цвета без
- фреймбуфера и можете обходиться без символов, не
- относящихся к вашему языку, тогда можно использовать
- специфичный для вашего языка 256-символьный шрифт, как
- показано ниже:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Следующий пример демонстрирует автоматическое
- преобразование раскладки из ISO-8859-15 в UTF-8 и
- включает "мертвые" клавиши в режиме Unicode:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-LEGACY_CHARSET="iso-8859-15"
-FONT="LatArCyrHeb-16 -m 8859-15"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Некоторые раскладки включают в себя "мертвые" клавиши
- (то есть клавиши, нажатие которых само по себе не
- приводит к появлению на экране символа, но которые
- влияют на символ, генерируемый следующей клавишей) или
- определяют слияние символов (например: <span class=
- "quote">«<span class="quote">нажмите Ctrl+. A E чтобы
- получить Æ</span>»</span> в раскладке по умолчанию).
- Linux-6.7.4 правильно интерпретирует "мертвые" клавиши
- и слияния, только когда исходные символы имеют 8-битные
- коды. Эта особенность не влияет на раскладки для
- европейских языков, поскольку в них "сливаются" два
- ASCII-символа или добавляются подчеркивания к
- неподчеркнутым ASCII-символам. Однако, в режиме UTF-8
- могут быть проблемы, например, для греческого языка,
- когда необходимо подчеркнуть символ α. Решением в этой
- ситуации будет отказ от использования UTF-8 или
- установка графической системы X Window, не имеющих
- подобных ограничений.
- </p>
- </li>
- <li class="listitem">
- <p>
- Для китайского, японского, корейского и некоторых
- других языков невозможно настроить консоль Linux так,
- чтобы она отображала все необходимые символы.
- Пользователи, которым требуются эти языки, должны
- установить систему X Window, шрифты, покрывающие
- необходимый диапазон символов, и правильный метод ввода
- (например, SCIM поддерживает большое число
- разнообразных языков).
- </p>
- </li>
- </ul>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code>
- управляет только локализацией текстовой консоли Linux. Он
- никак не влияет на настройки раскладки клавиатуры и шрифтов
- в системе X Window, в сессиях SSH или на последовательном
- терминале. В этих ситуациях ограничения, описанные в двух
- расположенных выше абзацах, не применяются.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-createfiles" name=
- "ch-config-createfiles"></a>9.6.6. Создание файлов при
- загрузке
- </h3>
- <p>
- Иногда необходимо создавать файлы во время загрузки.
- Например, часто требуется каталог <code class=
- "filename">/tmp/.ICE-unix</code> . Это можно сделать, создав
- запись в скрипте <code class=
- "filename">/etc/sysconfig/createfiles</code>. Формат этого
- файла описан в комментариях файла конфигурации по умолчанию.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-sysklogd" name=
- "ch-config-sysklogd"></a>9.6.7. Настройка скрипта Sysklogd
- </h3>
- <p>
- Скрипт <code class="filename">sysklogd</code> вызывает
- программу <span class=
- "command"><strong>syslogd</strong></span> как часть
- инициализации System V. Параметр <em class=
- "parameter"><code>-m 0</code></em> отключает периодическую
- (по умолчанию - каждые 20 минут) запись временных меток в
- файлы журналов, производимую <span class=
- "command"><strong>syslogd</strong></span>. Если Вам
- необходимо включить периодическую запись временных меток,
- отредактируйте файл <code class=
- "filename">/etc/sysconfig/rc.site</code> и присвойте
- переменной SYSKLOGD_PARMS требуемое значение. Например, чтобы
- сбросить все параметры, присвойте переменной пустое значение:
- </p>
- <pre class="screen">SYSKLOGD_PARMS=</pre>
- <p>
- Дополнительные параметры смотрите в <strong class=
- "userinput"><code>man syslogd</code></strong>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="ch-config-site" name="ch-config-site"></a>9.6.8. Файл
- rc.site
- </h3>
- <p>
- Необязательный файл <code class=
- "filename">/etc/sysconfig/rc.site</code> содержит настройки,
- автоматически применяемые всеми загрузочными скриптами. Этот
- файл может содержать парамеры, обычно указываемые в файлах
- <code class="filename">hostname</code>, <code class=
- "filename">console</code> и <code class=
- "filename">clock</code> из каталога <code class=
- "filename">/etc/sysconfig/</code>. Если значение одной и той
- же переменной присваивается, как в одном из этих файлов, так
- и в <code class="filename">rc.site</code>, приоритет имеет
- значение из специализированного файла.
- </p>
- <p>
- <code class="filename">rc.site</code> также содержит
- параметры, которые могут настраивать другие аспекты процесса
- загрузки. Установка переменной IPROMPT позволит выборочно
- запускать загрузочные скрипты. Другие параметры описаны в
- комментариях к файлу. Версия файла по умолчанию выглядит
- следующим образом:
- </p>
- <pre class="auto"># rc.site
-# Optional parameters for boot scripts.
-
-# Distro Information
-# These values, if specified here, override the defaults
-#DISTRO="Linux From Scratch" # The distro name
-#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
-#DISTRO_MINI="LFS" # Short name used in filenames for distro config
-
-# Define custom colors used in messages printed to the screen
-
-# Please consult `man console_codes` for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font. This does
-# not affect framebuffer consoles
-
-# These values, if specified here, override the defaults
-#BRACKET="\\033[1;34m" # Blue
-#FAILURE="\\033[1;31m" # Red
-#INFO="\\033[1;36m" # Cyan
-#NORMAL="\\033[0;39m" # Grey
-#SUCCESS="\\033[1;32m" # Green
-#WARNING="\\033[1;33m" # Yellow
-
-# Use a colored prefix
-# These values, if specified here, override the defaults
-#BMPREFIX=" "
-#SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} "
-#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-
-# Manually set the right edge of message output (characters)
-# Useful when resetting console font during boot to override
-# automatic screen width detection
-#COLUMNS=120
-
-# Interactive startup
-#IPROMPT="yes" # Whether to display the interactive boot prompt
-#itime="3" # The amount of time (in seconds) to display the prompt
-
-# The total length of the distro welcome string, without escape codes
-#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
-#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
-
-# The total length of the interactive string, without escape codes
-#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
-#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
-
-# Set scripts to skip the file system check on reboot
-#FASTBOOT=yes
-
-# Skip reading from the console
-#HEADLESS=yes
-
-# Write out fsck progress if yes
-#VERBOSE_FSCK=no
-
-# Speed up boot without waiting for settle in udev
-#OMIT_UDEV_SETTLE=y
-
-# Speed up boot without waiting for settle in udev_retry
-#OMIT_UDEV_RETRY_SETTLE=yes
-
-# Skip cleaning /tmp if yes
-#SKIPTMPCLEAN=no
-
-# For setclock
-#UTC=1
-#CLOCKPARAMS=
-
-# For consolelog (Note that the default, 7=debug, is noisy)
-#LOGLEVEL=7
-
-# For network
-#HOSTNAME=mylfs
-
-# Delay between TERM and KILL signals at shutdown
-#KILLDELAY=3
-
-# Optional sysklogd parameters
-#SYSKLOGD_PARMS="-m 0"
-
-# Console parameters
-#UNICODE=1
-#KEYMAP="de-latin1"
-#KEYMAP_CORRECTIONS="euro2"
-#FONT="lat0-16 -m 8859-15"
-#LEGACY_CHARSET=
-
-</pre>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm16672" name="idm16672"></a>9.6.8.1.
- Настройка скриптов загрузки и завершения работы
- </h4>
- </div>
- </div>
- </div>
- <p>
- Загрузочные скрипты LFS загружают и завершают работу
- системы довольно эффективно, но есть несколько настроек,
- которые вы можете внести в файл rc.site, чтобы еще больше
- повысить скорость и настроить сообщения в соответствии с
- вашими предпочтениями. Чтобы сделать это, измените
- настройки в приведенном выше файле <code class=
- "filename">/etc/sysconfig/rc.site</code>.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Во время работы загрузочного скрипта <code class=
- "filename">udev</code> происходит вызов <span class=
- "command"><strong>udev settle</strong></span>, для
- завершения которого требуется некоторое время. Это
- время может и не потребоваться в зависимости от
- конфигурации устройств в системе. Если у вас имеются
- только простые разделы и одна сетевая карта, процессу
- загрузки, вероятно, не нужно будет ждать завершения
- работы этой команды. Чтобы пропустить её, установите
- переменную OMIT_UDEV_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Скрипт загрузки <code class=
- "filename">udev_retry</code> также по умолчанию
- запускает <span class="command"><strong>udev
- settle</strong></span>. Команда необходима только
- тогда, когда каталог <code class=
- "filename">/var</code> смонтирован в отдельный
- раздел. Это связано с тем, что часам нужен доступ к
- файлу <code class=
- "filename">/var/lib/hwclock/adjtime</code>. Для
- других настроек также может потребоваться дождаться
- завершения udev, но в большинстве случаев в этом нет
- необходимости. Пропустите команду, установив
- переменную OMIT_UDEV_RETRY_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- По умолчанию проверка файловой системы выполняется в
- "тихом" режиме. Это может показаться задержкой во
- время процесса загрузки. Чтобы включить вывод
- <span class="command"><strong>fsck</strong></span>,
- установите переменную VERBOSE_FSCK=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- При перезагрузке вы, возможно, захотите полностью
- пропустить проверку файловой системы, <span class=
- "command"><strong>fsck</strong></span>. Чтобы сделать
- это, либо создайте файл <code class=
- "filename">/fastboot</code>, либо перезагрузите
- систему командой <span class=
- "command"><strong>/sbin/shutdown -f -r
- now</strong></span>. С другой стороны, вы можете
- принудительно проверить все файловые системы, создав
- <code class="filename">/forcefsck</code> или запустив
- <span class=
- "command"><strong>shutdown</strong></span> с
- параметром <em class="parameter"><code>-F</code></em>
- вместо <em class="parameter"><code>-f</code></em>.
- </p>
- <p>
- Установка переменной FASTBOOT=y отключит <span class=
- "command"><strong>fsck</strong></span> во время
- процесса загрузки до тех пор, пока она не будет
- удалена. Это не рекомендуется делать на постоянной
- основе.
- </p>
- </li>
- <li class="listitem">
- <p>
- Обычно все файлы в каталоге <code class=
- "filename">/tmp</code> удаляются во время загрузки. В
- зависимости от количества имеющихся файлов или
- каталогов это может привести к заметной задержке в
- процессе загрузки. Чтобы пропустить удаление этих
- файлов, установите переменную SKIPTMPCLEAN=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Во время завершения работы, <span class=
- "command"><strong>init</strong></span> отправляет
- сигнал TERM каждой запущенной программе (например,
- agetty), ожидает установленное время (по умолчанию 3
- секунды), затем посылает каждому процессу сигнал
- завершения(KILL) и снова ждёт. Этот процесс
- повторяется в сценарии <span class=
- "command"><strong>sendsignals</strong></span> для
- любых процессов, которые не завершаются их
- собственными скриптами. Задержка для <span class=
- "command"><strong>init</strong></span> может быть
- установлена путем передачи параметра. Например, чтобы
- устранить задержку в <span class=
- "command"><strong>init</strong></span>, передайте
- параметр -t0 при выключении или перезагрузке
- (например, <span class=
- "command"><strong>/sbin/shutdown -t0 -r
- now</strong></span>). Задержку для скрипта
- <span class=
- "command"><strong>sendsignals</strong></span> можно
- пропустить, установив параметр KILLDELAY=0.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-locale" name="ch-config-locale"></a>9.7.
- Настройка системной локали
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Некоторые переменные окружения, необходимые для поддержки
- вашего языка. Правильная их установка влияет на:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Выходные данные программ, переводятся на ваш родной язык
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильную интерпретацию символов в буквы, цифры и другие
- классы. Это необходимо для того, чтобы <span class=
- "command"><strong>bash</strong></span> правильно принимал
- не-ASCII символы, в командной строке в неанглоязычных
- языковых системах
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильную для страны сортировку по алфавиту
- </p>
- </li>
- <li class="listitem">
- <p>
- Подходящий формат бумаги по умолчанию
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильное форматирование денежных значений, значений
- времени и дат
- </p>
- </li>
- </ul>
- </div>
- <p>
- Ниже замените <em class=
- "replaceable"><code>&lt;ll&gt;</code></em> двухбуквенным кодом
- нужного вам языка (например <code class="literal">en</code>), а
- <em class="replaceable"><code>&lt;CC&gt;</code></em>
- двухбуквенным кодом соответствующей страны (например
- <code class="literal">GB</code>). <em class=
- "replaceable"><code>&lt;charmap&gt;</code></em> нужно заменить
- на каноническую кодировку для выбраной вами локали. Также могут
- присутствовать необязательные модификаторы, такие как
- <code class="literal">@euro</code>.
- </p>
- <p>
- Список всех локалей, поддерживаемых Glibc, можно получить,
- выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class="command">locale -a</kbd></pre>
- <p>
- Таблицы символов могут иметь несколько синонимов. Например
- <code class="literal">ISO-8859-1</code> так же называют
- <code class="literal">iso8859-1</code> и <code class=
- "literal">iso88591</code>. Некоторые приложения не могут
- корректно обрабатывать различные синонимы (например
- <code class="literal">UTF-8</code> должно быть указано как
- <code class="literal">UTF-8</code>, а не <code class=
- "literal">utf8</code>), поэтому в большинстве случаев
- безопаснее всего выбрать каноническое имя для конкретной
- локали. Для определения канонического имени локали выполните
- команду ниже, заменив <em class="replaceable"><code>&lt;locale
- name&gt;</code></em> на вывод <span class=
- "command"><strong>locale -a</strong></span> для желаемой локали
- (например <code class="literal">en_GB.iso88591</code> в нашем
- примере).
- </p>
- <pre class="userinput"><kbd class="command">LC_ALL=<em class=
- "replaceable"><code>&lt;locale name&gt;</code></em> locale charmap</kbd></pre>
- <p>
- Для локали <code class="literal">en_GB.iso88591</code>
- приведенная выше команда напечатает:
- </p>
- <pre class="screen"><code class=
- "computeroutput">ISO-8859-1</code></pre>
- <p>
- Окончательная настройка локали будет выглядеть так:
- <code class="literal">en_GB.ISO-8859-1</code>. Важно, чтобы
- локаль, найденная с помощью приведенной выше методики, была
- проверена перед её добавлением в файлы запуска Bash:
- </p>
- <pre class="userinput"><kbd class=
- "command">LC_ALL=&lt;locale name&gt; locale language
-LC_ALL=&lt;locale name&gt; locale charmap
-LC_ALL=&lt;locale name&gt; locale int_curr_symbol
-LC_ALL=&lt;locale name&gt; locale int_prefix</kbd></pre>
- <p>
- Приведенные выше команды должны вывести название языка,
- кодировку символов, используемую в локали, местную валюту и
- телефонный код страны. Если какая-либо из команд завершается с
- сообщением об ошибке, похожим на указанное ниже, это означает,
- что ваша локаль либо не была установлена в Главе 8, либо не
- поддерживается стандартной установкой Glibc.
- </p>
- <pre class="screen"><code class=
- "computeroutput">locale: Cannot set LC_* to default locale: No such file or directory</code></pre>
- <p>
- Если это произойдет, вам следует либо установить желаемую
- локаль с помощью команды <span class=
- "command"><strong>localedef</strong></span>, либо рассмотреть
- возможность выбора другой локали. Дальнейшие инструкции не
- предполагают таких сообщений об ошибках от Glibc.
- </p>
- <p>
- Другие пакеты также могут работать некорректно (но не всегда
- будут отображать какие-либо сообщения об ошибках), если
- название локали не соответствует их ожиданиям. В таких случаях
- изучите, какие ещё дистрибутивы Linux поддерживают ваш язык,
- возможно, это даст некоторую полезную информацию
- </p>
- <p>
- Программа оболочки <span class=
- "command"><strong>/bin/bash</strong></span> (далее именуемая
- как <span class="quote">«<span class=
- "quote">оболочка</span>»</span>) использует начальный набор
- файлов, чтобы помочь создать среду для запуска. Каждый файл
- имеет определенное назначение и может по-разному влиять на вход
- в систему и интерактивное окружение. Файлы в каталоге
- <code class="filename">/etc</code> содержат глобальные
- настройки. Если в домашнем каталоге существуют эквивалентные
- файлы, они могут переопределить глобальные настройки.
- </p>
- <p>
- Интерактивная оболочка входа запускается после успешного входа
- с использованием <span class=
- "command"><strong>/bin/login</strong></span>, прочитав файл
- <code class="filename">/etc/passwd</code>. Интерактивная
- оболочка без входа в систему запускается из командной строки
- (например, <code class="prompt">[prompt]$</code><span class=
- "command"><strong>/bin/bash</strong></span>). Неинтерактивная
- оболочка обычно присутствует когда выполняется скрипт оболочки.
- Он неинтерактивен, поскольку обрабатывает скрипт и не ожидает
- ввода пользователем между командами.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/profile</code>
- <span class="phrase">после того, как будут определены
- правильные настройки локали, чтобы установить желаемый
- язык</span>, но вместо этого установите локаль <code class=
- "literal">C.UTF-8</code> при запуске консоли Linux (чтобы
- программы не выводили символы, которые консоль Linux не может
- отобразить):
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/profile &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/profile
-
-for i in $(locale); do
- unset ${i%=*}
-done
-
-if [[ "$TERM" = linux ]]; then
- export LANG=C.UTF-8
-else
- export LANG=<em class=
-"replaceable"><code>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</code></em>
-fi
-
-# End /etc/profile</code>
-EOF</kbd></pre>
- <p>
- Локаль <code class="literal">C</code> (используемая по
- умолчанию) и <code class="literal">en_US</code> (одна из
- рекомендуемых для англоязычных пользователей в Соединенных
- Штатах) это разные локали. <code class="literal">C</code>
- использует 7-битный набор символов US-ASCII и обрабатывает
- байты с установленным старшим битом как недопустимые символы.
- Вот почему, например, команда <span class=
- "command"><strong>ls</strong></span> заменяет их
- вопросительными знаками в этой локали. Кроме того, попытка
- отправить почту с такими символами из Mutt или Pine приводит к
- тому что, отправляемые сообщения не соответствуют RFC
- (кодировка в исходящей почте указана как <code class=
- "computeroutput">unknown 8-bit</code>). Рекомендуется
- использовать локаль <code class="literal">C</code>, если вы
- уверены, что вам никогда не понадобятся 8-битные символы.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-inputrc" name="ch-config-inputrc"></a>9.8.
- Создание файла /etc/inputrc
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">inputrc</code> это конфигурационный
- файл библиотеки readline, который предоставляет возможности
- редактирования, когда пользователь вводит строку с терминала.
- Он работает путем преобразования ввода с клавиатуры в
- определенные действия. Readline используется bash и
- большинством других оболочек, а также многими другими
- приложениями.
- </p>
- <p>
- Большинство людей не нуждаются в специальных настройках,
- поэтому приведенная ниже команда создает глобальный
- <code class="filename">/etc/inputrc</code>, используемый всеми,
- кто входит в систему. Если позже вы решите, что вам нужно
- переопределить значения по умолчанию для одного из
- пользователей, вы можете создать файл <code class=
- "filename">.inputrc</code> в домашнем каталоге пользователя и
- указать в нём измененные настройки.
- </p>
- <p>
- Дополнительные сведения о редактировании файла <code class=
- "filename">inputrc</code> см. в разделе <span class=
- "command"><strong>info bash</strong></span> в секции
- <span class="emphasis"><em>Readline Init File</em></span>.
- Также хорошим источником информации является <span class=
- "command"><strong>info readline</strong></span>.
- </p>
- <p>
- Ниже приведен общий глобальный <code class=
- "filename">inputrc</code> с комментариями, объясняющими, что
- делают различные параметры. Обратите внимание, что комментарии
- не могут находиться в той же строке, что и команды. Создайте
- файл с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/inputrc &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/inputrc
-# Modified by Chris Lynn &lt;roryo@roryo.dynup.net&gt;
-
-# Разрешить перенос приглашения оболочки на следующую строку
-set horizontal-scroll-mode Off
-
-# Разрешить 8-битный ввод
-set meta-flag On
-set input-meta On
-
-# Отключить обрезание восьмого бита в вводимых символах
-set convert-meta Off
-
-# Выводить на экран все восемь бит
-set output-meta On
-
-# Звуковой сигнал - none, visible или audible, соответственно никакого, видимый или слышимый
-set bell-style none
-
-# Нижеследующие команды привязывают escape-последовательности (первый аргумент)
-# к специфичным для Readline функциям (второй аргумент)
-"\eOd": backward-word
-"\eOc": forward-word
-
-# для консоли linux
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# для xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# для Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc</code>
-EOF</kbd></pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-config-shells" name="ch-config-shells"></a>9.9.
- Создание файла /etc/shells
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">shells</code> содержит список
- оболочек входа в систему. Приложения используют этот файл для
- определения корректности оболочки. Для каждой оболочки должна
- присутствовать одна строка, состоящая из пути к файлу оболочки
- относительно корня структуры каталогов (/).
- </p>
- <p>
- Например, <span class="command"><strong>chsh</strong></span>
- обращается к этому файлу, чтобы определить, может ли
- непривилегированный пользователь изменить оболочку входа для
- своей учетной записи. Если имя команды не указано в списке,
- пользователю будет отказано в возможности изменять оболочки.
- </p>
- <p>
- Это обязательное условие для таких приложений, как <span class=
- "application">GDM</span>, которые не заполняют список
- пользователей, если ему не удаётся найти <code class=
- "filename">/etc/shells</code>, или демонов FTP, которые
- традиционно запрещают доступ пользователям с оболочками, не
- включенными в этот файл.
- </p>
- <pre class="root"><kbd class=
- "command">cat &gt; /etc/shells &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells</code>
-EOF</kbd></pre>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-bootable" name="chapter-bootable"></a>Глава
- 10. Делаем систему LFS загрузочной
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-bootable-introduction" name=
- "ch-bootable-introduction"></a>10.1. Введение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Пришло время сделать систему LFS загрузочной. В этой главе
- обсуждается создание файла <code class=
- "filename">/etc/fstab</code>, сборка ядра для новой системы и
- установка загрузчика GRUB, чтобы система LFS могла быть выбрана
- для загрузки при запуске.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-bootable-fstab" name=
- "ch-bootable-fstab"></a>10.2. Создание файла /etc/fstab
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">/etc/fstab</code> используется
- некоторыми программами для определения того, какие файловые
- системы должны монтироваться по умолчанию, в каком порядке и
- какие из них должны быть проверены (на наличие ошибок
- целостности) перед монтированием. Создайте новую таблицу
- файловых систем следующим образом:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/fstab &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/fstab
-
-# file system mount-point type options dump fsck
-# order
-
-/dev/<em class=
-"replaceable"><code>&lt;xxx&gt;</code></em> / <em class=
-"replaceable"><code>&lt;fff&gt;</code></em> defaults 1 1
-/dev/<em class=
-"replaceable"><code>&lt;yyy&gt;</code></em> swap swap pri=1 0 0
-proc /proc proc nosuid,noexec,nodev 0 0
-sysfs /sys sysfs nosuid,noexec,nodev 0 0
-devpts /dev/pts devpts gid=5,mode=620 0 0
-tmpfs /run tmpfs defaults 0 0
-devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
-tmpfs /dev/shm tmpfs nosuid,nodev 0 0
-cgroup2 /sys/fs/cgroup cgroup2 nosuid,noexec,nodev 0 0
-
-# End /etc/fstab</code>
-EOF</kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;xxx&gt;</code></em>,
- <em class="replaceable"><code>&lt;yyy&gt;</code></em>, и
- <em class="replaceable"><code>&lt;fff&gt;</code></em>
- подходящими для системы значениями, например, <code class=
- "filename">sda2</code>, <code class="filename">sda5</code>, и
- <code class="systemitem">ext4</code>. Для получения подробной
- информации о параметрах в этом файле, смотрите <a class="ulink"
- href="https://man.archlinux.org/man/fstab.5">fstab(5)</a>.
- </p>
- <p>
- Файловым системам операционных систем MS DOS и Windows (таким
- как vfat, ntfs, smbfs, cifs, iso9660, udf) требуется
- специальная опция utf8, чтобы не-ASCII символы в именах файлов
- интерпретировались правильно. Для локалей, отличных от UTF-8,
- значение <code class="option">iocharset</code> должно быть
- таким же, как набор символов локали и настроено так, чтобы ядро
- понимало его. Это будет работать, если соответствующее
- определение набора символов (находится в разделе File systems
- -&gt; Native Language Support при настройке ядра) было
- скомпилировано в ядро или собрано как модуль. Однако, если
- набор символов локали — UTF-8, параметр <code class=
- "option">iocharset=utf8</code> сделает файловую систему
- чувствительной к регистру. Чтобы исправить это, используйте
- специальную опцию <code class="option">utf8</code> вместо
- <code class="option">iocharset=utf8</code> для локалей UTF-8.
- Параметр <span class="quote">«<span class=
- "quote">codepage</span>»</span> также необходим для файловых
- систем vfat и smbfs. Он должен быть установлен на номер кодовой
- страницы, используемый в MS-DOS в вашей стране. Например, для
- монтирования флешек пользователь локали ru_RU.KOI8-R должен
- установить следующие значения в группе параметров строки
- монтирования в <code class="filename">/etc/fstab</code>:
- </p>
- <pre class="screen"><code class=
- "literal">noauto,user,quiet,showexec,codepage=866,iocharset=koi8r</code></pre>
- <p>
- Соответствующий фрагмент параметров для пользователей
- ru_RU.UTF-8 выглядит следующим образом:
- </p>
- <pre class="screen"><code class=
- "literal">noauto,user,quiet,showexec,codepage=866,utf8</code></pre>
- <p>
- Обратите внимание, что <code class="option">iocharset</code>
- используется по умолчанию для <code class=
- "literal">iso8859-1</code> (которая сохраняет файловую систему
- нечувствительной к регистру), а параметр <code class=
- "option">utf8</code> указывает ядру, что нужно преобразовать
- имена файлов с использованием UTF-8, чтобы их можно было
- интерпретировать в локали UTF-8.
- </p>
- <p>
- Также возможно указать значения кодовой страницы по умолчанию и
- iocharset для некоторых файловых систем во время настройки
- ядра. Соответствующие параметры называются <span class=
- "quote">«<span class="quote">Default NLS Option</span>»</span>
- (<code class="option">CONFIG_NLS_DEFAULT)</code>, <span class=
- "quote">«<span class="quote">Default Remote NLS
- Option</span>»</span> (<code class=
- "option">CONFIG_SMB_NLS_DEFAULT</code>), <span class=
- "quote">«<span class="quote">Default codepage for
- FAT</span>»</span> (<code class=
- "option">CONFIG_FAT_DEFAULT_CODEPAGE</code>) и <span class=
- "quote">«<span class="quote">Default iocharset for
- FAT</span>»</span> (<code class=
- "option">CONFIG_FAT_DEFAULT_IOCHARSET</code>). Нет возможности
- указать эти параметры для файловой системы ntfs во время
- компиляции ядра.
- </p>
- <p>
- Для некоторых типов жестких дисков можно сделать файловую
- систему ext3 более устойчивой к сбоям питания. Чтобы сделать
- это, добавьте параметр <code class="option">barrier=1</code> к
- соответствующей записи в <code class=
- "filename">/etc/fstab</code>. Чтобы проверить, поддерживает ли
- диск эту опцию, запустите <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/hdparm.html">
- hdparm</a> на соответствуюшем разделе. Например, если:
- </p>
- <pre class="userinput"><kbd class=
- "command">hdparm -I /dev/sda | grep NCQ</kbd></pre>
- <p>
- возвращает непустой вывод, опция поддерживается.
- </p>
- <p>
- Примечание: разделы на основе управления логическими томами
- (LVM) не могут использовать параметр <code class=
- "option">barrier</code>.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-bootable-kernel" name=
- "ch-bootable-kernel"></a>10.3. Linux-6.7.4
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Этот пакет содержит ядро Linux.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время
- сборки:</strong> <span class="segbody">0.6 - 20.4 SBU
- (обычно около 1.4 SBU)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.8 - 10.6
- GB (обычно около 2 GB)</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 10.3.1. Установка ядра
- </h3>
- <p>
- Сборка ядра состоит из нескольких этапов—настройка,
- компиляция и установка. Ознакомьтесь с файлом <code class=
- "filename">README</code> в дереве исходных текстов, чтобы
- узнать об альтернативных способах настройки ядра.
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Сборка ядра Linux в первый раз — одна из самых сложных
- задач в LFS. Правильный выбор параметров зависит от
- конкретного оборудования для целевой системы и ваших
- потребностей. Для ядра доступно почти 12 000 элементов
- конфигурации, хотя для большинства компьютеров требуется
- только около трети из них. Редакторы LFS рекомендуют
- пользователям, не знакомым с этим процессом, внимательно
- следовать описанным ниже процедурам. Главная цель сейчас
- состоит в том, чтобы довести первоначальную систему до
- состояния, когда вы сможете войти в систему из командной
- строки при последующей перезагрузке в <a class="xref" href=
- "#ch-finish-reboot" title=
- "11.3. Перезагрузка системы">Раздел&nbsp;11.3,
- «Перезагрузка системы»</a>. Вопросы оптимизация и
- кастомизация второстепенны.
- </p>
- <p>
- Для получения общей информации о конфигурации ядра смотрите
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt</a>.
- Дополнительную информацию о настройке и сборке ядра можно
- найти по адресу <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/">https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/</a>.
- Эти ссылки немного устарели, но все же дают разумное
- представление о процессе.
- </p>
- <p>
- Если ничего не помогает, вы можете обратиться за помощью в
- список рассылки <a class="ulink" href=
- "https://www.linuxfromscratch.org/mail.html">lfs-support</a>.
- Обратите внимание, что подписка необходима для того, чтобы
- рассылка не содержала спама.
- </p>
- </div>
- <p>
- Подготовьте пакет к компиляции, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">make mrproper</kbd></pre>
- <p>
- Выполнение этой команды гарантирует, что дерево исходников
- будет абсолютно чистым. Разработчики ядра рекомендуют
- запускать эту команду перед каждой компиляцией. Не следует
- полагаться на то, что дерево исходных текстов ядра будет
- чистым после распаковки.
- </p>
- <p>
- Существует несколько способов настройки параметров ядра.
- Обычно это делается с помощью псевдографического интерфейса,
- например так:
- </p>
- <pre class="userinput"><kbd class=
- "command">make menuconfig</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значения необязательных переменных окружения
- make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>LANG=&lt;переменная_LANG_хоста&gt;
- LC_ALL=</code></em></span>
- </dt>
- <dd>
- <p>
- Устанавливает значение локали на то, которое
- используется на хосте. Это может понадобиться для
- правильного отображения интерфейса menuconfig с помощью
- ncurses в текстовой консоли Linux с UTF-8.
- </p>
- <p>
- Если это необходимо, обязательно замените значение
- <em class=
- "replaceable"><code>&lt;переменной_LANG&gt;</code></em>
- на значение переменной <code class="envar">$LANG</code>
- вашего хоста. В качестве альтернативы вы можете
- использовать значения переменных <code class=
- "envar">$LC_ALL</code> или <code class=
- "envar">$LC_CTYPE</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><span class="command"><strong>make
- menuconfig</strong></span></span>
- </dt>
- <dd>
- <p>
- Эта команда запускает интерфейс на основе ncurses. Для
- использования других (графических) интерфейсов,
- выполните <span class="command"><strong>make
- help</strong></span>.
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Хорошей отправной точкой для настройки ядра, может стать
- запуск команды <span class="command"><strong>make
- defconfig</strong></span>. В результате её выполнения будет
- создана базовая конфигурация с учётом архитектуры системы.
- </p>
- <p>
- Обязательно включите/отключите/настройте следующие
- параметры, иначе система может работать некорректно или
- вообще не загружаться:
- </p>
- <pre class="screen"><span class=
- "blue">G</span>eneral setup ---&gt;
- [ ] <span class=
-"blue">C</span>ompile the kernel with warnings as errors [WERROR]
- <span class="blue">C</span>PU/Task time and stats accounting ---&gt;
- [*] <span class=
-"blue">P</span>ressure stall information tracking [PSI]
- [ ] <span class=
-"blue">R</span>equire boot parameter to enable pressure stall information tracking
- ... [PSI_DEFAULT_DISABLED]
- &lt; &gt; <span class=
-"blue">E</span>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
- [*] <span class=
-"blue">C</span>ontrol Group support ---&gt; [CGROUPS]
- [*] M<span class=
-"blue">e</span>mory controller [MEMCG]
- [ ] <span class=
-"blue">C</span>onfigure standard kernel features (expert users) ---&gt; [EXPERT]
-
-<span class="blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">B</span>uild a relocatable kernel [RELOCATABLE]
- [*] <span class=
-"blue">R</span>andomize the address of the kernel image (KASLR) [RANDOMIZE_BASE]
-
-<span class="blue">G</span>eneral architecture-dependent options ---&gt;
- [*] <span class=
-"blue">S</span>tack Protector buffer overflow detection [STACKPROTECTOR]
- [*] <span class=
-"blue">S</span>trong Stack Protector [STACKPROTECTOR_STRONG]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- <span class="blue">G</span>eneric Driver Options ---&gt;
- [ ] <span class=
-"blue">S</span>upport for uevent helper [UEVENT_HELPER]
- [*] M<span class=
-"blue">a</span>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
- [*] <span class=
-"blue">A</span>utomount devtmpfs at /dev, after the kernel mounted the rootfs
- ... [DEVTMPFS_MOUNT]
- <span class="blue">G</span>raphics support ---&gt;
- &lt; /*/M&gt; <span class=
-"blue">D</span>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
- ... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">E</span>nable legacy fbdev support for your modesetting driver
- ... [DRM_FBDEV_EMULATION]
- <span class="blue">C</span>onsole display driver support ---&gt;
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">F</span>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</pre>
- <p>
- Включите некоторые дополнительные функции, если вы
- собираете 64-битную систему. Если вы используете
- menuconfig, включите их в следующем порядке: сначала
- <em class="parameter"><code>CONFIG_PCI_MSI</code></em>,
- затем <em class=
- "parameter"><code>CONFIG_IRQ_REMAP</code></em>, и, наконец,
- <em class="parameter"><code>CONFIG_X86_X2APIC</code></em>,
- потому что параметр отображается только после выбора его
- зависимости.
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">S</span>upport x2apic [X86_X2APIC]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- [*] <span class=
-"blue">P</span>CI support ---&gt; [PCI]
- [*] M<span class=
-"blue">e</span>ssage Signaled Interrupts (MSI and MSI-X) [PCI_MSI]
- [*] <span class=
-"blue">I</span>OMMU Hardware Support ---&gt; [IOMMU_SUPPORT]
- [*] <span class=
-"blue">S</span>upport for Interrupt Remapping [IRQ_REMAP]</pre>
- <p>
- Если вы создаете 32-разрядную систему, работающую на
- оборудовании с объемом оперативной памяти более 4 ГБ,
- измените конфигурацию таким образом, чтобы ядро могло
- использовать до 64 ГБ оперативной памяти:
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- H<span class="blue">i</span>gh Memory Support ---&gt;
- (X) <span class=
-"blue">6</span>4GB [HIGHMEM64G]</pre>
- <p>
- Если раздел для системы LFS находится на NVME SSD (то есть
- узлом устройства для раздела является <code class=
- "filename">/dev/nvme*</code>, а не <code class=
- "filename">/dev/sd*</code>), включите параметр NVME
- support, иначе система LFS не будет загружаться:
- </p>
- <pre class="screen"><span class=
- "blue">D</span>evice Drivers ---&gt;
- N<span class="blue">V</span>ME Support ---&gt;
- &lt;*&gt; N<span class=
-"blue">V</span>M Express block device [BLK_DEV_NVME]</pre>
- </div>
- <p>
- Есть несколько других параметров, которые могут понадобиться
- в зависимости от особенностей системы. Для получения списка
- необходимых опций для пакетов BLFS смотрите <a class="ulink"
- href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/longindex.html#kernel-config-index">
- Список опций ядра BLFS</a>.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если ваша хост поддерживает UEFI и вы хотите загрузить LFS
- с помощью него, вам необходимо настроить некоторые
- параметры ядра, следуя инструкции <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-setup.html#uefi-kernel">
- на странице BLFS</a>, <span class="bold"><strong>даже если
- вы будете использовать загрузчик UEFI из основного
- дистрибутива</strong></span>.
- </p>
- </div>
- <div class="variablelist">
- <p class="title">
- <strong>Пояснения для выбранных выше параметров
- ядра:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>Randomize
- the address of the kernel image
- (KASLR)</code></em></span>
- </dt>
- <dd>
- <p>
- Включите ASLR для образа ядра, чтобы уменьшить
- вероятность некоторых атак, основанных на фиксированных
- адресах конфиденциальных данных или кода в ядре.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Compile
- the kernel with warnings as errors</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может привести к сбою сборки,
- если компилятор и/или конфигурация отличается от
- конфигурации ядра разработчиков.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable
- kernel headers through
- /sys/kernel/kheaders.tar.xz</code></em></span>
- </dt>
- <dd>
- <p>
- Для сборки ядра с этим параметром необходим пакет
- <span class="command"><strong>cpio</strong></span>.
- <span class="command"><strong>cpio</strong></span> не
- устанавливается в LFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Configure
- standard kernel features (expert
- users)</code></em></span>
- </dt>
- <dd>
- <p>
- Эта опция приведет к отображению некоторых параметров в
- интерфейсе конфигурации, но изменение этих параметров
- может быть опасным. Не используйте её, если вы не
- знаете, что делаете.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Strong
- Stack Protector</code></em></span>
- </dt>
- <dd>
- <p>
- Включите SSP для ядра. Мы включили его для всего
- пользовательского пространства с помощью <em class=
- "parameter"><code>--enable-default-ssp</code></em>,
- настроив GCC, но ядро не использует настройки GCC по
- умолчанию для SSP. Мы включаем это явно здесь.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support
- for uevent helper</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может вызвать сбои при
- управление устройствами через Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Maintain a
- devtmpfs</code></em></span>
- </dt>
- <dd>
- <p>
- С помощью этого параметра узлы устройств создаются
- автоматически и заполняются самим ядром, даже без
- запуска Udev. Udev будет работать поверх, управляя
- разрешениями и добавляя необходимые символические
- ссылки. Этот элемент конфигурации необходим всем
- пользователям Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Automount
- devtmpfs at /dev</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволит смонтировать представление ядра
- устройств в /dev при переключении на корневую файловую
- систему непосредственно перед запуском init.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable
- legacy fbdev support for your modesetting
- driver</code></em> и <em class=
- "parameter"><code>Framebuffer Console
- support</code></em></span>
- </dt>
- <dd>
- <p>
- Они необходимы для отображения консоли Linux на
- графическом процессоре, управляемом драйвером DRI
- (Direct Rendering Infrastructure - инфраструктура
- прямого рендеринга). Если <code class=
- "option">CONFIG_DRM</code> (Direct Rendering Manager -
- диспетчер прямого рендеринга) включен, вам также
- следует включить эти две опции, иначе вы увидите пустой
- экран после загрузки драйвера DRI.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support
- x2apic</code></em></span>
- </dt>
- <dd>
- <p>
- Поддержка запуска 64-разрядного контроллера прерываний
- для x86 процессоров в режиме x2APIC. x2APIC может быть
- включен в BIOS на системах x86 и у ядра собранного без
- этой опции будет kernel panic при загрузке. Эта опция
- не окажет никакого эффекта, но и не причиняет вреда,
- если x2APIC отключен в BIOS.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В качестве альтернативы, в некоторых ситуациях может быть
- уместно использование команды <span class=
- "command"><strong>make oldconfig</strong></span>. Смотрите
- файл <code class="filename">README</code> для получения
- дополнительной информации.
- </p>
- <p>
- По желанию, вы можете пропустить настройку ядра, скопировав
- конфигурационный файл ядра <code class=
- "filename">.config</code>, из хост системы(если он доступен)
- в каталог куда было распаковано ядро <code class=
- "filename">linux-6.7.4</code>. Однако, мы не рекомендуем этот
- вариант. Намного лучше изучить все параметры меню и создать
- конфигурацию ядра с нуля.
- </p>
- <p>
- Скомпилируйте образ ядра и модули:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- При использовании модулей, могут потребоваться файлы
- конфигурации, которые расположены в каталоге <code class=
- "filename">/etc/modprobe.d</code>. Информация о модулях и
- конфигурации ядра находится в <a class="xref" href=
- "#ch-config-udev" title=
- "9.3. Взаимодействие с устройствами и модулями">Раздел&nbsp;9.3,
- «Взаимодействие с устройствами и модулями»</a> и в
- документации к ядру <code class=
- "filename">linux-6.7.4/Documentation</code>. Кроме этого,
- стоит ознакомиться с руководством <a class="ulink" href=
- "https://man.archlinux.org/man/modprobe.d.5">modprobe.d(5)</a>.
- </p>
- <p>
- Если поддержка модулей не была отключена в параметрах ядра,
- установите модули с помощью:
- </p>
- <pre class="userinput"><kbd class=
- "command">make modules_install</kbd></pre>
- <p>
- После окончания компиляции, необходимо выполнить еще
- несколько шагов для завершения установки ядра. Некоторые
- файлы должны быть скопированы в каталог <code class=
- "filename">/boot</code>.
- </p>
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- Если вы решили использовать отдельный <code class=
- "filename">/boot</code> раздел для системы LFS (возможно,
- общий раздел <code class="filename">/boot</code> с
- хост-дистрибутивом), скопированные ниже файлы должны быть
- помещены туда. Самый простой способ сделать это — сначала
- создать запись для <code class="filename">/boot</code> в
- <code class="filename">/etc/fstab</code> (подробности
- читайте в предыдущем разделе), затем выполните следующую
- команду от имени пользователя <code class=
- "systemitem">root</code> в среде <span class=
- "emphasis"><em>chroot</em></span>:
- </p>
- <pre class="userinput"><kbd class=
- "command">mount /boot</kbd></pre>
- <p>
- Путь к узлу устройства в команде опущен, поскольку
- <span class="command"><strong>mount</strong></span> может
- прочитать его из <code class="filename">/etc/fstab</code>.
- </p>
- </div>
- <p>
- Путь к образу ядра может различаться в зависимости от
- используемой платформы. Имя файла, может быть произвольным,
- но начинаться должно с <span class=
- "emphasis"><em>vmlinuz</em></span> для обеспечения
- совместимости с автоматической настройкой процесса загрузки,
- описанного в следующем разделе. Следующая команда
- предполагает архитектуру x86:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-6.7.4-lfs-12.1</kbd></pre>
- <p>
- <code class="filename">System.map</code> - это символьный
- файл для ядра. Он содержит точки входа каждой функции в API
- ядра, а также адреса структур данных для запущенного ядра. Он
- используется в качестве ресурса при исследовании проблем с
- ядром. Выполните следующую команду для установки файла:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv System.map /boot/System.map-6.7.4</kbd></pre>
- <p>
- Файл конфигурации ядра <code class="filename">.config</code>
- создается на шаге <span class="command"><strong>make
- menuconfig</strong></span> и содержит все параметры ядра,
- которое было скомпилировано только что. Рекомендуется
- сохранить этот файл на будущее:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv .config /boot/config-6.7.4</kbd></pre>
- <p>
- Установите документацию ядра:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -r Documentation -T /usr/share/doc/linux-6.7.4</kbd></pre>
- <p>
- Важно отметить, что файлы в каталоге с исходным кодом ядра не
- принадлежат пользователю <span class=
- "emphasis"><em>root</em></span>. Всякий раз, когда пакет
- распаковывается от имени пользователя <span class=
- "emphasis"><em>root</em></span> (как это и выполнялось внутри
- среды chroot), файлы имеют те идентификаторы пользователя и
- группы, которые были присвоены при распаковке. Обычно это не
- вызывает проблем для других устанавливаемых пакетов, так как
- каталог с исходниками удаляется после установки пакета.
- Однако исходный код ядра Linux часто сохраняется в течение
- длительного времени. Из-за этого существует вероятность того,
- что идентификатор пользователя, используемый при распаковке,
- будет назначен другому пользователю. В таком случае, этот
- пользователь будет иметь доступ на запись в этот каталог.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- В ряде случаев требуется обновить конфигурацию ядра для
- пакетов, которые будут установлены позже в BLFS. В отличии
- от других пакетов, нет необходимости удалять дерево
- исходного кода ядра после установки только что собранного
- ядра.
- </p>
- <p>
- Если вы планируете оставить каталог с исходным кодом ядра,
- выполните команду <span class="command"><strong>chown -R
- 0:0 *</strong></span> находясь в каталоге <code class=
- "filename">linux-6.7.4</code>, чтобы все файлы принадлежали
- пользователю <span class="emphasis"><em>root</em></span>.
- </p>
- </div>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Иногда, в документации к ядру, рекомендуют создать
- символическую ссылку <code class=
- "filename">/usr/src/linux</code> указывающую на каталог с
- исходниками ядра. Эта рекомендация относится к ядрам до
- версии 2.6 и <span class="emphasis"><em>не
- должна</em></span> выполняться в системе LFS, так как это
- может вызвать проблемы с пакетами, которые вы, возможно,
- захотите собрать, когда ваша базовая система LFS будет
- готова.
- </p>
- </div>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Заголовочные файлы в системном каталоге <code class=
- "filename">include</code> (<code class=
- "filename">/usr/include</code>) <span class=
- "emphasis"><em>всегда</em></span> используются те, которые
- применялись при компиляции Glibc, то есть подготовленные
- заголовочные файлы, установленные в <a class="xref" href=
- "#ch-tools-linux-headers" title=
- "5.4. Заголовочные файлы Linux-6.7.4 API">Раздел&nbsp;5.4,
- «Заголовочные файлы Linux-6.7.4 API»</a>. Поэтому их
- <span class="emphasis"><em>никогда</em></span> не следует
- заменять на чистые заголовочные файлы ядра или любые другие
- подготовленные заголовочные файлы.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="conf-modprobe" name="conf-modprobe"></a>10.3.2.
- Настройка порядка загрузки модулей Linux
- </h3>
- <p>
- В большинстве случаев модули Linux загружаются автоматически,
- но иногда требуется определенный порядок. Программа, которая
- загружает модули, <span class=
- "command"><strong>modprobe</strong></span> или <span class=
- "command"><strong>insmod</strong></span>, использует файл
- <code class="filename">/etc/modprobe.d/usb.conf</code> как
- раз для этой цели. Этот файл должен быть заполнен таким
- образом, что если USB-драйверы (ehci_hcd, ohci_hcd и
- uhci_hcd) были собраны в виде модулей, то они будут загружены
- в правильном порядке; ehci_hcd должен быть загружен до
- ohci_hcd и uhci_hcd для того, чтобы избежать предупреждений
- во время загрузки.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/modprobe.d/usb.conf</code>, выполнив
- следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -m755 -d /etc/modprobe.d
-cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf</code>
-EOF</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="contents-kernel" name="contents-kernel"></a>10.3.3.
- Содержимое пакета Linux
- </h3>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные файлы:</strong>
- <span class="segbody">config-6.7.4,
- vmlinuz-6.7.4-lfs-12.1, и System.map-6.7.4</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/lib/modules,
- /usr/share/doc/linux-6.7.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h4>
- <a id="idm17140" name="idm17140"></a>Краткое описание
- </h4>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="config" name="config"></a><span class=
- "term"><code class=
- "filename">config-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит в себе все параметры конфигурации ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lfskernel" name="lfskernel"></a><span class=
- "term"><code class=
- "filename">vmlinuz-6.7.4-lfs-12.1</code></span>
- </p>
- </td>
- <td>
- <p>
- Ядро системы Linux. При включении компьютера ядро —
- это первая загружаемая часть операционной системы.
- Оно обнаруживает и инициализирует все компоненты
- аппаратного обеспечения компьютера, делает их
- доступными в виде дерева каталогов с файлами для
- доступа к ним программ и превращает один процессор
- в мультизадачную машину, способную выполнять
- множество программ как будто одновременно.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="System.map" name=
- "System.map"></a><span class="term"><code class=
- "filename">System.map-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Список адресов и символов; файл содержит точки
- входа и адреса всех функций и структур данных в
- ядре
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-bootable-grub" name="ch-bootable-grub"></a>10.4.
- Использование GRUB для настройки процесса загрузки
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если ваша система поддерживает UEFI и вы хотите загрузить LFS
- с помощью UEFI, вам следует пропустить инструкции на этой
- странице, но все равно изучить синтаксис <code class=
- "filename">grub.cfg</code> и способ указания раздела в файле
- с этой страницы, а также настроить GRUB с поддержкой UEFI
- используя инструкции, приведенные на <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-setup.html">
- странице BLFS</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 10.4.1. Введение
- </h3>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- При неправильной настройке GRUB ваша система перестанет
- загружаться без вспомогательно загрузочного CD-ROM или
- USB-накопителя. Для загрузки системы LFS этот раздел
- необязателен. Вы можете просто использовать существующий
- загрузчик, например Grub-Legacy, GRUB2 или LILO.
- </p>
- </div>
- <p>
- Убедитесь, что аварийный загрузочный диск готов к
- <span class="quote">«<span class=
- "quote">спасению</span>»</span> компьютера, если он
- перестанет загружаться. Если у вас еще нет загрузочного
- диска, вы можете создать его. Для этого необходимо перейти в
- раздел BLFS и установить программу <strong class=
- "userinput"><code>xorriso</code></strong> из пакета <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/multimedia/libisoburn.html">
- libisoburn</a>.
- </p>
- <pre class="userinput"><kbd class="command">cd /tmp
-grub-mkrescue --output=grub-img.iso
-xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso</kbd></pre>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 10.4.2. Соглашения об именовании GRUB
- </h3>
- <p>
- GRUB использует собственную структуру именования дисков и
- разделов в виде <span class=
- "emphasis"><em>(hdn,m)</em></span>, где <span class=
- "emphasis"><em>n</em></span> — номер жесткого диска, а
- <span class="emphasis"><em>m</em></span> — номер раздела.
- Номера жестких дисков начинаются с нуля, а номера разделов
- начинаются с единицы для обычных разделов (с пяти для
- расширенных разделов). Обратите внимание, что это отличается
- от более ранних версий, где оба номера начинались с нуля.
- Например, раздел <code class="filename">sda1</code> это
- <span class="emphasis"><em>(hd0,1)</em></span> в GRUB, а
- <code class="filename">sdb3</code> <span class=
- "emphasis"><em>(hd1,3)</em></span>. В отличие от Linux, GRUB
- не считает приводы CD-ROM жесткими дисками. Например, если
- используемый CD-привода определяется как <code class=
- "filename">hdb</code>, а второй жесткий диск как <code class=
- "filename">hdc</code>, этот второй жесткий диск все равно
- будет <span class="emphasis"><em>(hd1)</em></span>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 10.4.3. Настройка
- </h3>
- <p>
- GRUB записывает данные на первый физический сектор жесткого
- диска. Эта область не является частью какой-либо файловой
- системы. Программа в загрузочном разделе имеет доступ к
- модулям GRUB расположенным по умолчанию в /boot/grub/.
- </p>
- <p>
- Расположение загрузочного раздела - это выбор пользователя,
- который влияет на конфигурацию. Одна из рекомендаций
- заключается в том, чтобы иметь отдельный небольшой раздел
- (примерно 200 МБ) исключительно для загрузочной информации. В
- этом случае каждая сборка, будь то LFS или другой
- дистрибутив, может обращаться к тем же загрузочным файлам, а
- доступ может быть получен из любой загруженной системы. Если
- вы решите так сделать, вам необходимо примонтировать
- отдельный раздел, переместить все файлы из текущего каталога
- <code class="filename">/boot</code> (например, ядро Linux,
- которое вы создали на предыдущем этапе) в новый раздел. Затем
- нужно отмонтировать раздел и примонтировать его заново в
- каталог <code class="filename">/boot</code>. Когда вы это
- сделаете, обязательно обновите данные в файле <code class=
- "filename">/etc/fstab</code>.
- </p>
- <p>
- Оставить <code class="filename">/boot</code> на текущем
- разделе LFS это тоже рабочее решение, но его настройка для
- загрузки нескольких систем сложнее.
- </p>
- <p>
- Используя информацию выше, определите соответствующие точки
- монтирования для корневого раздела (или загрузочного раздела,
- если используется отдельный). В следующем примере
- предполагается, что корневым (или отдельным загрузочным)
- разделом является <code class="filename">sda2</code>.
- </p>
- <p>
- Установите файлы GRUB в каталог <code class=
- "filename">/boot/grub</code> и настройте загрузочный сектор:
- </p>
- <div class="admon warning">
- <h3>
- Предупреждение
- </h3>
- <p>
- Следующая команда перезапишет текущий загрузчик. Не
- выполняйте эту команду, если это не нужно, например, если
- вы используете сторонний менеджер загрузки для управления
- главной загрузочной записью (MBR).
- </p>
- </div>
- <pre class="userinput"><kbd class=
- "command">grub-install /dev/sda</kbd></pre>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Если система была загружена с использованием UEFI,
- <span class="command"><strong>grub-install</strong></span>
- попытается установить файлы для <span class=
- "emphasis"><em>x86_64-efi</em></span>, но эти файлы не были
- установлены в <a class="xref" href=
- "#chapter-building-system" title=
- "Глава 8. Установка базового системного программного обеспечения">
- Глава&nbsp;8</a>. Если это так, добавьте <code class=
- "option">--target i386-pc</code> к приведенной выше
- команде.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- <a id="grub-cfg" name="grub-cfg"></a>10.4.4. Создание файла
- конфигурации GRUB
- </h3>
- <p>
- Создайте файл <code class=
- "filename">/boot/grub/grub.cfg</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /boot/grub/grub.cfg &lt;&lt; "EOF"
-<code class="literal"># Begin /boot/grub/grub.cfg
-set default=0
-set timeout=5
-
-insmod part_gpt
-insmod ext2
-set root=(hd0,2)
-
-menuentry "GNU/Linux, Linux 6.7.4-lfs-12.1" {
- linux /boot/vmlinuz-6.7.4-lfs-12.1 root=/dev/sda2 ro
-}</code>
-EOF</kbd></pre>
- <p>
- Команды <span class="command"><strong>insmod</strong></span>
- загружают модули <span class="application">GRUB</span> с
- именами <code class="filename">part_gpt</code> и <code class=
- "filename">ext2</code>. Несмотря на название, <code class=
- "filename">ext2</code> фактически поддерживаются файловые
- системы <code class="systemitem">ext2</code>, <code class=
- "systemitem">ext3</code> и <code class=
- "systemitem">ext4</code>. Команда <span class=
- "command"><strong>grub-install</strong></span> встроила
- некоторые модули в основной образ <span class=
- "application">GRUB</span> (установленный в MBR или раздел
- GRUB BIOS) для доступа к другим модулям (в <code class=
- "filename">/boot/grub/i386-pc</code>), поэтому в стандартной
- конфигурации эти два модуля уже встроены и эти две команды
- <span class="command"><strong>insmod</strong></span> ничего
- не будут делать. В любом случае, от них нет никакого вреда,
- но они могут понадобиться в некоторых редких конфигурациях.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- С точки зрения <span class="application">GRUB</span>, файлы
- ядра относятся к используемому разделу. Если вы
- используется отдельный раздел /boot, удалите /boot из
- приведенной выше строки <span class=
- "emphasis"><em>linux</em></span>. Вам также потребуется
- изменить строку <span class="emphasis"><em>set
- root</em></span> так, чтобы она указывала на загрузочный
- раздел.
- </p>
- </div>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Наименование раздела для GRUB может измениться, если вы
- добавили или удалили некоторые диски (это могут быть как
- съемные диски, так и USB-устройства). Изменение может
- привести к сбою загрузки, потому что <code class=
- "filename">grub.cfg</code> ссылается на <span class=
- "quote">«<span class="quote">старые</span>»</span>
- указатели. Чтобы не столкнуться с этой проблемой,
- необходимо использовать UUID раздела и файловой системы
- вместо указателя GRUB для указания устройства. Запустите
- команду <span class="command"><strong>lsblk -o
- UUID,PARTUUID,PATH,MOUNTPOINT</strong></span>, чтобы
- посмотреть UUID ваших файловых систем (в столбце
- <code class="literal">UUID</code>) и разделов (в столбце
- <code class="literal">PARTUUID</code>). Затем замените
- <code class="literal">set root=(hdx,y)</code> на
- <code class="literal">search --set=root --fs-uuid
- <em class="replaceable"><code>&lt;UUID файловой системы, в
- которой установлено ядро&gt;</code></em></code>, и замените
- <code class="literal">root=/dev/sda2</code> на <code class=
- "literal">root=PARTUUID=<em class=
- "replaceable"><code>&lt;UUID раздела, в котором собрана
- LFS&gt;</code></em></code>.
- </p>
- <p>
- Обратите внимание, что UUID раздела и UUID файловой системы
- на этом разделе это совершенно разные вещи. Некоторые
- онлайн-ресурсы могут предлагать вам использовать
- <code class="literal">root=UUID=<em class=
- "replaceable"><code>&lt;UUID файловой
- системы&gt;</code></em></code> вместо <code class=
- "literal">root=PARTUUID=<em class=
- "replaceable"><code>&lt;UUID
- раздела&gt;</code></em></code>, но для этого требуется
- initramfs, которая не рассматривается в LFS.
- </p>
- <p>
- Имя узла устройства для раздела в <code class=
- "filename">/dev</code> также может измениться (хотя это
- менее вероятно, чем изменение указателя GRUB). Вы можете
- заменить пути к узлам устройств, таким как <code class=
- "literal">/dev/sda1</code> на <code class=
- "literal">PARTUUID=<em class="replaceable"><code>&lt;UUID
- раздела&gt;</code></em></code>, в <code class=
- "filename">/etc/fstab</code>, чтобы избежать потенциального
- сбоя загрузки в случае, если имя узла устройства
- изменилось.
- </p>
- </div>
- <p>
- GRUB - чрезвычайно мощная программа, предоставляющая огромное
- количество вариантов загрузки с самых разных устройств,
- работающих систем и типов разделов. Существует также
- множество опций настройки, таких как графические
- экраны-заставки, воспроизведение звука, ввод с помощью мыши и
- т. д., детали этих опций выходят за рамки этой инструкции.
- </p>
- <div class="admon caution">
- <h3>
- Внимание
- </h3>
- <p>
- Существует команда <span class=
- "application">grub-mkconfig</span>, которая может
- автоматически записывать файл конфигурации. Она использует
- набор скриптов из каталога /etc/grub.d/ и уничтожит любые
- сделанные вами настройки. Эти скрипты предназначены в
- первую очередь для обычных дистрибутивов и не рекомендуются
- для LFS. Если вы устанавливаете коммерческий дистрибутив
- Linux, есть вероятность, что эта программа будет запущена.
- Обязательно создайте резервную копию файла grub.cfg.
- </p>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="chapter-finalizing" name=
- "chapter-finalizing"></a>Глава 11. Заключение
- </h2>
- </div>
- </div>
- </div>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-finish-theend" name="ch-finish-theend"></a>11.1.
- Заключение
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Отлично! Новая система LFS установлена! Желаем успехов в работе
- с вашей новой, блестящей, самостоятельно собранной Linux
- системой.
- </p>
- <p>
- Может быть хорошей идеей создать файл <code class=
- "filename">/etc/lfs-release</code>. Имея этот файл, вам (и нам,
- если вам в какой-то момент понадобится обратиться за помощью)
- будет проще узнать, какая версия LFS установлена в системе.
- Создайте этот файл, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">echo 12.1 &gt; /etc/lfs-release</kbd></pre>
- <p>
- Следующие два файла, содержащие описание установленной системы,
- могут использоваться пакетами, устанавливаемыми позже, либо в
- бинарном виде, либо путем их сборки.
- </p>
- <p>
- Первый показывает статус вашей новой системы по отношению к
- стандарту LSB. Чтобы создать этот файл, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/lsb-release &lt;&lt; "EOF"
-DISTRIB_ID="Linux From Scratch"
-DISTRIB_RELEASE="12.1"
-DISTRIB_CODENAME="&lt;your name here&gt;"
-DISTRIB_DESCRIPTION="Linux From Scratch"
-EOF</kbd></pre>
- <p>
- Второй содержит примерно ту же информацию и используется
- systemd и некоторыми графическими средами рабочего стола. Чтобы
- создать этот файл, выполните:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/os-release &lt;&lt; "EOF"
-NAME="Linux From Scratch"
-VERSION="12.1"
-ID=lfs
-PRETTY_NAME="Linux From Scratch 12.1"
-VERSION_CODENAME="&lt;your name here&gt;"
-HOME_URL="https://mirror.linuxfromscratch.ru/lfs/"
-EOF</kbd></pre>
- <p>
- Обязательно настройте значения 'DISTRIB_CODENAME' и
- 'VERSION_CODENAME', чтобы сделать название вашей новой системы
- уникальным.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-finish-getcounted" name=
- "ch-finish-getcounted"></a>11.2. Вступите в ряды
- пользователей LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Теперь, когда вы закончили изучение книги LFS, хотите добавить
- себя в список пользователей LFS? Перейдите по ссылке <a class=
- "ulink" href=
- "https://www.linuxfromscratch.org/cgi-bin/lfscounter.php">https://www.linuxfromscratch.org/cgi-bin/lfscounter.php</a>
- и зарегистрируйтесь. Введите ваше имя и версию LFS, которую вы
- использовали.
- </p>
- <p>
- Давайте выполним перезагрузку в систему LFS.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-finish-reboot" name="ch-finish-reboot"></a>11.3.
- Перезагрузка системы
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Теперь, когда все программное обеспечение установлено, пришло
- время перезагрузить ваш компьютер. Однако есть несколько вещей,
- которые нужно проверить. Вот некоторые предложения:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Установить <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/firmware.html">
- прошивки</a>, если они необходимы для правильной работы
- вашего оборудования.
- </p>
- </li>
- <li class="listitem">
- <p>
- Убедитесь, что установлен пароль для пользователя
- <code class="systemitem">root</code>.
- </p>
- </li>
- <li class="listitem">
- <p>
- На данном этапе также уместно ознакомиться со следующими
- конфигурационными файлами.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- /etc/bashrc
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/dircolors
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/fstab
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/hosts
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/inputrc
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/profile
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/resolv.conf
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/vimrc
- </p>
- </li>
- <li class="listitem">
- <p>
- /root/.bash_profile
- </p>
- </li>
- <li class="listitem">
- <p>
- /root/.bashrc
- </p>
- </li>
- <li class="listitem">
- <p>
- /etc/sysconfig/ifconfig.eth0
- </p>
- </li>
- </ul>
- </div>
- </li>
- </ul>
- </div>
- <p>
- Теперь, после всего, давайте перейдём к первой загрузке нашей
- новой системы LFS. Для начала, выйдем из chroot-окружения:
- </p>
- <pre class="userinput"><kbd class="command">logout</kbd></pre>
- <p>
- Затем размонтируйте виртуальные файловые системы:
- </p>
- <pre class="userinput"><kbd class=
- "command">umount -v $LFS/dev/pts
-mountpoint -q $LFS/dev/shm &amp;&amp; umount -v $LFS/dev/shm
-umount -v $LFS/dev
-umount -v $LFS/run
-umount -v $LFS/proc
-umount -v $LFS/sys</kbd></pre>
- <p>
- Если было создано несколько разделов, размонтируйте их перед
- размонтированием основного, вот так:
- </p>
- <pre class="userinput"><kbd class="command">umount -v $LFS/home
-umount -v $LFS/usr</kbd></pre>
- <p>
- Размонтируйте саму файловую систему LFS:
- </p>
- <pre class="userinput"><kbd class=
- "command">umount -v $LFS</kbd></pre>
- <p>
- Теперь, выполните перезагрузку системы.
- </p>
- <p>
- Предполагается, что загрузчик GRUB был настроен ранее, поэтому
- пункт меню <span class="emphasis"><em>LFS 12.1</em></span>
- будет загружен автоматически.
- </p>
- <p>
- После завершения перезагрузки, система LFS будет готова к
- использованию. Вы увидите простую подсказку <span class=
- "quote">«<span class="quote">login:</span> »</span>. На этом
- этапе вы можете перейти к <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/">книге
- BLFS</a>, где вы установите дополнительное программное
- обеспечение в соответствии с вашими потребностями.
- </p>
- <p>
- Если перезагрузка завершилась <span class=
- "bold"><strong>неудачей</strong></span>, самое время устранить
- эти неполадки. Советы по решению проблем с начальной загрузкой,
- смотрите на странице <a class="ulink" href=
- "https://www.linuxfromscratch.org/lfs/troubleshooting.html">https://www.linuxfromscratch.org/lfs/troubleshooting.html</a>.
- </p>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ch-finish-whatnow" name=
- "ch-finish-whatnow"></a>11.4. Дополнительные ресурсы
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Благодарим за прочтение книги LFS. Мы надеемся, что эта книга
- была полезна и вы узнали больше о процессе создания системы с
- нуля.
- </p>
- <p>
- Теперь, когда система LFS установлена, вы можете задаться
- вопросом <span class="quote">«<span class="quote">Что
- дальше?</span>»</span> Чтобы ответить на этот вопрос, мы
- составили для вас список ресурсов.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Обслуживание
- </p>
- <p>
- Для всего программного обеспечения регулярно появляются
- сообщения об ошибках и уведомления безопасности.
- Поскольку система LFS компилируется из исходного кода, вы
- должны быть в курсе таких отчетов. Существует несколько
- онлайн-ресурсов, которые отслеживают такие отчеты,
- некоторые из них приведены ниже:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/lfs/advisories/">
- Рекомендации по безопасности LFS</a>
- </p>
- <p>
- Это список уязвимостей системы безопасности,
- обнаруженных в книге LFS после ее публикации.
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "https://seclists.org/oss-sec/">Список рассылки по
- безопасности ПО с открытым исходным кодом</a>
- </p>
- <p>
- Это список рассылки для обсуждения недостатков
- безопасности, концепций и практик в сообществе Open
- Source.
- </p>
- </li>
- </ul>
- </div>
- </li>
- <li class="listitem">
- <p>
- Советы LFS
- </p>
- <p>
- Советы LFS представляют собой коллекцию обучающих
- материалов, собранную добровольцами сообщества LFS.
- Советы доступны по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/</a>.
- </p>
- </li>
- <li class="listitem">
- <p>
- Списки рассылки
- </p>
- <p>
- Существует несколько списков рассылки LFS, на которые вы
- можете подписаться, если нуждаетесь в помощи, хотите быть
- в курсе последних событий, хотите внести свой вклад в
- проект и многое другое. Посетите <a class="xref" href=
- "#ch-intro-maillists" title=
- "1.4.2. Списки рассылки">Глава&nbsp;1 - Списки
- рассылки</a> для получения дополнительной информации.
- </p>
- </li>
- <li class="listitem">
- <p>
- Проект документации по Linux (TLDP)
- </p>
- <p>
- Целью проекта TLDP является сотрудничество по всем
- вопросам связанным с документацией по Linux. TLDP
- содержит большую коллекцию инструкций, руководств и
- справочных страниц. Она расположена по адресу <a class=
- "ulink" href="https://tldp.org/">https://tldp.org/</a>.
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="afterlfs" name="afterlfs"></a>11.5. Начало работы
- после сборки LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 11.5.1. Что делать дальше?
- </h3>
- <p>
- Теперь, когда LFS собрана и у вас есть загружаемая система,
- необходимо решить, что же делать дальше? Следующий шаг -
- определиться, как использовать систему. Как правило, следует
- учитывать две широкие категории: рабочая станция или сервер.
- Действительно, эти категории не являются взаимоисключающими.
- Приложения, необходимые для каждой категории, можно
- объединить в одну систему, но пока давайте рассмотрим их по
- отдельности.
- </p>
- <p>
- Сервер — более простая категория. Как правило, это
- веб-сервер, такой как <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/server/apache.html">
- Apache</a>, и сервер баз данных, например, <a class="ulink"
- href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/server/mariadb.html">
- MariaDB</a>. Однако возможны и другие варианты. К этой же
- категории относятся операционные системы для встраиваемых
- устройств.
- </p>
- <p>
- Рабочая станция же, гораздо сложнее. Обычно для нее требуется
- среда рабочего стола, например, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/lxde/lxde.html">
- LXDE</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/xfce/xfce.html">
- XFCE</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/kde/kde.html">
- KDE</a>, или <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/gnome/gnome.html">
- Gnome</a> основанные на базовом <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/x/installing.html">
- графическом окружении</a> и наборе графических приложений,
- таких как <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/xsoft/firefox.html">
- веб-браузер Firefox</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/xsoft/thunderbird.html">
- почтовый клиент Thunderbird</a>, или <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/xsoft/libreoffice.html">
- пакет офисных приложений LibreOffice</a>. Для этих приложений
- требуется множество (может быть несколько сотен, в
- зависимости от ваших потребностей) пакетов вспомогательных
- приложений и библиотек.
- </p>
- <p>
- В дополнение к вышесказанному, существует набор приложений
- для управления системой. Все эти приложения есть в
- справочнике BLFS, но не все пакеты необходимы в каждом
- конкретном окружении. Например <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/dhcpcd.html">
- клиент dhcpcd</a>, обычно не требуется на серверах или
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/wireless_tools.html">
- управление параметрами беспроводных сетей</a> - полезно
- только для ноутбуков и других портативных систем.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h3 class="sect2">
- 11.5.2. Работа в базовой среде LFS
- </h3>
- <p>
- Когда вы впервые загружаетесь в LFS, у вас есть все
- необходимые инструменты для сборки дополнительных пакетов. К
- сожалению, набор программ пользовательского окружения
- довольно скудный. Есть несколько способов исправить это:
- </p>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm17404" name="idm17404"></a>11.5.2.1. Работа
- с хоста LFS в chroot
- </h4>
- </div>
- </div>
- </div>
- <p>
- Этот метод обеспечивает полноценную графическую среду, в
- которой доступен полнофункциональный браузер и возможности
- копирования/вставки. Также он позволяет использовать
- приложения хоста, такие как wget, для загрузки исходных
- текстов пакетов в каталог, доступный при работе в среде
- chroot.
- </p>
- <p>
- Чтобы правильно собрать пакеты в chroot, вам необходимо не
- забыть смонтировать виртуальные файловые системы, если они
- еще не смонтированы. Один из способов сделать это — создать
- скрипт в <span class=
- "bold"><strong>ХОСТОВОЙ</strong></span> системе:
- </p>
- <pre class="screen"><span class=
- "command"><strong>cat &gt; ~/mount-virt.sh &lt;&lt; "EOF"
-#!/bin/bash
-
-function mountbind
-{
- if ! mountpoint $LFS/$1 &gt;/dev/null; then
- $SUDO mount --bind /$1 $LFS/$1
- echo $LFS/$1 mounted
- else
- echo $LFS/$1 already mounted
- fi
-}
-
-function mounttype
-{
- if ! mountpoint $LFS/$1 &gt;/dev/null; then
- $SUDO mount -t $2 $3 $4 $5 $LFS/$1
- echo $LFS/$1 mounted
- else
- echo $LFS/$1 already mounted
- fi
-}
-
-if [ $EUID -ne 0 ]; then
- SUDO=sudo
-else
- SUDO=""
-fi
-
-if [ x$LFS == x ]; then
- echo "LFS not set"
- exit 1
-fi
-
-mountbind dev
-mounttype dev/pts devpts devpts -o gid=5,mode=620
-mounttype proc proc proc
-mounttype sys sysfs sysfs
-mounttype run tmpfs run
-if [ -h $LFS/dev/shm ]; then
- install -v -d -m 1777 $LFS$(realpath /dev/shm)
-else
- mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
-fi
-
-#mountbind usr/src
-#mountbind boot
-#mountbind home
-EOF</strong></span></pre>
- <p>
- Обратите внимание, что последние три команды в скрипте
- закомментированы. Они пригодятся, если эти каталоги
- монтируются как отдельные разделы в хост-системе и будут
- монтироваться при загрузке завершенной системы LFS/BLFS.
- </p>
- <p>
- Скрипт можно запустить с помощью <span class=
- "command"><strong>bash ~/mount-virt.sh</strong></span> либо
- от имени обычного пользователя (рекомендуется), либо от
- имени <code class="systemitem">root</code>. При запуске от
- имени обычного пользователя в хост-системе требуется sudo.
- </p>
- <p>
- Еще одна проблема, на которую указывает скрипт, заключается
- в том, где хранить загруженные файлы пакетов. Это
- местоположение является произвольным. Оно может находиться
- в домашнем каталоге обычного пользователя, таком как
- ~/sources, или в глобальном каталоге /usr/src. Наша
- рекомендация - не смешивать источники BLFS и источники LFS
- в (из среды chroot) /sources. В любом случае, пакеты должны
- быть доступны внутри среды chroot.
- </p>
- <p>
- Последняя удобная функция, представленная здесь,
- предназначена для упрощения процесса входа в среду chroot.
- Это можно сделать с помощью псевдонима, помещенного в
- пользовательский файл ~/.bashrc в хост-системе:
- </p>
- <pre class="screen"><span class=
- "command"><strong>alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
-PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'</strong></span></pre>
- <p>
- Этот псевдоним немного сложен для восприятия из-за кавычек
- и слэшей. Всё это должно быть в одной строке. Вышеуказанная
- команда была разделена на две части для презентационных
- целей.
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm17420" name="idm17420"></a>11.5.2.2. Работа
- удаленно по ssh
- </h4>
- </div>
- </div>
- </div>
- <p>
- Этот метод также предоставляет полноценную графическую
- среду, но сначала требует установки <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/openssh.html">
- sshd</a> в системе LFS, обычно в chroot. Кроме этого
- потребуется второй компьютер. Преимущество этого метода в
- том, что он прост, поскольку не требует сложной среды
- chroot. Он также использует собранное вами ядро LFS для
- всех дополнительных пакетов и по-прежнему предоставляет
- полную систему для установки пакетов.
- </p>
- <p>
- Вы можете использовать команду <span class=
- "command"><strong>scp</strong></span> для загрузки исходных
- текстов пакетов, которые будут собраны в системе LFS. Если
- вместо этого вы хотите загрузить исходные тексты
- непосредственно в систему LFS, установите <a class="ulink"
- href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libtasn1.html">
- libtasn1</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/p11-kit.html">
- p11-kit</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/make-ca.html">
- make-ca</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/wget.html">
- wget</a> в chroot (или загрузите их исходники с помощью
- <span class="command"><strong>scp</strong></span> после
- загрузки системы LFS).
- </p>
- </div>
- <div class="sect3">
- <div class="titlepage">
- <div>
- <div>
- <h4 class="title">
- <a id="idm17431" name="idm17431"></a>11.5.2.3. Работа
- из командной строки LFS
- </h4>
- </div>
- </div>
- </div>
- <p>
- Этот метод требует установки <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libtasn1.html">
- libtasn1</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/p11-kit.html">
- p11-kit</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/make-ca.html">
- make-ca</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/wget.html">
- wget</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/gpm.html">
- gpm</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/links.html">
- links</a> (или <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/lynx.html">
- lynx</a>) в chroot, а затем перезагрузки в новую систему
- LFS. На данный момент система по умолчанию имеет шесть
- виртуальных консолей. Переключать консоли так же просто,
- как использовать комбинации клавиш <span class=
- "keycap"><strong>Alt</strong></span>+<span class=
- "keycap"><strong>Fx</strong></span> , где <span class=
- "keycap"><strong>Fx</strong></span> это клавиши от
- <span class="keycap"><strong>F1</strong></span> до
- <span class="keycap"><strong>F6</strong></span>. Комбинации
- <span class=
- "keycap"><strong>Alt</strong></span>+<span class=
- "keycap"><strong>→</strong></span> и <span class=
- "keycap"><strong>Alt</strong></span>+<span class=
- "keycap"><strong>←</strong></span> также переключают
- консоль.
- </p>
- <p>
- На этом этапе вы можете войти в две разные виртуальные
- консоли и запустить браузер links или lynx в одной консоли
- и bash в другой. GPM позволяет копировать команды из
- браузера с помощью левой кнопки мыши, переключать консоли и
- вставлять их в другую консоль.
- </p>
- <div class="admon note">
- <h3>
- Примечание
- </h3>
- <p>
- Вместо примечания: переключение виртуальных консолей
- также может быть выполнено из экземпляра X Window с
- помощью комбинации клавиш <span class=
- "keycap"><strong>Ctrl</strong></span>+<span class=
- "keycap"><strong>Alt</strong></span>+<span class=
- "keycap"><strong>Fx</strong></span> ,но операция
- копирования мышью не работает между графическим
- интерфейсом и виртуальной консолью. Вы можете вернуться к
- дисплею X Window с помощью комбинации <span class=
- "keycap"><strong>Ctrl</strong></span>+<span class=
- "keycap"><strong>Alt</strong></span>+<span class=
- "keycap"><strong>Fx</strong></span> ,где <span class=
- "keycap"><strong>Fx</strong></span> обычно <span class=
- "keycap"><strong>F1</strong></span>, но может быть
- <span class="keycap"><strong>F7</strong></span>.
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="part5" name="part5"></a>Часть&nbsp;V.&nbsp;Приложения
- </h1>
- </div>
- </div>
- </div>
- <div class="part">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="appendixa" name="appendixa"></a>Приложение A.
- Сокращения и условные обозначения
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <div class="variablelist">
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ABI</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Application Binary Interface - Двоичный (бинарный)
- интерфейс приложений
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ALFS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Automated Linux From Scratch - Проект автоматической
- сборки системы LFS
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>API</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Application Programming Interface - Программный
- интерфейс приложения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ASCII</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- American Standard Code for Information Interchange —
- Американский стандартный код для обмена информацией
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>BIOS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Basic Input/Output System - Базовая система
- ввода/вывода
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>BLFS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Beyond Linux From Scratch - Проект, расширяющий
- возможности Linux From Scratch
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>BSD</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Berkeley Software Distribution - Система
- распространения программного обеспечения в исходных
- кодах
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>chroot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- change root - Команда изменения корневого каталога
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>CMOS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Complementary Metal Oxide Semiconductor -
- Комплементарная структура металл-оксид-полупроводник
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>COS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Class Of Service - Класс обслуживания
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>CPU</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Central Processing Unit - Центральный процессор,
- процессор
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>CRC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Cyclic Redundancy Check - Циклический избыточный код
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>CVS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Concurrent Versions System - Централизованная система
- управления версиями
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>DHCP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Dynamic Host Configuration Protocol - Протокол
- динамической настройки узла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>DNS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Domain Name Service - Служба доменных имён
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>EGA</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Enhanced Graphics Adapter - Усовершенствованный
- графический адаптер
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ELF</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Executable and Linkable Format - Формат исполняемых и
- компонуемых файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>EOF</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- End of File - Конец файла, символ конца файла
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>EQN</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- equation - уравнение
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ext2</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- second extended file system - вторая расширенная
- файловая система
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ext3</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- third extended file system - третья расширенная
- файловая система
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ext4</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- fourth extended file system - четвёртая расширенная
- файловая система
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>FAQ</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Frequently Asked Questions - Часто задаваемые вопросы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>FHS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Filesystem Hierarchy Standard - Стандарт иерархии
- файловой системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>FIFO</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- First-In, First Out - Схема обслуживания очереди
- "первый пришел — первым ушёл"
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>FQDN</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Fully Qualified Domain Name - Полное доменное имя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>FTP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- File Transfer Protocol - Протокол передачи файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>GB</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Gigabytes - Гигабайты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>GCC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- GNU Compiler Collection - Коллекция компиляторов GNU
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>GID</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Group Identifier - Идентификатор группы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>GMT</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Greenwich Mean Time - Среднее время по Гринвичу
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>HTML</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Hypertext Markup Language - Язык гипертекстовой
- разметки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IDE</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Integrated Drive Electronics - Интерфейс подключения
- дисковых устройств
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IEEE</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Institute of Electrical and Electronic Engineers -
- Институт инженеров электротехники и электроники
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IO</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Input/Output - Ввод/вывод
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Internet Protocol - Межсетевой протокол
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IPC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Inter-Process Communication - Обмен данными между
- потоками одного или разных процессов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>IRC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Internet Relay Chat - Ретранслируемый интернет-чат
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ISO</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- International Organization for Standardization -
- Международная организация по стандартизации
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>ISP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Internet Service Provider - Провайдер интернет услуг
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>KB</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Kilobytes - Килобайты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>LED</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Light Emitting Diode - Светодиод
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>LFS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Linux From Scratch - Линукс с нуля
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>LSB</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Linux Standard Base - Совместный проект семейства
- операционных систем, основанных на Linux (то есть
- дистрибутивов Linux), при организации Linux Foundation,
- целью которого является стандартизация их внутренней
- структуры. LSB опирается на существующие спецификации,
- такие как POSIX, Single UNIX Specification, и другие
- открытые стандарты, при этом расширяя и дополняя их.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>MB</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Megabytes - Мегабайты
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>MBR</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Master Boot Record - Главная загрузочная запись
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>MD5</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Message Digest 5 - 128-битный алгоритм хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>NIC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Network Interface Card - Сетевой адаптер
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>NLS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Native Language Support - Поддержка естественного языка
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>NNTP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Network News Transport Protocol - Сетевой транспортный
- протокол новостных групп
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>NPTL</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Native POSIX Threading Library - Библиотека потоков
- POSIX
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>OSS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Open Sound System - Унифицированный драйвер для
- звуковых карт и других звуковых устройств
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>PCH</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Pre-Compiled Headers - Предварительно скомпилированные
- заголовки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>PCRE</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Perl Compatible Regular Expression - Регулярные
- выражения, совместимые с Perl
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>PID</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Process Identifier - Идентификатор процесса
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>PTY</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- pseudo terminal - Псевдотерминал
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>QOS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Quality Of Service - Качество обслуживания
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>RAM</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Random Access Memory - Оперативная память
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>RPC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Remote Procedure Call - Удаленный вызов процедур
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>RTC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Real Time Clock - Часы реального времени
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>SBU</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Standard Build Unit - Стандартная единица (времени)
- сборки
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>SCO</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- The Santa Cruz Operation - Компания-разработчик
- программного обеспечения
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>SHA1</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Secure-Hash Algorithm 1 - Алгоритм криптографического
- хеширования
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>TLDP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- The Linux Documentation Project - Проект документации
- Linux
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>TFTP</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Trivial File Transfer Protocol - Простейший протокол
- передачи файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>TLS</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Thread-Local Storage - Локальное хранилище потока
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>UID</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- User Identifier - Идентификатор пользователя
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>umask</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- user file-creation mask - Команда, определяющая маску
- создания пользовательских файлов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>USB</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Universal Serial Bus - Универсальная последовательная
- шина
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>UTC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Coordinated Universal Time - Всемирное координированное
- время
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>UUID</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Universally Unique Identifier - Универсальный
- уникальный идентификатор
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>VC</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Virtual Console - Виртуальная консоль
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>VGA</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Video Graphics Array - Компонентный видеоинтерфейс
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <span class="term"><span class=
- "bold"><strong>VT</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Virtual Terminal - Виртуальный терминал
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="appendixb" name="appendixb"></a>Приложение B.
- Благодарности
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <p>
- Мы хотели бы поблагодарить следующих людей и организации за их
- вклад в проект Linux From Scratch.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#103;&#101;&#114;&#97;&#114;&#100;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Gerard Beekmans</a>
- &lt;gerard AT linuxfromscratch D0T org&gt; – Основатель проекта
- LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#98;&#100;&#117;&#98;&#98;&#115;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Bruce Dubbs</a>
- &lt;bdubbs AT linuxfromscratch D0T org&gt; – Главный редактор LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#106;&#105;&#109;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Jim
- Gifford</a> &lt;jim AT linuxfromscratch D0T org&gt; – Второй
- руководитель проекта CLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#112;&#105;&#101;&#114;&#114;&#101;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Pierre Labastie</a>
- &lt;pierre AT linuxfromscratch D0T org&gt; – Редактор BLFS и
- руководитель ALFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#100;&#106;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">DJ
- Lucas</a> &lt;dj AT linuxfromscratch D0T org&gt; – Редактор
- проектов LFS и BLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#107;&#101;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Ken
- Moffat</a> &lt;ken AT linuxfromscratch D0T org&gt; – Редактор BLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Бесчисленное множество других людей из различных списков
- рассылки проектов LFS и BLFS, которые помогали в создании
- этой книги, присылая свои предложения, проверяя книгу и
- отправляя отчеты об ошибках, инструкции и собственный опыт
- установки различных пакетов.
- </p>
- </li>
- </ul>
- </div>
- <h3>
- <a id="idm17866" name="idm17866"></a>Переводчики
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#109;&#97;&#99;&#97;&#110;&#97;&#64;&#109;&#97;&#99;&#97;&#110;&#97;&#45;&#101;&#115;&#46;&#99;&#111;&#109;">Manuel
- Canales Esparcia</a> &lt;macana AT macana-es D0T com&gt; – Перевод
- проекта LFS на испанский язык
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#111;&#104;&#97;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Johan Lenglet</a>
- &lt;johan AT linuxfromscratch D0T org&gt; – Перевод проекта LFS на
- французский язык до 2008 г.
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#109;&#101;&#110;&#103;&#117;&#97;&#108;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Jean-Philippe
- Mengual</a> &lt;jmengual AT linuxfromscratch D0T org&gt; – Перевод
- проекта LFS на французский язык 2008-2016 гг
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#108;&#101;&#112;&#105;&#108;&#108;&#101;&#114;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Julien Lepiller</a>
- &lt;jlepiller AT linuxfromscratch D0T org&gt; – Перевод проекта
- LFS на французский язык с 2017-по настоящее время
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#108;&#105;&#122;&#97;&#114;&#100;&#111;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Anderson Lizardo</a>
- &lt;lizardo AT linuxfromscratch D0T org&gt; – Перевод проекта LFS
- на португальский язык до 2022 г.
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#106;&#97;&#102;&#101;&#115;&#112;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Jamenson
- Espindula</a> &lt;jafesp AT gmail D0T com&gt; – Перевод проекта
- LFS на португальский язык 2022-по настоящее время
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#116;&#114;&#64;&#101;&#114;&#100;&#102;&#117;&#110;&#107;&#115;&#116;&#101;&#108;&#108;&#101;&#46;&#100;&#101;">Thomas
- Reitelbach</a> &lt;tr AT erdfunkstelle D0T de&gt; – Перевод
- проекта LFS на немецкий язык
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#105;&#110;&#102;&#111;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;&#46;&#114;&#117;">Anton Maisak</a>
- &lt;info AT linuxfromscratch D0T ru&gt; – Перевод проекта LFS на
- русский язык 2018-2020 гг
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#104;&#101;&#108;&#101;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;&#46;&#114;&#117;">Elena Shevcova</a>
- &lt;info AT linuxfromscratch D0T ru&gt; – Перевод проекта LFS на
- русский язык 2018-2020 гг
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#105;&#110;&#102;&#111;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#114;&#117;">Vladimir Pertsev</a>
- &lt;info AT linuxfromscratch D0T ru&gt; – Перевод проекта LFS на
- русский язык 2022-по настоящее время
- </p>
- </li>
- </ul>
- </div>
- <h3>
- <a id="idm17898" name="idm17898"></a>Зеркала проекта
- </h3>
- <h4>
- <a id="idm17899" name="idm17899"></a>Североамериканские зеркала
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#115;&#99;&#111;&#116;&#116;&#64;&#111;&#115;&#117;&#111;&#115;&#108;&#46;&#111;&#114;&#103;">Scott
- Kveton</a> &lt;scott AT osuosl D0T org&gt; – зеркало
- lfs.oregonstate.edu
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#108;&#111;&#115;&#116;&#64;&#108;&#45;&#119;&#46;&#110;&#101;&#116;">William
- Astle</a> &lt;lost AT l-w D0T net&gt; – зеркало
- ca.linuxfromscratch.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#101;&#117;&#106;&#111;&#110;&#46;&#115;&#101;&#108;&#108;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Eujon Sellers</a>
- &lt;jpolen@rackspace.com&gt; – зеркало lfs.introspeed.com
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#106;&#117;&#115;&#116;&#105;&#110;&#64;&#107;&#110;&#105;&#101;&#114;&#105;&#109;&#46;&#111;&#114;&#103;">Justin
- Knierim</a> &lt;tim@idge.net&gt; – зеркало lfs-matrix.net
- </p>
- </li>
- </ul>
- </div>
- <h4>
- <a id="idm17913" name="idm17913"></a>Южноамериканские зеркала
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#109;&#97;&#110;&#117;&#101;&#108;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Manuel Canales
- Esparcia</a> &lt;manuel AT linuxfromscratch D0T org&gt; – зеркало
- lfsmirror.lfs-es.info
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#108;&#102;&#97;&#108;&#99;&#111;&#110;&#64;&#116;&#104;&#121;&#109;&#98;&#114;&#97;&#46;&#99;&#111;&#109;">Luis
- Falcon</a> &lt;Luis Falcon&gt; – зеркало torredehanoi.org
- </p>
- </li>
- </ul>
- </div>
- <h4>
- <a id="idm17921" name="idm17921"></a>Европейские зеркала
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#103;&#117;&#105;&#100;&#111;&#64;&#112;&#114;&#105;&#109;&#101;&#114;&#101;&#108;&#97;&#121;&#46;&#110;&#101;&#116;">Guido
- Passet</a> &lt;guido AT primerelay D0T net&gt; – зеркало
- nl.linuxfromscratch.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#98;&#97;&#97;&#102;&#105;&#101;&#64;&#112;&#108;&#97;&#110;&#101;&#116;&#46;&#110;&#108;">Bastiaan
- Jacques</a> &lt;baafie AT planet D0T nl&gt; – зеркало
- lfs.pagefault.net
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#115;&#118;&#101;&#110;&#46;&#99;&#114;&#97;&#110;&#115;&#104;&#111;&#102;&#102;&#64;&#108;&#105;&#110;&#101;&#111;&#46;&#98;&#101;">Sven
- Cranshoff</a> &lt;sven D0T cranshoff AT lineo D0T be&gt; – зеркало
- lfs.lineo.be
- </p>
- </li>
- <li class="listitem">
- <p>
- Scarlet Belgium – зеркало lfs.scarlet.be
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#105;&#110;&#102;&#111;&#64;&#97;&#108;&#105;&#101;&#110;&#115;&#111;&#102;&#116;&#46;&#111;&#114;&#103;">Sebastian
- Faulborn</a> &lt;info AT aliensoft D0T org&gt; – зеркало
- lfs.aliensoft.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#115;&#116;&#117;&#97;&#114;&#116;&#64;&#100;&#111;&#110;&#116;&#117;&#115;&#101;&#46;&#109;&#115;">Stuart
- Fox</a> &lt;stuart AT dontuse D0T ms&gt; – зеркало lfs.dontuse.ms
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#97;&#100;&#109;&#105;&#110;&#64;&#114;&#101;&#97;&#108;&#104;&#111;&#115;&#116;&#46;&#100;&#101;">Ralf
- Uhlemann</a> &lt;admin AT realhost D0T de&gt; – зеркало
- lfs.oss-mirror.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#65;&#110;&#116;&#111;&#110;&#105;&#110;&#46;&#83;&#112;&#114;&#105;&#110;&#122;&#108;&#64;&#116;&#117;&#119;&#105;&#101;&#110;&#46;&#97;&#99;&#46;&#97;&#116;">Antonin Sprinzl</a>
- &lt;Antonin D0T Sprinzl AT tuwien D0T ac D0T at&gt; – зеркало
- at.linuxfromscratch.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#102;&#114;&#101;&#100;&#97;&#110;&#45;&#108;&#102;&#115;&#64;&#102;&#114;&#101;&#100;&#97;&#110;&#46;&#111;&#114;&#103;">Fredrik Danerklint</a>
- &lt;fredan-lfs AT fredan D0T org&gt; – зеркало
- se.linuxfromscratch.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#102;&#114;&#97;&#110;&#99;&#107;&#64;&#108;&#105;&#110;&#117;&#120;&#112;&#111;&#117;&#114;&#116;&#111;&#117;&#115;&#46;&#99;&#111;&#109;">Franck</a>
- &lt;franck AT linuxpourtous D0T com&gt; – зеркало
- lfs.linuxpourtous.com
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#98;&#97;&#113;&#117;&#101;&#64;&#99;&#105;&#99;&#116;&#46;&#102;&#114;">Philippe
- Baque</a> &lt;baque AT cict D0T fr&gt; – зеркало lfs.cict.fr
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#107;&#111;&#110;&#116;&#97;&#107;&#116;&#64;&#119;&#97;&#110;&#107;&#111;&#111;&#46;&#111;&#114;&#103;">Benjamin
- Heil</a> &lt;kontakt AT wankoo D0T org&gt; – зеркало
- lfs.wankoo.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#105;&#110;&#102;&#111;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#114;&#117;">Vladimir Pertsev</a>
- &lt;info AT linuxfromscratch D0T ru&gt; – зеркало
- mirror.linuxfromscratch.ru
- </p>
- </li>
- </ul>
- </div>
- <h4>
- <a id="idm17961" name="idm17961"></a>Азиатские зеркала
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#115;&#97;&#116;&#105;&#116;&#64;&#119;&#98;&#97;&#99;&#46;&#97;&#99;&#46;&#116;&#104;">Satit
- Phermsawang</a> &lt;satit AT wbac D0T ac D0T th&gt; – зеркало
- lfs.phayoune.org
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#105;&#110;&#102;&#111;&#64;&#115;&#104;&#105;&#122;&#117;&#45;&#110;&#101;&#116;&#46;&#106;&#112;">Shizunet
- Co.,Ltd.</a> &lt;info AT shizu-net D0T jp&gt; – зеркало
- lfs.mirror.shizu-net.jp
- </p>
- </li>
- </ul>
- </div>
- <h4>
- <a id="idm17969" name="idm17969"></a>Австралийские зеркала
- </h4>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#106;&#97;&#115;&#111;&#110;&#64;&#100;&#115;&#116;&#99;&#46;&#101;&#100;&#117;&#46;&#97;&#117;">Jason
- Andrade</a> &lt;jason AT dstc D0T edu D0T au&gt; – зеркало
- au.linuxfromscratch.org
- </p>
- </li>
- </ul>
- </div>
- <h3>
- <a id="idm17974" name="idm17974"></a>Бывшие участники проекта
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#116;&#104;&#101;&#108;&#97;&#100;&#121;&#115;&#107;&#121;&#101;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Christine
- Barczak</a> &lt;theladyskye AT linuxfromscratch D0T org&gt; –
- Редактор книги LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Archaic &lt;archaic@linuxfromscratch.org&gt; – Технический
- писатель/редактор LFS, руководитель проекта HLFS, редактор
- BLFS, Сопровождающий проекта Советы и патчи
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Matthew Burgess</a>
- &lt;matthew AT linuxfromscratch D0T org&gt; – Руководитель проекта
- LFS, технический писатель/редактор LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#110;&#97;&#116;&#104;&#97;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Nathan Coulson</a>
- &lt;nathan AT linuxfromscratch D0T org&gt; – Сопровождающий
- LFS-Bootscripts
- </p>
- </li>
- <li class="listitem">
- <p>
- Timothy Bauscher
- </p>
- </li>
- <li class="listitem">
- <p>
- Robert Briggs
- </p>
- </li>
- <li class="listitem">
- <p>
- Ian Chilton
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#101;&#114;&#111;&#101;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Jeroen Coumans</a>
- &lt;jeroen AT linuxfromscratch D0T org&gt; – Разработчик
- веб-сайта, сопровождающий FAQ
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#109;&#97;&#110;&#117;&#101;&#108;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Manuel Canales
- Esparcia</a> &lt;manuel AT linuxfromscratch D0T org&gt; –
- Сопровождающий XML и XSL проектов LFS/BLFS/HLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Alex Groenewoud – Технический писатель LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Marc Heerdink
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#104;&#117;&#110;&#116;&#119;&#111;&#114;&#107;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Jeremy Huntwork</a>
- &lt;jhuntwork AT linuxfromscratch D0T org&gt; – Технический
- писатель LFS, сопровождающий LFS LiveCD
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#98;&#114;&#121;&#97;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Bryan Kadzban</a>
- &lt;bryan AT linuxfromscratch D0T org&gt; – Технический писатель
- LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- Mark Hymers
- </p>
- </li>
- <li class="listitem">
- <p>
- Seth W. Klein – Сопровождающий FAQ
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#110;&#105;&#99;&#104;&#111;&#108;&#97;&#115;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Nicholas Leippe</a>
- &lt;nicholas AT linuxfromscratch D0T org&gt; – Сопровождающий Wiki
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#108;&#105;&#122;&#97;&#114;&#100;&#111;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Anderson Lizardo</a>
- &lt;lizardo AT linuxfromscratch D0T org&gt; – Сопровождающий
- движка сайта
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#114;&#97;&#110;&#100;&#121;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Randy McMurchy</a>
- &lt;randy AT linuxfromscratch D0T org&gt; – Руководитель проекта
- BLFS, редактор LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#100;&#110;&#105;&#99;&#104;&#111;&#108;&#115;&#111;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Dan Nicholson</a>
- &lt;dnicholson AT linuxfromscratch D0T org&gt; – Редактор LFS и
- BLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#97;&#108;&#101;&#120;&#97;&#110;&#100;&#101;&#114;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Alexander E.
- Patrakov</a> &lt;alexander AT linuxfromscratch D0T org&gt; –
- Технический писатель LFS, редактор интернационализации LFS,
- сопровождающий LFS Live CD
- </p>
- </li>
- <li class="listitem">
- <p>
- Simon Perreault
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#115;&#99;&#111;&#116;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Scot Mc Pherson</a>
- &lt;scot AT linuxfromscratch D0T org&gt; – Сопровождающий шлюза
- NNTP для проекта LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#114;&#101;&#110;&#111;&#100;&#114;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Douglas R. Reno</a>
- &lt;renodr AT linuxfromscratch D0T org&gt; – Редактор Systemd
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#114;&#121;&#97;&#110;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Ryan Oliver</a>
- &lt;ryan AT linuxfromscratch D0T org&gt; – Один из руководителей
- проекта CLFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#103;&#115;&#99;&#104;&#97;&#102;&#101;&#114;&#64;&#122;&#105;&#112;&#46;&#99;&#111;&#109;&#46;&#97;&#117;">Greg
- Schafer</a> &lt;gschafer AT zip D0T com D0T au&gt; – Технический
- писатель проекта LFS и архитектор методов сборки пакетов
- следующего поколения, предназначенных для 64-битной
- архитектуры
- </p>
- </li>
- <li class="listitem">
- <p>
- Jesse Tie-Ten-Quee – Технический писатель LFS
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#119;&#114;&#111;&#98;&#101;&#114;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">James Robertson</a>
- &lt;jwrober AT linuxfromscratch D0T org&gt; – Сопровождающий
- Bugzilla
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#116;&#117;&#115;&#104;&#97;&#114;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Tushar Teredesai</a>
- &lt;tushar AT linuxfromscratch D0T org&gt; – Редактор книги BLFS,
- руководитель проекта Советы и Патчи
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href=
- "mailto:&#106;&#101;&#114;&#101;&#109;&#121;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#114;&#111;&#109;&#115;&#99;&#114;&#97;&#116;&#99;&#104;&#46;&#111;&#114;&#103;">Jeremy Utley</a>
- &lt;jeremy AT linuxfromscratch D0T org&gt; – Технический писатель
- проекта LFS, сопровождающий Bugzilla, сопровождающий
- LFS-Bootscripts
- </p>
- </li>
- <li class="listitem">
- <p>
- <a class="ulink" href="mailto:&#122;&#119;&#105;&#110;&#107;&#108;&#101;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">Zack
- Winkles</a> &lt;zwinkles AT gmail D0T com&gt; – Технический
- писатель проекта LFS
- </p>
- </li>
- </ul>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="appendixc" name="appendixc"></a>Приложение C.
- Зависимости
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <p>
- Каждый пакет в системе LFS для правильной сборки и установки
- может ссылаться на один или несколько других пакетов. Некоторые
- пакеты могут иметь циклические зависимости, то есть первый пакет
- зависит от второго, который в свою очередь, зависит от первого.
- Именно по этой причине, указанный порядок сборки пакетов в LFS
- очень важен. Цель этой страницы - документировать зависимости
- каждого пакета, собранного в LFS
- </p>
- <p>
- Для каждого собираемого пакета существует от трёх до пяти типов
- зависимостей, перечисленных ниже. В первом списке перечислены
- другие пакеты, которые должны быть доступны для компиляции и
- установки рассматриваемого пакета. Во втором перечислены пакеты,
- которые должны быть доступны, когда какие-либо программы или
- библиотеки из пакета используются во время его выполнения. В
- третьем списке перечислены пакеты, которые, в дополнение к
- пакетам из первого списка, должны быть доступны для запуска
- наборов тестов. Четвертый список зависимостей — это пакеты,
- которые требуют, чтобы некий пакет был собран и установлен по
- определенному пути, прежде чем они будут собраны и установлены.
- </p>
- <p>
- Последний список зависимостей - это необязательные пакеты,
- которые не рассматриваются в LFS, но могут быть полезны
- пользователю. Эти пакеты могут иметь дополнительные как
- обязательные, так и необязательные зависимости. Такие зависимости
- - рекомендуется разрешать после завершения сборки всей системы
- LFS. В некоторых случаях, повторная установка некоторых таких
- пакетов рассматривается в BLFS.
- </p>
- <h3>
- <a id="acl-dep" name="acl-dep"></a>Acl
- </h3>
- <div class="segmentedlist">
- <a id="acl-depends" name="acl-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Attr, Bash, Binutils, Coreutils, GCC,
- Gettext, Grep, M4, Make, Perl, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="acl-rundeps" name="acl-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Attr и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="acl-testdeps" name="acl-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Automake, Diffutils, Findutils и
- Libtool</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="acl-before" name="acl-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Coreutils, Sed, Tar и Vim</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="acl-optdeps" name="acl-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="attr-dep" name="attr-dep"></a>Attr
- </h3>
- <div class="segmentedlist">
- <a id="attr-depends" name="attr-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, M4, Make, Perl, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="attr-rundeps" name="attr-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="attr-testdeps" name="attr-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Automake, Diffutils, Findutils и
- Libtool</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="attr-before" name="attr-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Acl, Libcap и Patch</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="attr-optdeps" name="attr-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="autoconf-dep" name="autoconf-dep"></a>Autoconf
- </h3>
- <div class="segmentedlist">
- <a id="autoconf-depends" name="autoconf-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Coreutils, Grep, M4, Make, Perl,
- Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="autoconf-rundeps" name="autoconf-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Coreutils,
- Grep, M4, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="autoconf-testdeps" name="autoconf-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Automake, Diffutils, Findutils, GCC и
- Libtool</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="autoconf-before" name="autoconf-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Automake и Coreutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="autoconf-optdeps" name="autoconf-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/emacs.html">
- Emacs</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="automake-dep" name="automake-dep"></a>Automake
- </h3>
- <div class="segmentedlist">
- <a id="automake-depends" name="automake-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Autoconf, Bash, Coreutils, Gettext,
- Grep, M4, Make, Perl, Sed, и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="automake-rundeps" name="automake-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Coreutils,
- Grep, M4, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="automake-testdeps" name="automake-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Binutils, Bison, Bzip2, DejaGNU,
- Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip,
- Libtool и Tar</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="automake-before" name="automake-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Coreutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="automake-optdeps" name="automake-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="bash-dep" name="bash-dep"></a>Bash
- </h3>
- <div class="segmentedlist">
- <a id="bash-depends" name="bash-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Coreutils,
- Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch,
- Readline, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bash-rundeps" name="bash-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Ncurses и
- Readline</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bash-testdeps" name="bash-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Expect и Shadow</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bash-before" name="bash-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bash-optdeps" name="bash-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/x/installing.html">
- Xorg</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="bc-dep" name="bc-dep"></a>Bc
- </h3>
- <div class="segmentedlist">
- <a id="bc-depends" name="bc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Grep, Make и Readline</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bc-rundeps" name="bc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Ncurses и
- Readline</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bc-testdeps" name="bc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bc-before" name="bc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bc-optdeps" name="bc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="binutils-dep" name="binutils-dep"></a>Binutils
- </h3>
- <div class="segmentedlist">
- <a id="binutils-depends" name="binutils-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- File, Flex, Gawk, GCC, Glibc, Grep, Make, Perl, Pkgconf, Sed,
- Texinfo, Zlib и Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="binutils-rundeps" name="binutils-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Zlib и
- Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="binutils-testdeps" name="binutils-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">DejaGNU и Expect</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="binutils-before" name="binutils-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="binutils-optdeps" name="binutils-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://sourceware.org/elfutils/">Elfutils</a> и <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/jansson.html">
- Jansson</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="bison-dep" name="bison-dep"></a>Bison
- </h3>
- <div class="segmentedlist">
- <a id="bison-depends" name="bison-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, M4, Make, Perl и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bison-rundeps" name="bison-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bison-testdeps" name="bison-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils, Findutils и Flex</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bison-before" name="bison-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Kbd и Tar</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bison-optdeps" name="bison-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/doxygen.html">
- Doxygen</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="bzip2-dep" name="bzip2-dep"></a>Bzip2
- </h3>
- <div class="segmentedlist">
- <a id="bzip2-depends" name="bzip2-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Glibc, Make и Patch</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bzip2-rundeps" name="bzip2-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bzip2-testdeps" name="bzip2-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bzip2-before" name="bzip2-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">File и Libelf</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="bzip2-optdeps" name="bzip2-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="check-dep" name="check-dep"></a>Check
- </h3>
- <div class="segmentedlist">
- <a id="check-depends" name="check-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Gawk, GCC, Grep, Make, Sed и
- Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="check-rundeps" name="check-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash и Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="check-testdeps" name="check-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="check-before" name="check-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="check-optdeps" name="check-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://github.com/testing-cabal/subunit">libsubunit</a> и
- <a class="ulink" href=
- "http://cyberelk.net/tim/software/patchutils/">patchutils</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="coreutils-dep" name="coreutils-dep"></a>Coreutils
- </h3>
- <div class="segmentedlist">
- <a id="coreutils-depends" name="coreutils-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Autoconf, Automake, Bash, Binutils,
- Coreutils, GCC, Gettext, Glibc, GMP, Grep, Libcap, Make,
- OpenSSL, Patch, Perl, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="coreutils-rundeps" name="coreutils-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="coreutils-testdeps" name="coreutils-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils, E2fsprogs, Findutils, Shadow
- и Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="coreutils-before" name="coreutils-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Bash, Diffutils, Findutils, Man-DB и
- <span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="coreutils-optdeps" name="coreutils-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://metacpan.org/pod/Expect">Expect.pm</a> и <a class=
- "ulink" href=
- "https://metacpan.org/pod/IO::Tty">IO::Tty</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="dejagnu-dep" name="dejagnu-dep"></a>DejaGNU
- </h3>
- <div class="segmentedlist">
- <a id="dejagnu-depends" name="dejagnu-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Coreutils, Diffutils, Expect,
- GCC, Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="dejagnu-rundeps" name="dejagnu-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Expect и
- Bash</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="dejagnu-testdeps" name="dejagnu-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="dejagnu-before" name="dejagnu-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="dejagnu-optdeps" name="dejagnu-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="diffutils-dep" name="diffutils-dep"></a>Diffutils
- </h3>
- <div class="segmentedlist">
- <a id="diffutils-depends" name="diffutils-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- Gettext, Glibc, Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="diffutils-rundeps" name="diffutils-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="diffutils-testdeps" name="diffutils-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="diffutils-before" name="diffutils-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="diffutils-optdeps" name="diffutils-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="e2fsprogs-dep" name="e2fsprogs-dep"></a>E2fsprogs
- </h3>
- <div class="segmentedlist">
- <a id="e2fsprogs-depends" name="e2fsprogs-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, Gzip, Make, Pkgconf, Sed, Texinfo и
- Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="e2fsprogs-rundeps" name="e2fsprogs-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="e2fsprogs-testdeps" name="e2fsprogs-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Procps-ng и Psmisc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="e2fsprogs-before" name="e2fsprogs-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="e2fsprogs-optdeps" name="e2fsprogs-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="expat-dep" name="expat-dep"></a>Expat
- </h3>
- <div class="segmentedlist">
- <a id="expat-depends" name="expat-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- Glibc, Grep, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expat-rundeps" name="expat-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expat-testdeps" name="expat-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expat-before" name="expat-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Python и XML::Parser</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expat-optdeps" name="expat-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="expect-dep" name="expect-dep"></a>Expect
- </h3>
- <div class="segmentedlist">
- <a id="expect-depends" name="expect-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Glibc, Grep, Make, Patch, Sed и Tcl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expect-rundeps" name="expect-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и Tcl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expect-testdeps" name="expect-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expect-before" name="expect-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="expect-optdeps" name="expect-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/tk.html">
- Tk</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="file-dep" name="file-dep"></a>File
- </h3>
- <div class="segmentedlist">
- <a id="file-depends" name="file-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bzip2, Coreutils,
- Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed, Xz и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="file-rundeps" name="file-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Bzip2, Xz и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="file-testdeps" name="file-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="file-before" name="file-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="file-optdeps" name="file-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libseccomp.html">
- libseccomp</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="findutils-dep" name="findutils-dep"></a>Findutils
- </h3>
- <div class="segmentedlist">
- <a id="findutils-depends" name="findutils-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, Make, Sed, и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="findutils-rundeps" name="findutils-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="findutils-testdeps" name="findutils-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">DejaGNU, Diffutils и Expect</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="findutils-before" name="findutils-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="findutils-optdeps" name="findutils-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="flex-dep" name="flex-dep"></a>Flex
- </h3>
- <div class="segmentedlist">
- <a id="flex-depends" name="flex-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, M4, Make, Patch, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flex-rundeps" name="flex-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Glibc и
- M4</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flex-testdeps" name="flex-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Bison и Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flex-before" name="flex-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Binutils, IProute2, Kbd, Kmod и
- Man-DB</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flex-optdeps" name="flex-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="flit-core-dep" name="flit-core-dep"></a>Flit-Core
- </h3>
- <div class="segmentedlist">
- <a id="flit-core-depends" name="flit-core-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flit-core-rundeps" name="flit-core-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flit-core-testdeps" name="flit-core-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flit-core-before" name="flit-core-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Wheel</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="flit-core-optdeps" name="flit-core-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/python-modules.html#pytest">
- pytest</a> и <a class="ulink" href=
- "https://pypi.org/project/testpath">testpath</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gawk-dep" name="gawk-dep"></a>Gawk
- </h3>
- <div class="segmentedlist">
- <a id="gawk-depends" name="gawk-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, GMP, Grep, Make, MPFR, Patch, Readline, Sed и
- Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gawk-rundeps" name="gawk-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Glibc и
- Mpfr</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gawk-testdeps" name="gawk-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gawk-before" name="gawk-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gawk-optdeps" name="gawk-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libsigsegv.html">
- libsigsegv</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gcc-dep" name="gcc-dep"></a>GCC
- </h3>
- <div class="segmentedlist">
- <a id="gcc-depends" name="gcc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, Libxcrypt,
- M4, Make, MPC, MPFR, Patch, Perl, Sed, Tar, Texinfo и
- Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gcc-rundeps" name="gcc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Binutils,
- Glibc, Mpc и Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gcc-testdeps" name="gcc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">DejaGNU, Expect и Shadow</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gcc-before" name="gcc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gcc-optdeps" name="gcc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://www.gdcproject.org/">GDC</a>, <a class="ulink" href=
- "https://gcc.gnu.org/wiki/GNAT">GNAT</a>, и <a class="ulink"
- href="https://repo.or.cz/isl.git">ISL</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gdbm" name="gdbm"></a>GDBM
- </h3>
- <div class="segmentedlist">
- <a id="gdbm-depends" name="gdbm-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Grep, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gdbm-rundeps" name="gdbm-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Glibc и
- Readline</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gdbm-testdeps" name="gdbm-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gdbm-before" name="gdbm-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gdbm-optdeps" name="gdbm-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gettext-dep" name="gettext-dep"></a>Gettext
- </h3>
- <div class="segmentedlist">
- <a id="gettext-depends" name="gettext-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- Glibc, Grep, Make, Ncurses, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gettext-rundeps" name="gettext-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Acl, Bash, Gcc и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gettext-testdeps" name="gettext-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils, Perl и Tcl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gettext-before" name="gettext-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Automake и Bison</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gettext-optdeps" name="gettext-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libunistring.html">
- libunistring</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libxml2.html">
- libxml2</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="glibc-dep" name="glibc-dep"></a>Glibc
- </h3>
- <div class="segmentedlist">
- <a id="glibc-depends" name="glibc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Coreutils,
- Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Linux API Headers,
- Make, Perl, Python, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="glibc-rundeps" name="glibc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="glibc-testdeps" name="glibc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">File</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="glibc-before" name="glibc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="glibc-optdeps" name="glibc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gmp-dep" name="gmp-dep"></a>GMP
- </h3>
- <div class="segmentedlist">
- <a id="gmp-depends" name="gmp-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, M4, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gmp-rundeps" name="gmp-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GCC и Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gmp-testdeps" name="gmp-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gmp-before" name="gmp-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">MPFR и GCC</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gmp-optdeps" name="gmp-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gperf-dep" name="gperf-dep"></a>Gperf
- </h3>
- <div class="segmentedlist">
- <a id="gperf-depends" name="gperf-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc и
- Make</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gperf-rundeps" name="gperf-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GCC и Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gperf-testdeps" name="gperf-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils и Expect</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gperf-before" name="gperf-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gperf-optdeps" name="gperf-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="grep-dep" name="grep-dep"></a>Grep
- </h3>
- <div class="segmentedlist">
- <a id="grep-depends" name="grep-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Gettext, Glibc, Grep, Make, Patch, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grep-rundeps" name="grep-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grep-testdeps" name="grep-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grep-before" name="grep-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Man-DB</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grep-optdeps" name="grep-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/pcre2.html">
- PCRE2</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libsigsegv.html">
- libsigsegv</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="groff-dep" name="groff-dep"></a>Groff
- </h3>
- <div class="segmentedlist">
- <a id="groff-depends" name="groff-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Coreutils, Gawk,
- GCC, Glibc, Grep, Make, Patch, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="groff-rundeps" name="groff-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GCC, Glibc и
- Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="groff-testdeps" name="groff-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="groff-before" name="groff-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Man-DB</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="groff-optdeps" name="groff-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/pst/gs.html">
- ghostscript</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/uchardet.html">
- Uchardet</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="grub-dep" name="grub-dep"></a>GRUB
- </h3>
- <div class="segmentedlist">
- <a id="grub-depends" name="grub-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Coreutils,
- Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed,
- Texinfo и Xz</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grub-rundeps" name="grub-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, GCC,
- Gettext, Glibc, Xz и Sed.</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grub-testdeps" name="grub-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grub-before" name="grub-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="grub-optdeps" name="grub-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="gzip-dep" name="gzip-dep"></a>Gzip
- </h3>
- <div class="segmentedlist">
- <a id="gzip-depends" name="gzip-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gzip-rundeps" name="gzip-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gzip-testdeps" name="gzip-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils и Less</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gzip-before" name="gzip-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Man-DB</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="gzip-optdeps" name="gzip-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="iana-etc-dep" name="iana-etc-dep"></a>Iana-Etc
- </h3>
- <div class="segmentedlist">
- <a id="iana-etc-depends" name="iana-etc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Coreutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iana-etc-rundeps" name="iana-etc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iana-etc-testdeps" name="iana-etc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iana-etc-before" name="iana-etc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iana-etc-optdeps" name="iana-etc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="inetutils-dep" name="inetutils-dep"></a>Inetutils
- </h3>
- <div class="segmentedlist">
- <a id="inetutils-depends" name="inetutils-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Grep, Make, Ncurses, Patch, Sed, Texinfo и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="inetutils-rundeps" name="inetutils-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GCC, Glibc,
- Ncurses и Readline</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="inetutils-testdeps" name="inetutils-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="inetutils-before" name="inetutils-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Tar</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="inetutils-optdeps" name="inetutils-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="intltool-dep" name="intltool-dep"></a>Intltool
- </h3>
- <div class="segmentedlist">
- <a id="intltool-depends" name="intltool-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Gawk, Glibc, Make, Perl, Sed и
- XML::Parser</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="intltool-rundeps" name="intltool-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Autoconf,
- Automake, Bash, Glibc, Grep, Perl и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="intltool-testdeps" name="intltool-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="intltool-before" name="intltool-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="intltool-optdeps" name="intltool-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="iproute2-dep" name="iproute2-dep"></a>IProute2
- </h3>
- <div class="segmentedlist">
- <a id="iproute2-depends" name="iproute2-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Bison, Coreutils, Flex, GCC,
- Glibc, Make, Libcap, Libelf, Linux API Headers и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iproute2-rundeps" name="iproute2-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Coreutils,
- Glibc, Libcap, Libelf и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iproute2-testdeps" name="iproute2-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iproute2-before" name="iproute2-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="iproute2-optdeps" name="iproute2-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://www.oracle.com/database/technologies/related/berkeleydb.html">
- Berkeley DB</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/iptables.html">
- iptables</a>, <a class="ulink" href=
- "https://github.com/libbpf/libbpf">libbpf</a>, <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/libmnl.html">
- libmnl</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/libtirpc.html">
- libtirpc</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="jinja2-dep" name="jinja2-dep"></a>Jinja2
- </h3>
- <div class="segmentedlist">
- <a id="jinja2-depends" name="jinja2-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">MarkupSafe, Python, Setuptools и
- Wheel</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="jinja2-rundeps" name="jinja2-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">MarkupSafe и
- Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="jinja2-testdeps" name="jinja2-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="jinja2-before" name="jinja2-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody"><span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="jinja2-optdeps" name="jinja2-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="kbd-dep" name="kbd-dep"></a>Kbd
- </h3>
- <div class="segmentedlist">
- <a id="kbd-depends" name="kbd-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Check,
- Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch и
- Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kbd-rundeps" name="kbd-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, Coreutils и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kbd-testdeps" name="kbd-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kbd-before" name="kbd-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kbd-optdeps" name="kbd-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/linux-pam.html">
- Linux-PAM</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="kmod-dep" name="kmod-dep"></a>Kmod
- </h3>
- <div class="segmentedlist">
- <a id="kmod-depends" name="kmod-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bison, Coreutils, Flex,
- GCC, Gettext, Glibc, Gzip, Make, OpenSSL, Pkg-config, Sed, Xz
- и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kmod-rundeps" name="kmod-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Xz и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kmod-testdeps" name="kmod-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kmod-before" name="kmod-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody"><span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="kmod-optdeps" name="kmod-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="less-dep" name="less-dep"></a>Less
- </h3>
- <div class="segmentedlist">
- <a id="less-depends" name="less-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Glibc, Grep, Make, Ncurses и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="less-rundeps" name="less-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Ncurses</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="less-testdeps" name="less-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="less-before" name="less-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Gzip</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="less-optdeps" name="less-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/pcre2.html">
- PCRE2</a> или <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/pcre.html">
- PCRE</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libcap-dep" name="libcap-dep"></a>Libcap
- </h3>
- <div class="segmentedlist">
- <a id="libcap-depends" name="libcap-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Attr, Bash, Binutils, Coreutils, GCC,
- Glibc, Perl, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libcap-rundeps" name="libcap-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libcap-testdeps" name="libcap-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libcap-before" name="libcap-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">IProute2 и Shadow</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libcap-optdeps" name="libcap-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/linux-pam.html">
- Linux-PAM</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libelf-dep" name="libelf-dep"></a>Libelf
- </h3>
- <div class="segmentedlist">
- <a id="libelf-depends" name="libelf-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bzip2, Coreutils, GCC,
- Glibc, Make, Xz, Zlib и Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libelf-rundeps" name="libelf-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bzip2, Glibc, Xz,
- Zlib и Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libelf-testdeps" name="libelf-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libelf-before" name="libelf-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">IProute2 и Linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libelf-optdeps" name="libelf-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libffi-dep" name="libffi-dep"></a>Libffi
- </h3>
- <div class="segmentedlist">
- <a id="libffi-depends" name="libffi-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libffi-rundeps" name="libffi-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libffi-testdeps" name="libffi-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">DejaGnu</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libffi-before" name="libffi-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libffi-optdeps" name="libffi-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libpipeline-dep" name="libpipeline-dep"></a>Libpipeline
- </h3>
- <div class="segmentedlist">
- <a id="libpipeline-depends" name="libpipeline-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libpipeline-rundeps" name="libpipeline-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libpipeline-testdeps" name="libpipeline-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Check и Pkgconf</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libpipeline-before" name="libpipeline-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Man-DB</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libpipeline-optdeps" name="libpipeline-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libtool-dep" name="libtool-dep"></a>Libtool
- </h3>
- <div class="segmentedlist">
- <a id="libtool-depends" name="libtool-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libtool-rundeps" name="libtool-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Autoconf,
- Automake, Bash, Binutils, Coreutils, File, GCC, Glibc, Grep,
- Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libtool-testdeps" name="libtool-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Autoconf, Automake и Findutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libtool-before" name="libtool-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libtool-optdeps" name="libtool-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="libxcrypt-dep" name="libxcrypt-dep"></a>Libxcrypt
- </h3>
- <div class="segmentedlist">
- <a id="libxcrypt-depends" name="libxcrypt-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, Make, Perl и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libxcrypt-rundeps" name="libxcrypt-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libxcrypt-testdeps" name="libxcrypt-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libxcrypt-before" name="libxcrypt-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">GCC, Perl, Python, Shadow и
- <span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="libxcrypt-optdeps" name="libxcrypt-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="linux-dep" name="linux-dep"></a>Linux
- </h3>
- <div class="segmentedlist">
- <a id="linux-depends" name="linux-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Bc, Binutils, Coreutils,
- Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Libelf,
- Make, Ncurses, OpenSSL, Perl и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-rundeps" name="linux-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-testdeps" name="linux-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-before" name="linux-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-optdeps" name="linux-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/cpio.html">
- cpio</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/llvm.html">
- LLVM</a> (с Clang)</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="linux-api-headers-dep" name=
- "linux-api-headers-dep"></a>Linux API Headers
- </h3>
- <div class="segmentedlist">
- <a id="linux-api-headers-depends" name=
- "linux-api-headers-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Findutils,
- GCC, Glibc, Grep, Gzip, Make, Perl и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-api-headers-rundeps" name=
- "linux-api-headers-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-api-headers-testdeps" name=
- "linux-api-headers-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-api-headers-before" name=
- "linux-api-headers-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="linux-api-headers-optdeps" name=
- "linux-api-headers-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="m4-dep" name="m4-dep"></a>M4
- </h3>
- <div class="segmentedlist">
- <a id="m4-depends" name="m4-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Grep, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="m4-rundeps" name="m4-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="m4-testdeps" name="m4-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="m4-before" name="m4-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Autoconf и Bison</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="m4-optdeps" name="m4-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libsigsegv.html">
- libsigsegv</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="make-dep" name="make-dep"></a>Make
- </h3>
- <div class="segmentedlist">
- <a id="make-depends" name="make-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, Make, Sed, и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="make-rundeps" name="make-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="make-testdeps" name="make-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Perl и Procps-ng</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="make-before" name="make-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="make-optdeps" name="make-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/guile.html">
- Guile</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="man-db-dep" name="man-db-dep"></a>Man-DB
- </h3>
- <div class="segmentedlist">
- <a id="man-db-depends" name="man-db-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Bzip2, Coreutils, Flex,
- GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less,
- Libpipeline, Make, Pkgconf, Sed, и Xz</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-db-rundeps" name="man-db-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bash, GDBM, Groff,
- Glibc, Gzip, Less, Libpipeline и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-db-testdeps" name="man-db-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-db-before" name="man-db-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-db-optdeps" name="man-db-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libseccomp.html">
- libseccomp</a> и <a class="ulink" href=
- "https://po4a.org/index.php.en">po4a</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="man-pages-dep" name="man-pages-dep"></a>Man-Pages
- </h3>
- <div class="segmentedlist">
- <a id="man-pages-depends" name="man-pages-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Coreutils и Make</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-pages-rundeps" name="man-pages-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-pages-testdeps" name="man-pages-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-pages-before" name="man-pages-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="man-pages-optdeps" name="man-pages-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="markupsafe-dep" name="markupsafe-dep"></a>MarkupSafe
- </h3>
- <div class="segmentedlist">
- <a id="markupsafe-depends" name="markupsafe-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Python, Setuptools и Wheel</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="markupsafe-rundeps" name="markupsafe-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="markupsafe-testdeps" name="markupsafe-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="markupsafe-before" name="markupsafe-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Jinja2</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="markupsafe-optdeps" name="markupsafe-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="meson-dep" name="meson-dep"></a>Meson
- </h3>
- <div class="segmentedlist">
- <a id="meson-depends" name="meson-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Ninja, Python, Setuptools и
- Wheel</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="meson-rundeps" name="meson-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="meson-testdeps" name="meson-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="meson-before" name="meson-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody"><span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="meson-optdeps" name="meson-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="mpc-dep" name="mpc-dep"></a>MPC
- </h3>
- <div class="segmentedlist">
- <a id="mpc-depends" name="mpc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpc-rundeps" name="mpc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, GMP и
- MPFR</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpc-testdeps" name="mpc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpc-before" name="mpc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">GCC</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpc-optdeps" name="mpc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="mpfr-dep" name="mpfr-dep"></a>MPFR
- </h3>
- <div class="segmentedlist">
- <a id="mpfr-depends" name="mpfr-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, GMP, Make, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpfr-rundeps" name="mpfr-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и GMP</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpfr-testdeps" name="mpfr-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpfr-before" name="mpfr-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Gawk и GCC</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="mpfr-optdeps" name="mpfr-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="ncurses-dep" name="ncurses-dep"></a>Ncurses
- </h3>
- <div class="segmentedlist">
- <a id="ncurses-depends" name="ncurses-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- Gawk, GCC, Glibc, Grep, Make, Patch и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ncurses-rundeps" name="ncurses-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ncurses-testdeps" name="ncurses-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ncurses-before" name="ncurses-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Bash, GRUB, Inetutils, Less, Procps-ng,
- Psmisc, Readline, Texinfo, Util-linux и Vim</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ncurses-optdeps" name="ncurses-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="ninja-dep" name="ninja-dep"></a>Ninja
- </h3>
- <div class="segmentedlist">
- <a id="ninja-depends" name="ninja-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Binutils, Coreutils, GCC и
- Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ninja-rundeps" name="ninja-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GCC и Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ninja-testdeps" name="ninja-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ninja-before" name="ninja-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Meson</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="ninja-optdeps" name="ninja-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/asciidoc.html">
- Asciidoc</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/doxygen.html">
- Doxygen</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/emacs.html">
- Emacs</a> и <a class="ulink" href=
- "https://re2c.org/">re2c</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="openssl-dep" name="openssl-dep"></a>OpenSSL
- </h3>
- <div class="segmentedlist">
- <a id="openssl-depends" name="openssl-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Binutils, Coreutils, GCC, Make и
- Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="openssl-rundeps" name="openssl-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="openssl-testdeps" name="openssl-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="openssl-before" name="openssl-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Coreutils, Kmod, Linux и <span class=
- "phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="openssl-optdeps" name="openssl-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="patch-dep" name="patch-dep"></a>Patch
- </h3>
- <div class="segmentedlist">
- <a id="patch-depends" name="patch-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Attr, Bash, Binutils, Coreutils, GCC,
- Glibc, Grep, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="patch-rundeps" name="patch-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Attr и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="patch-testdeps" name="patch-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="patch-before" name="patch-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="patch-optdeps" name="patch-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/ed.html">
- Ed</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="perl-dep" name="perl-dep"></a>Perl
- </h3>
- <div class="segmentedlist">
- <a id="perl-depends" name="perl-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- GDBM, Glibc, Grep, Libxcrypt, Make, Sed и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="perl-rundeps" name="perl-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">GDBM, Glibc и
- Libxcrypt</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="perl-testdeps" name="perl-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Iana-Etc, Less и Procps-ng</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="perl-before" name="perl-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Autoconf</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="perl-optdeps" name="perl-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://www.oracle.com/database/technologies/related/berkeleydb.html">
- Berkeley DB</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="pkgconf-dep" name="pkgconf-dep"></a>Pkgconf
- </h3>
- <div class="segmentedlist">
- <a id="pkgconf-depends" name="pkgconf-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- Glibc, Grep, Make, и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="pkgconf-rundeps" name="pkgconf-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="pkgconf-testdeps" name="pkgconf-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="pkgconf-before" name="pkgconf-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Binutils, E2fsprogs, IProute2, Kmod,
- Man-DB, Procps-ng, Python, <span class="phrase">Udev</span> и
- Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="pkgconf-optdeps" name="pkgconf-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="procps-dep" name="procps-dep"></a>Procps-ng
- </h3>
- <div class="segmentedlist">
- <a id="procps-depends" name="procps-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Make, Ncurses, <span class="phrase">и</span> Pkgconf</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="procps-rundeps" name="procps-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="procps-testdeps" name="procps-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">DejaGNU</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="procps-before" name="procps-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="procps-optdeps" name="procps-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><span class="phrase"><a class="ulink"
- href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/elogind.html">
- elogind</a></span></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="psmisc-dep" name="psmisc-dep"></a>Psmisc
- </h3>
- <div class="segmentedlist">
- <a id="psmisc-depends" name="psmisc-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, Make, Ncurses и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="psmisc-rundeps" name="psmisc-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Ncurses</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="psmisc-testdeps" name="psmisc-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="psmisc-before" name="psmisc-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="psmisc-optdeps" name="psmisc-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="python-dep" name="python-dep"></a>Python
- </h3>
- <div class="segmentedlist">
- <a id="python-depends" name="python-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Expat, GCC,
- Gdbm, Gettext, Glibc, Grep, Libffi, Libxcrypt, Make, Ncurses,
- OpenSSL, Pkgconf, Sed и Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="python-rundeps" name="python-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Bzip2, Expat,
- Gdbm, Glibc, Libffi, Libxcrypt, Ncurses, OpenSSL и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="python-testdeps" name="python-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">GDB и Valgrind</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="python-before" name="python-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Ninja</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="python-optdeps" name="python-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://www.oracle.com/database/technologies/related/berkeleydb.html">
- Berkeley DB</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/basicnet/libnsl.html">
- libnsl</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/server/sqlite.html">
- SQLite</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/tk.html">
- Tk</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="readline-dep" name="readline-dep"></a>Readline
- </h3>
- <div class="segmentedlist">
- <a id="readline-depends" name="readline-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC,
- Glibc, Grep, Make, Ncurses, Patch, Sed и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="readline-rundeps" name="readline-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Ncurses</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="readline-testdeps" name="readline-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="readline-before" name="readline-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Bash, Bc и Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="readline-optdeps" name="readline-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="sed-dep" name="sed-dep"></a>Sed
- </h3>
- <div class="segmentedlist">
- <a id="sed-depends" name="sed-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, Make, Sed, и Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sed-rundeps" name="sed-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Acl, Attr и
- Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sed-testdeps" name="sed-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Diffutils и Gawk</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sed-before" name="sed-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">E2fsprogs, File, Libtool и
- Shadow</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sed-optdeps" name="sed-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="setuptools-dep" name="setuptools-dep"></a>Setuptools
- </h3>
- <div class="segmentedlist">
- <a id="setuptools-depends" name="setuptools-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Python и Wheel</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="setuptools-rundeps" name="setuptools-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="setuptools-testdeps" name="setuptools-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="setuptools-before" name="setuptools-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Jinja2, MarkupSafe и Meson</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="setuptools-optdeps" name="setuptools-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="shadow-dep" name="shadow-dep"></a>Shadow
- </h3>
- <div class="segmentedlist">
- <a id="shadow-depends" name="shadow-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Acl, Attr, Bash, Binutils, Coreutils,
- Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep,
- Libcap, Libxcrypt, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="shadow-rundeps" name="shadow-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Libxcrypt</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="shadow-testdeps" name="shadow-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="shadow-before" name="shadow-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Coreutils</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="shadow-optdeps" name="shadow-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/cracklib.html">
- CrackLib</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/linux-pam.html">
- Linux-PAM</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="sysklogd-dep" name="sysklogd-dep"></a>Sysklogd
- </h3>
- <div class="segmentedlist">
- <a id="sysklogd-depends" name="sysklogd-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Binutils, Coreutils, GCC, Glibc, Make и
- Patch</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysklogd-rundeps" name="sysklogd-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysklogd-testdeps" name="sysklogd-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysklogd-before" name="sysklogd-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysklogd-optdeps" name="sysklogd-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="sysvinit-dep" name="sysvinit-dep"></a>Sysvinit
- </h3>
- <div class="segmentedlist">
- <a id="sysvinit-depends" name="sysvinit-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Binutils, Coreutils, GCC, Glibc, Make и
- Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysvinit-rundeps" name="sysvinit-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysvinit-testdeps" name="sysvinit-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysvinit-before" name="sysvinit-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="sysvinit-optdeps" name="sysvinit-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="tar-dep" name="tar-dep"></a>Tar
- </h3>
- <div class="segmentedlist">
- <a id="tar-depends" name="tar-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Acl, Attr, Bash, Binutils, Bison,
- Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed и
- Texinfo</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tar-rundeps" name="tar-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Acl, Attr, Bzip2,
- Glibc, Gzip и Xz</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tar-testdeps" name="tar-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Autoconf, Diffutils, Findutils, Gawk и
- Gzip</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tar-befors" name="tar-befors"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tar-optdeps" name="tar-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="tcl-dep" name="tcl-dep"></a>Tcl
- </h3>
- <div class="segmentedlist">
- <a id="tcl-depends" name="tcl-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Glibc, Grep, Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tcl-rundeps" name="tcl-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tcl-testdeps" name="tcl-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tcl-before" name="tcl-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="tcl-optdeps" name="tcl-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="texinfo-dep" name="texinfo-dep"></a>Texinfo
- </h3>
- <div class="segmentedlist">
- <a id="texinfo-depends" name="texinfo-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC,
- Gettext, Glibc, Grep, Make, Ncurses, Patch и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="texinfo-rundeps" name="texinfo-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc и
- Ncurses</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="texinfo-testdeps" name="texinfo-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="texinfo-before" name="texinfo-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="texinfo-optdeps" name="texinfo-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="udev-dep" name="udev-dep"></a>Udev
- </h3>
- <div class="segmentedlist">
- <a id="udev-depends" name="udev-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Acl, Bash, Binutils, Coreutils,
- Diffutils, Gawk, GCC, Glibc, Gperf, Grep, Jinja2, Libcap,
- Libxcrypt, Meson, OpenSSL, Pkgconf, Sed, Util-linux и
- Zstd</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="udev-rundeps" name="udev-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Acl, Glibc,
- Libcap, OpenSSL и Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="udev-testdeps" name="udev-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="udev-before" name="udev-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="udev-optdeps" name="udev-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="util-linux-dep" name="util-linux-dep"></a>Util-linux
- </h3>
- <div class="segmentedlist">
- <a id="util-linux-depends" name="util-linux-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- File, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Make,
- Ncurses, Pkgconf, Sed, <span class="phrase">Udev</span> и
- Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="util-linux-rundeps" name="util-linux-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc, Ncurses,
- Readline, <span class="phrase">Udev</span> и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="util-linux-testdeps" name="util-linux-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="util-linux-before" name="util-linux-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="util-linux-optdeps" name="util-linux-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/asciidoctor.html">
- Asciidoctor</a>, <a class="ulink" href=
- "https://people.redhat.com/sgrubb/libcap-ng/">Libcap-NG</a>,
- <a class="ulink" href=
- "https://github.com/openSUSE/libeconf">libeconf</a>,
- <a class="ulink" href=
- "https://pagure.io/libuser/">libuser</a>, <a class="ulink"
- href=
- "https://github.com/altlinux/libutempter">libutempter</a>,
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/linux-pam.html">
- Linux-PAM</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/smartmontools.html">
- smartmontools</a>, <a class="ulink" href=
- "https://po4a.org/index.php.en">po4a</a> и <a class="ulink"
- href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/slang.html">
- slang</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="vim-dep" name="vim-dep"></a>Vim
- </h3>
- <div class="segmentedlist">
- <a id="vim-depends" name="vim-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Acl, Attr, Bash, Binutils, Coreutils,
- Diffutils, GCC, Glibc, Grep, Make, Ncurses и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="vim-rundeps" name="vim-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Acl, Attr, Glibc,
- Python, Ncurses и Tcl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="vim-testdeps" name="vim-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="vim-before" name="vim-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="vim-optdeps" name="vim-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/x/installing.html">
- Xorg</a>, <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/x/gtk2.html">
- GTK+2</a>, <a class="ulink" href=
- "https://lesstif.sourceforge.net/">LessTif</a>, <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/ruby.html">
- Ruby</a> и <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/gpm.html">
- GPM</a></span>
- </div>
- </div>
- </div>
- <h3>
- <a id="wheel-dep" name="wheel-dep"></a>Wheel
- </h3>
- <div class="segmentedlist">
- <a id="wheel-depends" name="wheel-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Python и Flit-core</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="wheel-rundeps" name="wheel-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Python</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="wheel-testdeps" name="wheel-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Набор тестов недоступен</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="wheel-before" name="wheel-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Jinja2, MarkupSafe, Meson и
- Setuptools</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="wheel-optdeps" name="wheel-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="xml-parser-dep" name="xml-parser-dep"></a>XML::Parser
- </h3>
- <div class="segmentedlist">
- <a id="xml-parser-depends" name="xml-parser-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Expat, GCC,
- Glibc, Make и Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xml-parser-rundeps" name="xml-parser-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Expat, Glibc и
- Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xml-parser-testdeps" name="xml-parser-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Perl</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xml-parser-before" name="xml-parser-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Intltool</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xml-parser-optdeps" name="xml-parser-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="xz-dep" name="xz-dep"></a>Xz
- </h3>
- <div class="segmentedlist">
- <a id="xz-depends" name="xz-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, Diffutils,
- GCC, Glibc и Make</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xz-rundeps" name="xz-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xz-testdeps" name="xz-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xz-before" name="xz-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">File, GRUB, Kmod, Libelf, Man-DB и
- <span class="phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="xz-optdeps" name="xz-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="zlib-dep" name="zlib-dep"></a>Zlib
- </h3>
- <div class="segmentedlist">
- <a id="zlib-depends" name="zlib-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc,
- Make и Sed</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zlib-rundeps" name="zlib-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zlib-testdeps" name="zlib-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zlib-before" name="zlib-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">File, Kmod, Libelf, Perl и
- Util-linux</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zlib-optdeps" name="zlib-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <h3>
- <a id="zstd-dep" name="zstd-dep"></a>Zstd
- </h3>
- <div class="segmentedlist">
- <a id="zstd-depends" name="zstd-depends"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установка зависит от:</strong>
- <span class="segbody">Binutils, Coreutils, GCC, Glibc, Gzip,
- Make, Xz и Zlib</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zstd-rundeps" name="zstd-rundeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Требуется во время
- выполнения:</strong> <span class="segbody">Glibc</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zstd-testdeps" name="zstd-testdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Набор тестов зависит от:</strong>
- <span class="segbody">Нет</span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zstd-before" name="zstd-before"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Должен быть установлен до:</strong>
- <span class="segbody">Binutils, GCC, Libelf и <span class=
- "phrase">Udev</span></span>
- </div>
- </div>
- </div>
- <div class="segmentedlist">
- <a id="zstd-optdeps" name="zstd-optdeps"></a>
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Необязательные зависимости:</strong>
- <span class="segbody"><a class="ulink" href=
- "https://lz4.github.io/lz4/">LZ4</a></span>
- </div>
- </div>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="scripts" name="scripts"></a>Приложение D. Скрипты
- загрузки и настройки системы-20230728
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <p>
- Скрипты в приложении перечислены с указанием каталога, в котором
- они обычно находятся. Порядок такой: <code class=
- "filename">/etc/rc.d/init.d</code>, <code class=
- "filename">/etc/sysconfig</code>, <code class=
- "filename">/etc/sysconfig/network-devices</code>, и <code class=
- "filename">/etc/sysconfig/network-devices/services</code>. В
- каждом разделе файлы перечислены в том порядке, в котором они
- обычно вызываются.
- </p>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="rc" name="rc"></a>D.1. /etc/rc.d/init.d/rc
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <p>
- Скрипт <code class="systemitem">rc</code> это первый скрипт,
- вызываемый системой инициализации <span class=
- "application">init</span> и инициирующий процесс загрузки.
- </p>
- <pre class="screen">#!/bin/bash
-########################################################################
-# Begin rc
-#
-# Description : Main Run Level Control Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# : DJ Lucas - dj AT linuxfromscratch D0T org
-# Updates : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# : Pierre Labastie - pierre AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Notes : Updates March 24th, 2022: new semantics of S/K files
-# - Instead of testing that S scripts were K scripts in the
-# previous runlevel, test that they were not S scripts
-# - Instead of testing that K scripts were S scripts in the
-# previous runlevel, test that they were not K scripts
-# - S scripts in runlevel 0 or 6 are now run with
-# "script start" (was "script stop" previously).
-########################################################################
-
-. /lib/lsb/init-functions
-
-print_error_msg()
-{
- log_failure_msg
- # $i is set when called
- MSG="FAILURE:\n\nYou should not be reading this error message.\n\n"
- MSG="${MSG}It means that an unforeseen error took place in\n"
- MSG="${MSG}${i},\n"
- MSG="${MSG}which exited with a return value of ${error_value}.\n"
-
- MSG="${MSG}If you're able to track this error down to a bug in one of\n"
- MSG="${MSG}the files provided by the ${DISTRO_MINI} book,\n"
- MSG="${MSG}please be so kind to inform us at ${DISTRO_CONTACT}.\n"
- log_failure_msg "${MSG}"
-
- log_info_msg "Press Enter to continue..."
- wait_for_user
-}
-
-check_script_status()
-{
- # $i is set when called
- if [ ! -f ${i} ]; then
- log_warning_msg "${i} is not a valid symlink."
- SCRIPT_STAT="1"
- fi
-
- if [ ! -x ${i} ]; then
- log_warning_msg "${i} is not executable, skipping."
- SCRIPT_STAT="1"
- fi
-}
-
-run()
-{
- if [ -z $interactive ]; then
- ${1} ${2}
- return $?
- fi
-
- while true; do
- read -p "Run ${1} ${2} (Yes/no/continue)? " -n 1 runit
- echo
-
- case ${runit} in
- c | C)
- interactive=""
- ${i} ${2}
- ret=${?}
- break;
- ;;
-
- n | N)
- return 0
- ;;
-
- y | Y)
- ${i} ${2}
- ret=${?}
- break
- ;;
- esac
- done
-
- return $ret
-}
-
-# Read any local settings/overrides
-[ -r /etc/sysconfig/rc.site ] &amp;&amp; source /etc/sysconfig/rc.site
-
-DISTRO=${DISTRO:-"Linux From Scratch"}
-DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@lists.linuxfromscratch.org (Registration required)"}
-DISTRO_MINI=${DISTRO_MINI:-"LFS"}
-IPROMPT=${IPROMPT:-"no"}
-
-# These 3 signals will not cause our script to exit
-trap "" INT QUIT TSTP
-
-[ "${1}" != "" ] &amp;&amp; runlevel=${1}
-
-if [ "${runlevel}" == "" ]; then
- echo "Usage: ${0} &lt;runlevel&gt;" &gt;&amp;2
- exit 1
-fi
-
-previous=${PREVLEVEL}
-[ "${previous}" == "" ] &amp;&amp; previous=N
-
-if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
- log_info_msg "/etc/rc.d/rc${runlevel}.d does not exist.\n"
- exit 1
-fi
-
-if [ "$runlevel" == "6" -o "$runlevel" == "0" ]; then IPROMPT="no"; fi
-
-# Note: In ${LOGLEVEL:-7}, it is ':' 'dash' '7', not minus 7
-if [ "$runlevel" == "S" ]; then
- [ -r /etc/sysconfig/console ] &amp;&amp; source /etc/sysconfig/console
- dmesg -n "${LOGLEVEL:-7}"
-fi
-
-if [ "${IPROMPT}" == "yes" -a "${runlevel}" == "S" ]; then
- # The total length of the distro welcome string, without escape codes
- wlen=${wlen:-$(echo "Welcome to ${DISTRO}" | wc -c )}
- welcome_message=${welcome_message:-"Welcome to ${INFO}${DISTRO}${NORMAL}"}
-
- # The total length of the interactive string, without escape codes
- ilen=${ilen:-$(echo "Press 'I' to enter interactive startup" | wc -c )}
- i_message=${i_message:-"Press '${FAILURE}I${NORMAL}' to enter interactive startup"}
-
-
- # dcol and icol are spaces before the message to center the message
- # on screen. itime is the amount of wait time for the user to press a key
- wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))
- icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 ))
- itime=${itime:-"3"}
-
- echo -e "\n\n"
- echo -e "\\033[${wcol}G${welcome_message}"
- echo -e "\\033[${icol}G${i_message}${NORMAL}"
- echo ""
- read -t "${itime}" -n 1 interactive 2&gt;&amp;1 &gt; /dev/null
-fi
-
-# Make lower case
-[ "${interactive}" == "I" ] &amp;&amp; interactive="i"
-[ "${interactive}" != "i" ] &amp;&amp; interactive=""
-
-# Read the state file if it exists from runlevel S
-[ -r /run/interactive ] &amp;&amp; source /run/interactive
-
-# Stop all services marked as K, except if marked as K in the previous
-# runlevel: it is the responsibility of the script to not try to kill
-# a non running service
-if [ "${previous}" != "N" ]; then
- for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2&gt; /dev/null)
- do
- check_script_status
- if [ "${SCRIPT_STAT}" == "1" ]; then
- SCRIPT_STAT="0"
- continue
- fi
-
- suffix=${i#/etc/rc.d/rc${runlevel}.d/K[0-9][0-9]}
- [ -e /etc/rc.d/rc${previous}.d/K[0-9][0-9]$suffix ] &amp;&amp; continue
-
- run ${i} stop
- error_value=${?}
-
- if [ "${error_value}" != "0" ]; then print_error_msg; fi
- done
-fi
-
-if [ "${previous}" == "N" ]; then export IN_BOOT=1; fi
-
-if [ "$runlevel" == "6" -a -n "${FASTBOOT}" ]; then
- touch /fastboot
-fi
-
-
-# Start all services marked as S in this runlevel, except if marked as
-# S in the previous runlevel
-# it is the responsibility of the script to not try to start an already running
-# service
-for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2&gt; /dev/null)
-do
-
- if [ "${previous}" != "N" ]; then
- suffix=${i#/etc/rc.d/rc${runlevel}.d/S[0-9][0-9]}
- [ -e /etc/rc.d/rc${previous}.d/S[0-9][0-9]$suffix ] &amp;&amp; continue
- fi
-
- check_script_status
- if [ "${SCRIPT_STAT}" == "1" ]; then
- SCRIPT_STAT="0"
- continue
- fi
-
- run ${i} start
-
- error_value=${?}
-
- if [ "${error_value}" != "0" ]; then print_error_msg; fi
-done
-
-# Store interactive variable on switch from runlevel S and remove if not
-if [ "${runlevel}" == "S" -a "${interactive}" == "i" ]; then
- echo "interactive=\"i\"" &gt; /run/interactive
-else
- rm -f /run/interactive 2&gt; /dev/null
-fi
-
-# Copy the boot log on initial boot only
-if [ "${previous}" == "N" -a "${runlevel}" != "S" ]; then
- cat $BOOTLOG &gt;&gt; /var/log/boot.log
-
- # Mark the end of boot
- echo "--------" &gt;&gt; /var/log/boot.log
-
- # Remove the temporary file
- rm -f $BOOTLOG 2&gt; /dev/null
-fi
-
-# End rc
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="init-functions" name="init-functions"></a>D.2.
- /lib/lsb/init-functions
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-#
-# Begin /lib/lsb/init-funtions
-#
-# Description : Run Level Control Functions
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# : DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Notes : With code based on Matthias Benkmann's simpleinit-msb
-# http://winterdrache.de/linux/newboot/index.html
-#
-# The file should be located in /lib/lsb
-#
-########################################################################
-
-## Environmental setup
-# Setup default values for environment
-umask 022
-export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
-
-## Set color commands, used via echo
-# Please consult `man console_codes for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font. This does
-# not affect framebuffer consoles
-
-NORMAL="\\033[0;39m" # Standard console grey
-SUCCESS="\\033[1;32m" # Success is green
-WARNING="\\033[1;33m" # Warnings are yellow
-FAILURE="\\033[1;31m" # Failures are red
-INFO="\\033[1;36m" # Information is light cyan
-BRACKET="\\033[1;34m" # Brackets are blue
-
-# Use a colored prefix
-BMPREFIX=" "
-SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} "
-FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-SKIP_PREFIX="${INFO} S ${NORMAL}"
-
-SUCCESS_SUFFIX="${BRACKET}[${SUCCESS} OK ${BRACKET}]${NORMAL}"
-FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL ${BRACKET}]${NORMAL}"
-WARNING_SUFFIX="${BRACKET}[${WARNING} WARN ${BRACKET}]${NORMAL}"
-SKIP_SUFFIX="${BRACKET}[${INFO} SKIP ${BRACKET}]${NORMAL}"
-
-BOOTLOG=/run/bootlog
-KILLDELAY=3
-SCRIPT_STAT="0"
-
-# Set any user specified environment variables e.g. HEADLESS
-[ -r /etc/sysconfig/rc.site ] &amp;&amp; . /etc/sysconfig/rc.site
-
-## Screen Dimensions
-# Find current screen size
-if [ -z "${COLUMNS}" ]; then
- COLUMNS=$(stty size)
- COLUMNS=${COLUMNS##* }
-fi
-
-# When using remote connections, such as a serial port, stty size returns 0
-if [ "${COLUMNS}" = "0" ]; then
- COLUMNS=80
-fi
-
-## Measurements for positioning result messages
-COL=$((${COLUMNS} - 8))
-WCOL=$((${COL} - 2))
-
-## Set Cursor Position Commands, used via echo
-SET_COL="\\033[${COL}G" # at the $COL char
-SET_WCOL="\\033[${WCOL}G" # at the $WCOL char
-CURS_UP="\\033[1A\\033[0G" # Up one line, at the 0'th char
-CURS_ZERO="\\033[0G"
-
-################################################################################
-# start_daemon() #
-# Usage: start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args...] #
-# #
-# Purpose: This runs the specified program as a daemon #
-# #
-# Inputs: -f: (force) run the program even if it is already running. #
-# -n nicelevel: specify a nice level. See 'man nice(1)'. #
-# -p pidfile: use the specified file to determine PIDs. #
-# pathname: the complete path to the specified program #
-# args: additional arguments passed to the program (pathname) #
-# #
-# Return values (as defined by LSB exit codes): #
-# 0 - program is running or service is OK #
-# 1 - generic or unspecified error #
-# 2 - invalid or excessive argument(s) #
-# 5 - program is not installed #
-################################################################################
-start_daemon()
-{
- local force=""
- local nice="0"
- local pidfile=""
- local pidlist=""
- local retval=""
-
- # Process arguments
- while true
- do
- case "${1}" in
-
- -f)
- force="1"
- shift 1
- ;;
-
- -n)
- nice="${2}"
- shift 2
- ;;
-
- -p)
- pidfile="${2}"
- shift 2
- ;;
-
- -*)
- return 2
- ;;
-
- *)
- program="${1}"
- break
- ;;
- esac
- done
-
- # Check for a valid program
- if [ ! -e "${program}" ]; then return 5; fi
-
- # Execute
- if [ -z "${force}" ]; then
- if [ -z "${pidfile}" ]; then
- # Determine the pid by discovery
- pidlist=`pidofproc "${1}"`
- retval="${?}"
- else
- # The PID file contains the needed PIDs
- # Note that by LSB requirement, the path must be given to pidofproc,
- # however, it is not used by the current implementation or standard.
- pidlist=`pidofproc -p "${pidfile}" "${1}"`
- retval="${?}"
- fi
-
- # Return a value ONLY
- # It is the init script's (or distribution's functions) responsibility
- # to log messages!
- case "${retval}" in
-
- 0)
- # Program is already running correctly, this is a
- # successful start.
- return 0
- ;;
-
- 1)
- # Program is not running, but an invalid pid file exists
- # remove the pid file and continue
- rm -f "${pidfile}"
- ;;
-
- 3)
- # Program is not running and no pidfile exists
- # do nothing here, let start_deamon continue.
- ;;
-
- *)
- # Others as returned by status values shall not be interpreted
- # and returned as an unspecified error.
- return 1
- ;;
- esac
- fi
-
- # Do the start!
- nice -n "${nice}" "${@}"
-}
-
-################################################################################
-# killproc() #
-# Usage: killproc [-p pidfile] pathname [signal] #
-# #
-# Purpose: Send control signals to running processes #
-# #
-# Inputs: -p pidfile, uses the specified pidfile #
-# pathname, pathname to the specified program #
-# signal, send this signal to pathname #
-# #
-# Return values (as defined by LSB exit codes): #
-# 0 - program (pathname) has stopped/is already stopped or a #
-# running program has been sent specified signal and stopped #
-# successfully #
-# 1 - generic or unspecified error #
-# 2 - invalid or excessive argument(s) #
-# 5 - program is not installed #
-# 7 - program is not running and a signal was supplied #
-################################################################################
-killproc()
-{
- local pidfile
- local program
- local prefix
- local progname
- local signal="-TERM"
- local fallback="-KILL"
- local nosig
- local pidlist
- local retval
- local pid
- local delay="30"
- local piddead
- local dtime
-
- # Process arguments
- while true; do
- case "${1}" in
- -p)
- pidfile="${2}"
- shift 2
- ;;
-
- *)
- program="${1}"
- if [ -n "${2}" ]; then
- signal="${2}"
- fallback=""
- else
- nosig=1
- fi
-
- # Error on additional arguments
- if [ -n "${3}" ]; then
- return 2
- else
- break
- fi
- ;;
- esac
- done
-
- # Check for a valid program
- if [ ! -e "${program}" ]; then return 5; fi
-
- # Check for a valid signal
- check_signal "${signal}"
- if [ "${?}" -ne "0" ]; then return 2; fi
-
- # Get a list of pids
- if [ -z "${pidfile}" ]; then
- # determine the pid by discovery
- pidlist=`pidofproc "${1}"`
- retval="${?}"
- else
- # The PID file contains the needed PIDs
- # Note that by LSB requirement, the path must be given to pidofproc,
- # however, it is not used by the current implementation or standard.
- pidlist=`pidofproc -p "${pidfile}" "${1}"`
- retval="${?}"
- fi
-
- # Return a value ONLY
- # It is the init script's (or distribution's functions) responsibility
- # to log messages!
- case "${retval}" in
-
- 0)
- # Program is running correctly
- # Do nothing here, let killproc continue.
- ;;
-
- 1)
- # Program is not running, but an invalid pid file exists
- # Remove the pid file.
-
- progname=${program##*/}
-
- if [[ -e "/run/${progname}.pid" ]]; then
- pidfile="/run/${progname}.pid"
- rm -f "${pidfile}"
- fi
-
- # This is only a success if no signal was passed.
- if [ -n "${nosig}" ]; then
- return 0
- else
- return 7
- fi
- ;;
-
- 3)
- # Program is not running and no pidfile exists
- # This is only a success if no signal was passed.
- if [ -n "${nosig}" ]; then
- return 0
- else
- return 7
- fi
- ;;
-
- *)
- # Others as returned by status values shall not be interpreted
- # and returned as an unspecified error.
- return 1
- ;;
- esac
-
- # Perform different actions for exit signals and control signals
- check_sig_type "${signal}"
-
- if [ "${?}" -eq "0" ]; then # Signal is used to terminate the program
-
- # Account for empty pidlist (pid file still exists and no
- # signal was given)
- if [ "${pidlist}" != "" ]; then
-
- # Kill the list of pids
- for pid in ${pidlist}; do
-
- kill -0 "${pid}" 2&gt; /dev/null
-
- if [ "${?}" -ne "0" ]; then
- # Process is dead, continue to next and assume all is well
- continue
- else
- kill "${signal}" "${pid}" 2&gt; /dev/null
-
- # Wait up to ${delay}/10 seconds to for "${pid}" to
- # terminate in 10ths of a second
-
- while [ "${delay}" -ne "0" ]; do
- kill -0 "${pid}" 2&gt; /dev/null || piddead="1"
- if [ "${piddead}" = "1" ]; then break; fi
- sleep 0.1
- delay="$(( ${delay} - 1 ))"
- done
-
- # If a fallback is set, and program is still running, then
- # use the fallback
- if [ -n "${fallback}" -a "${piddead}" != "1" ]; then
- kill "${fallback}" "${pid}" 2&gt; /dev/null
- sleep 1
- # Check again, and fail if still running
- kill -0 "${pid}" 2&gt; /dev/null &amp;&amp; return 1
- fi
- fi
- done
- fi
-
- # Check for and remove stale PID files.
- if [ -z "${pidfile}" ]; then
- # Find the basename of $program
- prefix=`echo "${program}" | sed 's/[^/]*$//'`
- progname=`echo "${program}" | sed "s@${prefix}@@"`
-
- if [ -e "/run/${progname}.pid" ]; then
- rm -f "/run/${progname}.pid" 2&gt; /dev/null
- fi
- else
- if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2&gt; /dev/null; fi
- fi
-
- # For signals that do not expect a program to exit, simply
- # let kill do its job, and evaluate kill's return for value
-
- else # check_sig_type - signal is not used to terminate program
- for pid in ${pidlist}; do
- kill "${signal}" "${pid}"
- if [ "${?}" -ne "0" ]; then return 1; fi
- done
- fi
-}
-
-################################################################################
-# pidofproc() #
-# Usage: pidofproc [-p pidfile] pathname #
-# #
-# Purpose: This function returns one or more pid(s) for a particular daemon #
-# #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof #
-# pathname, path to the specified program #
-# #
-# Return values (as defined by LSB status codes): #
-# 0 - Success (PIDs to stdout) #
-# 1 - Program is dead, PID file still exists (remaining PIDs output) #
-# 3 - Program is not running (no output) #
-################################################################################
-pidofproc()
-{
- local pidfile
- local program
- local prefix
- local progname
- local pidlist
- local lpids
- local exitstatus="0"
-
- # Process arguments
- while true; do
- case "${1}" in
-
- -p)
- pidfile="${2}"
- shift 2
- ;;
-
- *)
- program="${1}"
- if [ -n "${2}" ]; then
- # Too many arguments
- # Since this is status, return unknown
- return 4
- else
- break
- fi
- ;;
- esac
- done
-
- # If a PID file is not specified, try and find one.
- if [ -z "${pidfile}" ]; then
- # Get the program's basename
- prefix=`echo "${program}" | sed 's/[^/]*$//'`
-
- if [ -z "${prefix}" ]; then
- progname="${program}"
- else
- progname=`echo "${program}" | sed "s@${prefix}@@"`
- fi
-
- # If a PID file exists with that name, assume that is it.
- if [ -e "/run/${progname}.pid" ]; then
- pidfile="/run/${progname}.pid"
- fi
- fi
-
- # If a PID file is set and exists, use it.
- if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
-
- # Use the value in the first line of the pidfile
- pidlist=`/bin/head -n1 "${pidfile}"`
- # This can optionally be written as 'sed 1q' to repalce 'head -n1'
- # should LFS move /bin/head to /usr/bin/head
- else
- # Use pidof
- pidlist=`pidof "${program}"`
- fi
-
- # Figure out if all listed PIDs are running.
- for pid in ${pidlist}; do
- kill -0 ${pid} 2&gt; /dev/null
-
- if [ "${?}" -eq "0" ]; then
- lpids="${lpids}${pid} "
- else
- exitstatus="1"
- fi
- done
-
- if [ -z "${lpids}" -a ! -f "${pidfile}" ]; then
- return 3
- else
- echo "${lpids}"
- return "${exitstatus}"
- fi
-}
-
-################################################################################
-# statusproc() #
-# Usage: statusproc [-p pidfile] pathname #
-# #
-# Purpose: This function prints the status of a particular daemon to stdout #
-# #
-# Inputs: -p pidfile, use the specified pidfile instead of pidof #
-# pathname, path to the specified program #
-# #
-# Return values: #
-# 0 - Status printed #
-# 1 - Input error. The daemon to check was not specified. #
-################################################################################
-statusproc()
-{
- local pidfile
- local pidlist
-
- if [ "${#}" = "0" ]; then
- echo "Usage: statusproc [-p pidfle] {program}"
- exit 1
- fi
-
- # Process arguments
- while true; do
- case "${1}" in
-
- -p)
- pidfile="${2}"
- shift 2
- ;;
-
- *)
- if [ -n "${2}" ]; then
- echo "Too many arguments"
- return 1
- else
- break
- fi
- ;;
- esac
- done
-
- if [ -n "${pidfile}" ]; then
- pidlist=`pidofproc -p "${pidfile}" $@`
- else
- pidlist=`pidofproc $@`
- fi
-
- # Trim trailing blanks
- pidlist=`echo "${pidlist}" | sed -r 's/ +$//'`
-
- base="${1##*/}"
-
- if [ -n "${pidlist}" ]; then
- /bin/echo -e "${INFO}${base} is running with Process" \
- "ID(s) ${pidlist}.${NORMAL}"
- else
- if [ -n "${base}" -a -e "/run/${base}.pid" ]; then
- /bin/echo -e "${WARNING}${1} is not running but" \
- "/run/${base}.pid exists.${NORMAL}"
- else
- if [ -n "${pidfile}" -a -e "${pidfile}" ]; then
- /bin/echo -e "${WARNING}${1} is not running" \
- "but ${pidfile} exists.${NORMAL}"
- else
- /bin/echo -e "${INFO}${1} is not running.${NORMAL}"
- fi
- fi
- fi
-}
-
-################################################################################
-# timespec() #
-# #
-# Purpose: An internal utility function to format a timestamp #
-# a boot log file. Sets the STAMP variable. #
-# #
-# Return value: Not used #
-################################################################################
-timespec()
-{
- STAMP="$(echo `date +"%b %d %T %:z"` `hostname`) "
- return 0
-}
-
-################################################################################
-# log_success_msg() #
-# Usage: log_success_msg ["message"] #
-# #
-# Purpose: Print a successful status message to the screen and #
-# a boot log file. #
-# #
-# Inputs: $@ - Message #
-# #
-# Return values: Not used #
-################################################################################
-log_success_msg()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
- # Strip non-printable characters from log file
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
-
- timespec
- /bin/echo -e "${STAMP} ${logmessage} OK" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-log_success_msg2()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}"
-
- echo " OK" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-################################################################################
-# log_failure_msg() #
-# Usage: log_failure_msg ["message"] #
-# #
-# Purpose: Print a failure status message to the screen and #
-# a boot log file. #
-# #
-# Inputs: $@ - Message #
-# #
-# Return values: Not used #
-################################################################################
-log_failure_msg()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
- # Strip non-printable characters from log file
-
- timespec
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
- /bin/echo -e "${STAMP} ${logmessage} FAIL" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-log_failure_msg2()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}"
-
- echo "FAIL" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-################################################################################
-# log_warning_msg() #
-# Usage: log_warning_msg ["message"] #
-# #
-# Purpose: Print a warning status message to the screen and #
-# a boot log file. #
-# #
-# Return values: Not used #
-################################################################################
-log_warning_msg()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}"
-
- # Strip non-printable characters from log file
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
- timespec
- /bin/echo -e "${STAMP} ${logmessage} WARN" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-log_skip_msg()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
- /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}"
-
- # Strip non-printable characters from log file
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
- /bin/echo "SKIP" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-################################################################################
-# log_info_msg() #
-# Usage: log_info_msg message #
-# #
-# Purpose: Print an information message to the screen and #
-# a boot log file. Does not print a trailing newline character. #
-# #
-# Return values: Not used #
-################################################################################
-log_info_msg()
-{
- /bin/echo -n -e "${BMPREFIX}${@}"
-
- # Strip non-printable characters from log file
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
- timespec
- /bin/echo -n -e "${STAMP} ${logmessage}" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-log_info_msg2()
-{
- /bin/echo -n -e "${@}"
-
- # Strip non-printable characters from log file
- logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'`
- /bin/echo -n -e "${logmessage}" &gt;&gt; ${BOOTLOG}
-
- return 0
-}
-
-################################################################################
-# evaluate_retval() #
-# Usage: Evaluate a return value and print success or failure as appropriate #
-# #
-# Purpose: Convenience function to terminate an info message #
-# #
-# Return values: Not used #
-################################################################################
-evaluate_retval()
-{
- local error_value="${?}"
-
- if [ ${error_value} = 0 ]; then
- log_success_msg2
- else
- log_failure_msg2
- fi
-}
-
-################################################################################
-# check_signal() #
-# Usage: check_signal [ -{signal} ] #
-# #
-# Purpose: Check for a valid signal. This is not defined by any LSB draft, #
-# however, it is required to check the signals to determine if the #
-# signals chosen are invalid arguments to the other functions. #
-# #
-# Inputs: Accepts a single string value in the form of -{signal} #
-# #
-# Return values: #
-# 0 - Success (signal is valid #
-# 1 - Signal is not valid #
-################################################################################
-check_signal()
-{
- local valsig
-
- # Add error handling for invalid signals
- valsig=" -ALRM -HUP -INT -KILL -PIPE -POLL -PROF -TERM -USR1 -USR2"
- valsig="${valsig} -VTALRM -STKFLT -PWR -WINCH -CHLD -URG -TSTP -TTIN"
- valsig="${valsig} -TTOU -STOP -CONT -ABRT -FPE -ILL -QUIT -SEGV -TRAP"
- valsig="${valsig} -SYS -EMT -BUS -XCPU -XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9"
- valsig="${valsig} -11 -13 -14 -15 "
-
- echo "${valsig}" | grep -- " ${1} " &gt; /dev/null
-
- if [ "${?}" -eq "0" ]; then
- return 0
- else
- return 1
- fi
-}
-
-################################################################################
-# check_sig_type() #
-# Usage: check_signal [ -{signal} | {signal} ] #
-# #
-# Purpose: Check if signal is a program termination signal or a control signal #
-# This is not defined by any LSB draft, however, it is required to #
-# check the signals to determine if they are intended to end a #
-# program or simply to control it. #
-# #
-# Inputs: Accepts a single string value in the form or -{signal} or {signal} #
-# #
-# Return values: #
-# 0 - Signal is used for program termination #
-# 1 - Signal is used for program control #
-################################################################################
-check_sig_type()
-{
- local valsig
-
- # The list of termination signals (limited to generally used items)
- valsig=" -ALRM -INT -KILL -TERM -PWR -STOP -ABRT -QUIT -2 -3 -6 -9 -14 -15 "
-
- echo "${valsig}" | grep -- " ${1} " &gt; /dev/null
-
- if [ "${?}" -eq "0" ]; then
- return 0
- else
- return 1
- fi
-}
-
-################################################################################
-# wait_for_user() #
-# #
-# Purpose: Wait for the user to respond if not a headless system #
-# #
-################################################################################
-wait_for_user()
-{
- # Wait for the user by default
- [ "${HEADLESS=0}" = "0" ] &amp;&amp; read ENTER
- return 0
-}
-
-################################################################################
-# is_true() #
-# #
-# Purpose: Utility to test if a variable is true | yes | 1 #
-# #
-################################################################################
-is_true()
-{
- [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ] || [ "$1" = "y" ] ||
- [ "$1" = "t" ]
-}
-
-# End /lib/lsb/init-functions
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="mountvirtfs" name="mountvirtfs"></a>D.3.
- /etc/rc.d/init.d/mountvirtfs
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin mountvirtfs
-#
-# Description : Ensure proc, sysfs, run, and dev are mounted
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# Xi Ruoyao - xry111@xry111.site
-#
-# Version : LFS 12.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: mountvirtfs
-# Required-Start: $first
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Mounts various special fs needed at start
-# Description: Mounts /sys and /proc virtual (kernel) filesystems.
-# Mounts /run (tmpfs) and /dev (devtmpfs).
-# This is done only if they are not already mounted.
-# with the kernel config proposed in the book, dev
-# should be automatically mounted by the kernel.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- # Make sure /run is available before logging any messages
- if ! mountpoint /run &gt;/dev/null; then
- mount /run || failed=1
- fi
-
- mkdir -p /run/lock
- chmod 1777 /run/lock
-
- log_info_msg "Mounting virtual file systems: ${INFO}/run"
-
- if ! mountpoint /proc &gt;/dev/null; then
- log_info_msg2 " ${INFO}/proc"
- mount -o nosuid,noexec,nodev /proc || failed=1
- fi
-
- if ! mountpoint /sys &gt;/dev/null; then
- log_info_msg2 " ${INFO}/sys"
- mount -o nosuid,noexec,nodev /sys || failed=1
- fi
-
- if ! mountpoint /dev &gt;/dev/null; then
- log_info_msg2 " ${INFO}/dev"
- mount -o mode=0755,nosuid /dev || failed=1
- fi
-
- mkdir -p /dev/shm
- log_info_msg2 " ${INFO}/dev/shm"
- mount -o nosuid,nodev /dev/shm || failed=1
-
- mkdir -p /sys/fs/cgroup
- log_info_msg2 " ${INFO}/sys/fs/cgroup"
- mount -o nosuid,noexec,nodev /sys/fs/cgroup || failed=1
-
- (exit ${failed})
- evaluate_retval
- if [ "${failed}" = 1 ]; then
- exit 1
- fi
-
- log_info_msg "Create symlinks in /dev targeting /proc: ${INFO}/dev/stdin"
- ln -sf /proc/self/fd/0 /dev/stdin || failed=1
-
- log_info_msg2 " ${INFO}/dev/stdout"
- ln -sf /proc/self/fd/1 /dev/stdout || failed=1
-
- log_info_msg2 " ${INFO}/dev/stderr"
- ln -sf /proc/self/fd/2 /dev/stderr || failed=1
-
- log_info_msg2 " ${INFO}/dev/fd"
- ln -sf /proc/self/fd /dev/fd || failed=1
-
- if [ -e /proc/kcore ]; then
- log_info_msg2 " ${INFO}/dev/core"
- ln -sf /proc/kcore /dev/core || failed=1
- fi
-
- (exit ${failed})
- evaluate_retval
- exit $failed
- ;;
-
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-esac
-
-# End mountvirtfs
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="modules" name="modules"></a>D.4.
- /etc/rc.d/init.d/modules
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin modules
-#
-# Description : Module auto-loading script
-#
-# Authors : Zack Winkles
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: modules
-# Required-Start: mountvirtfs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Loads required modules.
-# Description: Loads modules listed in /etc/sysconfig/modules.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-# Assure that the kernel has module support.
-[ -e /proc/modules ] || exit 0
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- # Exit if there's no modules file or there are no
- # valid entries
- [ -r /etc/sysconfig/modules ] || exit 0
- grep -E -qv '^($|#)' /etc/sysconfig/modules || exit 0
-
- log_info_msg "Loading modules:"
-
- # Only try to load modules if the user has actually given us
- # some modules to load.
-
- while read module args; do
-
- # Ignore comments and blank lines.
- case "$module" in
- ""|"#"*) continue ;;
- esac
-
- # Attempt to load the module, passing any arguments provided.
- modprobe ${module} ${args} &gt;/dev/null
-
- # Print the module name if successful, otherwise take note.
- if [ $? -eq 0 ]; then
- log_info_msg2 " ${module}"
- else
- failedmod="${failedmod} ${module}"
- fi
- done &lt; /etc/sysconfig/modules
-
- # Print a message about successfully loaded modules on the correct line.
- log_success_msg2
-
- # Print a failure message with a list of any modules that
- # may have failed to load.
- if [ -n "${failedmod}" ]; then
- log_failure_msg "Failed to load modules:${failedmod}"
- exit 1
- fi
- ;;
-
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End modules
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="udev" name="udev"></a>D.5. /etc/rc.d/init.d/udev
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin udev
-#
-# Description : Udev cold-plugging script
-#
-# Authors : Zack Winkles, Alexander E. Patrakov
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# Xi Ruoyao - xry111@xry111.site
-#
-# Version : LFS 12.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: udev $time
-# Required-Start: localnet
-# Should-Start: modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Populates /dev with device nodes.
-# Description: Mounts a tempfs on /dev and starts the udevd daemon.
-# Device nodes are created as defined by udev.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Populating /dev with device nodes... "
- if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
- log_failure_msg2
- msg="FAILURE:\n\nUnable to create "
- msg="${msg}devices without a SysFS filesystem\n\n"
- msg="${msg}After you press Enter, this system "
- msg="${msg}will be halted and powered off.\n\n"
- log_info_msg "$msg"
- log_info_msg "Press Enter to continue..."
- wait_for_user
- /etc/rc.d/init.d/halt start
- fi
-
- # Start the udev daemon to continually watch for, and act on,
- # uevents
- SYSTEMD_LOG_TARGET=kmsg /sbin/udevd --daemon
-
- # Now traverse /sys in order to "coldplug" devices that have
- # already been discovered
- /bin/udevadm trigger --action=add --type=subsystems
- /bin/udevadm trigger --action=add --type=devices
- /bin/udevadm trigger --action=change --type=devices
-
- # Now wait for udevd to process the uevents we triggered
- if ! is_true "$OMIT_UDEV_SETTLE"; then
- /bin/udevadm settle
- fi
-
- # If any LVM based partitions are on the system, ensure they
- # are activated so they can be used.
- if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y &gt;/dev/null; fi
-
- log_success_msg2
- ;;
-
- *)
- echo "Usage ${0} {start}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End udev
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="swap" name="swap"></a>D.6. /etc/rc.d/init.d/swap
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin swap
-#
-# Description : Swap Control Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: swap
-# Required-Start: udev
-# Should-Start: modules
-# Required-Stop: localnet
-# Should-Stop: $local_fs
-# Default-Start: S
-# Default-Stop: 0 6
-# Short-Description: Activates and deactivates swap partitions.
-# Description: Activates and deactivates swap partitions defined in
-# /etc/fstab.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Activating all swap files/partitions..."
- swapon -a
- evaluate_retval
- ;;
-
- stop)
- log_info_msg "Deactivating all swap files/partitions..."
- swapoff -a
- evaluate_retval
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- log_success_msg "Retrieving swap status."
- swapon -s
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End swap
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="setclock" name="setclock"></a>D.7.
- /etc/rc.d/init.d/setclock
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin setclock
-#
-# Description : Setting Linux Clock
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides:
-# Required-Start:
-# Should-Start: modules
-# Required-Stop:
-# Should-Stop: $syslog
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Stores and restores time from the hardware clock
-# Description: On boot, system time is obtained from hwclock. The
-# hardware clock can also be set on shutdown.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-[ -r /etc/sysconfig/clock ] &amp;&amp; . /etc/sysconfig/clock
-
-
-case "${UTC}" in
- yes|true|1)
- CLOCKPARAMS="${CLOCKPARAMS} --utc"
- ;;
-
- no|false|0)
- CLOCKPARAMS="${CLOCKPARAMS} --localtime"
- ;;
-
-esac
-
-case ${1} in
- start)
- hwclock --hctosys ${CLOCKPARAMS} &gt;/dev/null
- ;;
-
- stop)
- log_info_msg "Setting hardware clock..."
- hwclock --systohc ${CLOCKPARAMS} &gt;/dev/null
- evaluate_retval
- ;;
-
- *)
- echo "Usage: ${0} {start|stop}"
- exit 1
- ;;
-
-esac
-
-exit 0
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="checkfs" name="checkfs"></a>D.8.
- /etc/rc.d/init.d/checkfs
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin checkfs
-#
-# Description : File System Check
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# A. Luebke - luebke@users.sourceforge.net
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Based on checkfs script from LFS-3.1 and earlier.
-#
-# From man fsck
-# 0 - No errors
-# 1 - File system errors corrected
-# 2 - System should be rebooted
-# 4 - File system errors left uncorrected
-# 8 - Operational error
-# 16 - Usage or syntax error
-# 32 - Fsck canceled by user request
-# 128 - Shared library error
-#
-#########################################################################
-
-### BEGIN INIT INFO
-# Provides: checkfs
-# Required-Start: udev swap
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Checks local filesystems before mounting.
-# Description: Checks local filesystems before mounting.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- if [ -f /fastboot ]; then
- msg="/fastboot found, will omit "
- msg="${msg} file system checks as requested.\n"
- log_info_msg "${msg}"
- exit 0
- fi
-
- log_info_msg "Mounting root file system in read-only mode... "
- mount -n -o remount,ro / &gt;/dev/null
-
- if [ ${?} != 0 ]; then
- log_failure_msg2
- msg="\n\nCannot check root "
- msg="${msg}filesystem because it could not be mounted "
- msg="${msg}in read-only mode.\n\n"
- msg="${msg}After you press Enter, this system will be "
- msg="${msg}halted and powered off.\n\n"
- log_failure_msg "${msg}"
-
- log_info_msg "Press Enter to continue..."
- wait_for_user
- /etc/rc.d/init.d/halt start
- else
- log_success_msg2
- fi
-
- if [ -f /forcefsck ]; then
- msg="/forcefsck found, forcing file"
- msg="${msg} system checks as requested."
- log_success_msg "$msg"
- options="-f"
- else
- options=""
- fi
-
- log_info_msg "Checking file systems..."
- # Note: -a option used to be -p; but this fails e.g. on fsck.minix
- if is_true "$VERBOSE_FSCK"; then
- fsck ${options} -a -A -C -T
- else
- fsck ${options} -a -A -C -T &gt;/dev/null
- fi
-
- error_value=${?}
-
- if [ "${error_value}" = 0 ]; then
- log_success_msg2
- fi
-
- if [ "${error_value}" = 1 ]; then
- msg="\nWARNING:\n\nFile system errors "
- msg="${msg}were found and have been corrected.\n"
- msg="${msg} You may want to double-check that "
- msg="${msg}everything was fixed properly."
- log_warning_msg "$msg"
- fi
-
- if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
- msg="\nWARNING:\n\nFile system errors "
- msg="${msg}were found and have been "
- msg="${msg}corrected, but the nature of the "
- msg="${msg}errors require this system to be rebooted.\n\n"
- msg="${msg}After you press enter, "
- msg="${msg}this system will be rebooted\n\n"
- log_failure_msg "$msg"
-
- log_info_msg "Press Enter to continue..."
- wait_for_user
- reboot -f
- fi
-
- if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then
- msg="\nFAILURE:\n\nFile system errors "
- msg="${msg}were encountered that could not be "
- msg="${msg}fixed automatically.\nThis system "
- msg="${msg}cannot continue to boot and will "
- msg="${msg}therefore be halted until those "
- msg="${msg}errors are fixed manually by a "
- msg="${msg}System Administrator.\n\n"
- msg="${msg}After you press Enter, this system will be "
- msg="${msg}halted and powered off.\n\n"
- log_failure_msg "$msg"
-
- log_info_msg "Press Enter to continue..."
- wait_for_user
- /etc/rc.d/init.d/halt start
- fi
-
- if [ "${error_value}" -ge 16 ]; then
- msg="FAILURE:\n\nUnexpected failure "
- msg="${msg}running fsck. Exited with error "
- msg="${msg} code: ${error_value}.\n"
- log_info_msg $msg
- exit ${error_value}
- fi
-
- exit 0
- ;;
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-esac
-
-# End checkfs
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="mountfs" name="mountfs"></a>D.9.
- /etc/rc.d/init.d/mountfs
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin mountfs
-#
-# Description : File System Mount Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: $local_fs
-# Required-Start: udev checkfs
-# Should-Start: modules
-# Required-Stop: localnet
-# Should-Stop:
-# Default-Start: S
-# Default-Stop: 0 6
-# Short-Description: Mounts/unmounts local filesystems defined in /etc/fstab.
-# Description: Remounts root filesystem read/write and mounts all
-# remaining local filesystems defined in /etc/fstab on
-# start. Remounts root filesystem read-only and unmounts
-# remaining filesystems on stop.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Remounting root file system in read-write mode..."
- mount --options remount,rw / &gt;/dev/null
- evaluate_retval
-
- # Remove fsck-related file system watermarks.
- rm -f /fastboot /forcefsck
-
- # Make sure /dev/pts exists
- mkdir -p /dev/pts
-
- # This will mount all filesystems that do not have _netdev in
- # their option list. _netdev denotes a network filesystem.
-
- log_info_msg "Mounting remaining file systems..."
- failed=0
- mount --all --test-opts no_netdev &gt;/dev/null || failed=1
- evaluate_retval
- exit $failed
- ;;
-
- stop)
- # Don't unmount virtual file systems like /run
- log_info_msg "Unmounting all other currently mounted file systems..."
- # Ensure any loop devices are removed
- losetup -D
- umount --all --detach-loop --read-only \
- --types notmpfs,nosysfs,nodevtmpfs,noproc,nodevpts &gt;/dev/null
- evaluate_retval
-
- # Make sure / is mounted read only (umount bug)
- mount --options remount,ro /
-
- # Make all LVM volume groups unavailable, if appropriate
- # This fails if swap or / are on an LVM partition
- #if [ -x /sbin/vgchange ]; then /sbin/vgchange -an &gt; /dev/null; fi
- if [ -r /etc/mdadm.conf ]; then
- log_info_msg "Mark arrays as clean..."
- mdadm --wait-clean --scan
- evaluate_retval
- fi
- ;;
-
- *)
- echo "Usage: ${0} {start|stop}"
- exit 1
- ;;
-esac
-
-# End mountfs
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="udev_retry" name="udev_retry"></a>D.10.
- /etc/rc.d/init.d/udev_retry
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin udev_retry
-#
-# Description : Udev cold-plugging script (retry)
-#
-# Authors : Alexander E. Patrakov
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# Bryan Kadzban -
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: udev_retry
-# Required-Start: udev
-# Should-Start: $local_fs cleanfs
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Replays failed uevents and creates additional devices.
-# Description: Replays any failed uevents that were skipped due to
-# slow hardware initialization, and creates those needed
-# device nodes
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Retrying failed uevents, if any..."
-
- rundir=/run/udev
- # From Debian: "copy the rules generated before / was mounted
- # read-write":
-
- for file in ${rundir}/tmp-rules--*; do
- dest=${file##*tmp-rules--}
- [ "$dest" = '*' ] &amp;&amp; break
- cat $file &gt;&gt; /etc/udev/rules.d/$dest
- rm -f $file
- done
-
- # Re-trigger the uevents that may have failed,
- # in hope they will succeed now
- /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \
- while read line ; do
- for subsystem in $line ; do
- /bin/udevadm trigger --subsystem-match=$subsystem --action=add
- done
- done
-
- # Now wait for udevd to process the uevents we triggered
- if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then
- /bin/udevadm settle
- fi
-
- evaluate_retval
- ;;
-
- *)
- echo "Usage ${0} {start}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End udev_retry
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="cleanfs" name="cleanfs"></a>D.11.
- /etc/rc.d/init.d/cleanfs
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin cleanfs
-#
-# Description : Clean file system
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: cleanfs
-# Required-Start: $local_fs
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Cleans temporary directories early in the boot process.
-# Description: Cleans temporary directories /run, /var/lock, and
-# optionally, /tmp. cleanfs also creates /run/utmp
-# and any files defined in /etc/sysconfig/createfiles.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Function to create files/directory on boot.
-create_files()
-{
- # Input to file descriptor 9 and output to stdin (redirection)
- exec 9&gt;&amp;0 &lt; /etc/sysconfig/createfiles
-
- while read name type perm usr grp dtype maj min junk
- do
- # Ignore comments and blank lines.
- case "${name}" in
- ""|\#*) continue ;;
- esac
-
- # Ignore existing files.
- if [ ! -e "${name}" ]; then
- # Create stuff based on its type.
- case "${type}" in
- dir)
- mkdir "${name}"
- ;;
- file)
- :&gt; "${name}"
- ;;
- dev)
- case "${dtype}" in
- char)
- mknod "${name}" c ${maj} ${min}
- ;;
- block)
- mknod "${name}" b ${maj} ${min}
- ;;
- pipe)
- mknod "${name}" p
- ;;
- *)
- log_warning_msg "\nUnknown device type: ${dtype}"
- ;;
- esac
- ;;
- *)
- log_warning_msg "\nUnknown type: ${type}"
- continue
- ;;
- esac
-
- # Set up the permissions, too.
- chown ${usr}:${grp} "${name}"
- chmod ${perm} "${name}"
- fi
- done
-
- # Close file descriptor 9 (end redirection)
- exec 0&gt;&amp;9 9&gt;&amp;-
- return 0
-}
-
-case "${1}" in
- start)
- log_info_msg "Cleaning file systems:"
-
- if [ "${SKIPTMPCLEAN}" = "" ]; then
- log_info_msg2 " /tmp"
- cd /tmp &amp;&amp;
- find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
- fi
-
- &gt; /run/utmp
-
- if grep -q '^utmp:' /etc/group ; then
- chmod 664 /run/utmp
- chgrp utmp /run/utmp
- fi
-
- (exit ${failed})
- evaluate_retval
-
- if grep -E -qv '^(#|$)' /etc/sysconfig/createfiles 2&gt;/dev/null; then
- log_info_msg "Creating files and directories... "
- create_files # Always returns 0
- evaluate_retval
- fi
-
- exit $failed
- ;;
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-esac
-
-# End cleanfs
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="console" name="console"></a>D.12.
- /etc/rc.d/init.d/console
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin console
-#
-# Description : Sets keymap and screen font
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# Alexander E. Patrakov
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: console
-# Required-Start: $local_fs
-# Should-Start: udev_retry
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Sets up a localised console.
-# Description: Sets up fonts and language settings for the user's
-# local as defined by /etc/sysconfig/console.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-# Native English speakers probably don't have /etc/sysconfig/console at all
-[ -r /etc/sysconfig/console ] &amp;&amp; . /etc/sysconfig/console
-
-failed=0
-
-case "${1}" in
- start)
- # See if we need to do anything
- if [ -z "${KEYMAP}" ] &amp;&amp; [ -z "${KEYMAP_CORRECTIONS}" ] &amp;&amp;
- [ -z "${FONT}" ] &amp;&amp; [ -z "${LEGACY_CHARSET}" ] &amp;&amp;
- ! is_true "${UNICODE}"; then
- exit 0
- fi
-
- # There should be no bogus failures below this line!
- log_info_msg "Setting up Linux console..."
-
- # Figure out if a framebuffer console is used
- [ -d /sys/class/graphics/fb0 ] &amp;&amp; use_fb=1 || use_fb=0
-
- # Figure out the command to set the console into the
- # desired mode
- is_true "${UNICODE}" &amp;&amp;
- MODE_COMMAND="echo -en '\033%G' &amp;&amp; kbd_mode -u" ||
- MODE_COMMAND="echo -en '\033%@\033(K' &amp;&amp; kbd_mode -a"
-
- # On framebuffer consoles, font has to be set for each vt in
- # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.
-
- ! is_true "${use_fb}" || [ -z "${FONT}" ] ||
- MODE_COMMAND="${MODE_COMMAND} &amp;&amp; setfont ${FONT}"
-
- # Apply that command to all consoles mentioned in
- # /etc/inittab. Important: in the UTF-8 mode this should
- # happen before setfont, otherwise a kernel bug will
- # show up and the unicode map of the font will not be
- # used.
-
- for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab |
- grep -o '\btty[[:digit:]]*\b'`
- do
- openvt -f -w -c ${TTY#tty} -- \
- /bin/sh -c "${MODE_COMMAND}" || failed=1
- done
-
- # Set the font (if not already set above) and the keymap
- [ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || failed=1
-
- [ -z "${KEYMAP}" ] ||
- loadkeys ${KEYMAP} &gt;/dev/null 2&gt;&amp;1 ||
- failed=1
-
- [ -z "${KEYMAP_CORRECTIONS}" ] ||
- loadkeys ${KEYMAP_CORRECTIONS} &gt;/dev/null 2&gt;&amp;1 ||
- failed=1
-
- # Convert the keymap from $LEGACY_CHARSET to UTF-8
- [ -z "$LEGACY_CHARSET" ] ||
- dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u &gt;/dev/null 2&gt;&amp;1 ||
- failed=1
-
- # If any of the commands above failed, the trap at the
- # top would set $failed to 1
- ( exit $failed )
- evaluate_retval
-
- exit $failed
- ;;
-
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-esac
-
-# End console
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="localnet" name="localnet"></a>D.13.
- /etc/rc.d/init.d/localnet
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin localnet
-#
-# Description : Loopback device
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: localnet
-# Required-Start: mountvirtfs
-# Should-Start: modules
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop: 0 6
-# Short-Description: Starts the local network.
-# Description: Sets the hostname of the machine and starts the
-# loopback interface.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-[ -r /etc/sysconfig/network ] &amp;&amp; . /etc/sysconfig/network
-[ -r /etc/hostname ] &amp;&amp; HOSTNAME=`cat /etc/hostname`
-
-case "${1}" in
- start)
- log_info_msg "Bringing up the loopback interface..."
- ip addr add 127.0.0.1/8 label lo dev lo
- ip link set lo up
- evaluate_retval
-
- log_info_msg "Setting hostname to ${HOSTNAME}..."
- hostname ${HOSTNAME}
- evaluate_retval
- ;;
-
- stop)
- log_info_msg "Bringing down the loopback interface..."
- ip link set lo down
- evaluate_retval
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- echo "Hostname is: $(hostname)"
- ip link show lo
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End localnet
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="sysctlscript" name="sysctlscript"></a>D.14.
- /etc/rc.d/init.d/sysctl
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin sysctl
-#
-# Description : File uses /etc/sysctl.conf to set kernel runtime
-# parameters
-#
-# Authors : Nathan Coulson (nathan AT linuxfromscratch D0T org)
-# Matthew Burgress (matthew AT linuxfromscratch D0T org)
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: sysctl
-# Required-Start: mountvirtfs
-# Should-Start: console
-# Required-Stop:
-# Should-Stop:
-# Default-Start: S
-# Default-Stop:
-# Short-Description: Makes changes to the proc filesystem
-# Description: Makes changes to the proc filesystem as defined in
-# /etc/sysctl.conf. See 'man sysctl(8)'.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- if [ -f "/etc/sysctl.conf" ]; then
- log_info_msg "Setting kernel runtime parameters..."
- sysctl -q -p
- evaluate_retval
- fi
- ;;
-
- status)
- sysctl -a
- ;;
-
- *)
- echo "Usage: ${0} {start|status}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End sysctl
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="sysklogd" name="sysklogd"></a>D.15.
- /etc/rc.d/init.d/sysklogd
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin sysklogd
-#
-# Description : Sysklogd loader
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: $syslog
-# Required-Start: $first localnet
-# Should-Start:
-# Required-Stop: $local_fs
-# Should-Stop: sendsignals
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Starts kernel and system log daemons.
-# Description: Starts kernel and system log daemons.
-# /etc/fstab.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Starting system log daemon..."
- parms=${SYSKLOGD_PARMS-'-m 0'}
- start_daemon /sbin/syslogd $parms
- evaluate_retval
-
- log_info_msg "Starting kernel log daemon..."
- start_daemon /sbin/klogd
- evaluate_retval
- ;;
-
- stop)
- log_info_msg "Stopping kernel log daemon..."
- killproc /sbin/klogd
- evaluate_retval
-
- log_info_msg "Stopping system log daemon..."
- killproc /sbin/syslogd
- evaluate_retval
- ;;
-
- reload)
- log_info_msg "Reloading system log daemon config file..."
- pid=`pidofproc syslogd`
- kill -HUP "${pid}"
- evaluate_retval
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- statusproc /sbin/syslogd
- statusproc klogd
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|reload|restart|status}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End sysklogd
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="network" name="network"></a>D.16.
- /etc/rc.d/init.d/network
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin network
-#
-# Description : Network Control Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# Nathan Coulson - nathan AT linuxfromscratch D0T org
-# Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: $network
-# Required-Start: $local_fs localnet swap
-# Should-Start: $syslog firewalld iptables nftables
-# Required-Stop: $local_fs localnet swap
-# Should-Stop: $syslog firewalld iptables nftables
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Starts and configures network interfaces.
-# Description: Starts and configures network interfaces.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-case "${1}" in
- start)
- # if the default route exists, network is already configured
- if ip route | grep -q "^default"; then return 0; fi
- # Start all network interfaces
- for file in /etc/sysconfig/ifconfig.*
- do
- interface=${file##*/ifconfig.}
-
- # Skip if $file is * (because nothing was found)
- if [ "${interface}" = "*" ]; then continue; fi
-
- /sbin/ifup ${interface}
- done
- ;;
-
- stop)
- # Unmount any network mounted file systems
- umount --all --force --types nfs,cifs,nfs4
-
- # Reverse list
- net_files=""
- for file in /etc/sysconfig/ifconfig.*
- do
- net_files="${file} ${net_files}"
- done
-
- # Stop all network interfaces
- for file in ${net_files}
- do
- interface=${file##*/ifconfig.}
-
- # Skip if $file is * (because nothing was found)
- if [ "${interface}" = "*" ]; then continue; fi
-
- # See if interface exists
- if [ ! -e /sys/class/net/$interface ]; then continue; fi
-
- # Is interface UP?
- ip link show $interface 2&gt;/dev/null | grep -q "state UP"
- if [ $? -ne 0 ]; then continue; fi
-
- /sbin/ifdown ${interface}
- done
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End network
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="sendsignals" name="sendsignals"></a>D.17.
- /etc/rc.d/init.d/sendsignals
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin sendsignals
-#
-# Description : Sendsignals Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: sendsignals
-# Required-Start:
-# Should-Start:
-# Required-Stop: $local_fs swap localnet
-# Should-Stop:
-# Default-Start:
-# Default-Stop: 0 6
-# Short-Description: Attempts to kill remaining processes.
-# Description: Attempts to kill remaining processes.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- stop)
- omit=$(pidof mdmon)
- [ -n "$omit" ] &amp;&amp; omit="-o $omit"
-
- log_info_msg "Sending all processes the TERM signal..."
- killall5 -15 $omit
- error_value=${?}
-
- sleep ${KILLDELAY}
-
- if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
- log_success_msg
- else
- log_failure_msg
- fi
-
- log_info_msg "Sending all processes the KILL signal..."
- killall5 -9 $omit
- error_value=${?}
-
- sleep ${KILLDELAY}
-
- if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
- log_success_msg
- else
- log_failure_msg
- fi
- ;;
-
- *)
- echo "Usage: ${0} {stop}"
- exit 1
- ;;
-
-esac
-
-exit 0
-
-# End sendsignals
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="rebootscript" name="rebootscript"></a>D.18.
- /etc/rc.d/init.d/reboot
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin reboot
-#
-# Description : Reboot Scripts
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Updates : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# : Pierre Labastie - pierre AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Notes : Update March 24th, 2022: change "stop" to "start".
-# Add the $last facility to Required-start
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: reboot
-# Required-Start: $last
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: 6
-# Default-Stop:
-# Short-Description: Reboots the system.
-# Description: Reboots the System.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Restarting system..."
- reboot -d -f -i
- ;;
-
- *)
- echo "Usage: ${0} {start}"
- exit 1
- ;;
-
-esac
-
-# End reboot
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="haltscript" name="haltscript"></a>D.19.
- /etc/rc.d/init.d/halt
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin halt
-#
-# Description : Halt Script
-#
-# Authors : Gerard Beekmans - gerard AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# : Pierre Labastie - pierre AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Notes : Update March 24th, 2022: change "stop" to "start".
-# Add the $last facility to Required-start
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: halt
-# Required-Start: $last
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start: 0
-# Default-Stop:
-# Short-Description: Halts the system.
-# Description: Halts the System.
-# X-LFS-Provided-By: LFS
-### END INIT INFO
-
-case "${1}" in
- start)
- halt -d -f -i -p
- ;;
-
- *)
- echo "Usage: {start}"
- exit 1
- ;;
-esac
-
-# End halt
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="template" name="template"></a>D.20.
- /etc/rc.d/init.d/template
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin scriptname
-#
-# Description :
-#
-# Authors :
-#
-# Version : LFS x.x
-#
-# Notes :
-#
-########################################################################
-
-### BEGIN INIT INFO
-# Provides: template
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Should-Stop:
-# Default-Start:
-# Default-Stop:
-# Short-Description:
-# Description:
-# X-LFS-Provided-By:
-### END INIT INFO
-
-. /lib/lsb/init-functions
-
-case "${1}" in
- start)
- log_info_msg "Starting..."
- # if it is possible to use start_daemon
- start_daemon fully_qualified_path
- # if it is not possible to use start_daemon
- # (command to start the daemon is not simple enough)
- if ! pidofproc daemon_name_as_reported_by_ps &gt;/dev/null; then
- command_to_start_the_service
- fi
- evaluate_retval
- ;;
-
- stop)
- log_info_msg "Stopping..."
- # if it is possible to use killproc
- killproc fully_qualified_path
- # if it is not possible to use killproc
- # (the daemon shouldn't be stopped by killing it)
- if pidofproc daemon_name_as_reported_by_ps &gt;/dev/null; then
- command_to_stop_the_service
- fi
- evaluate_retval
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart}"
- exit 1
- ;;
-esac
-
-exit 0
-
-# End scriptname
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="modulessys" name="modulessys"></a>D.21.
- /etc/sysconfig/modules
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class=
- "screen">########################################################################
-# Begin /etc/sysconfig/modules
-#
-# Description : Module auto-loading configuration
-#
-# Authors :
-#
-# Version : 00.00
-#
-# Notes : The syntax of this file is as follows:
-# &lt;module&gt; [&lt;arg1&gt; &lt;arg2&gt; ...]
-#
-# Each module should be on its own line, and any options that you want
-# passed to the module should follow it. The line deliminator is either
-# a space or a tab.
-########################################################################
-
-# End /etc/sysconfig/modules
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="createfiles" name="createfiles"></a>D.22.
- /etc/sysconfig/createfiles
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class=
- "screen">########################################################################
-# Begin /etc/sysconfig/createfiles
-#
-# Description : Createfiles script config file
-#
-# Authors :
-#
-# Version : 00.00
-#
-# Notes : The syntax of this file is as follows:
-# if type is equal to "file" or "dir"
-# &lt;filename&gt; &lt;type&gt; &lt;permissions&gt; &lt;user&gt; &lt;group&gt;
-# if type is equal to "dev"
-# &lt;filename&gt; &lt;type&gt; &lt;permissions&gt; &lt;user&gt; &lt;group&gt; &lt;devtype&gt;
-# &lt;major&gt; &lt;minor&gt;
-#
-# &lt;filename&gt; is the name of the file which is to be created
-# &lt;type&gt; is either file, dir, or dev.
-# file creates a new file
-# dir creates a new directory
-# dev creates a new device
-# &lt;devtype&gt; is either block, char or pipe
-# block creates a block device
-# char creates a character device
-# pipe creates a pipe, this will ignore the &lt;major&gt; and
-# &lt;minor&gt; fields
-# &lt;major&gt; and &lt;minor&gt; are the major and minor numbers used for
-# the device.
-########################################################################
-
-# End /etc/sysconfig/createfiles
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="config-udev-retry" name=
- "config-udev-retry"></a>D.23. /etc/sysconfig/udev-retry
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class=
- "screen">########################################################################
-# Begin /etc/sysconfig/udev_retry
-#
-# Description : udev_retry script configuration
-#
-# Authors :
-#
-# Version : 00.00
-#
-# Notes : Each subsystem that may need to be re-triggered after mountfs
-# runs should be listed in this file. Probable subsystems to be
-# listed here are rtc (due to /var/lib/hwclock/adjtime) and sound
-# (due to both /var/lib/alsa/asound.state and /usr/sbin/alsactl).
-# Entries are whitespace-separated.
-########################################################################
-
-rtc
-
-# End /etc/sysconfig/udev_retry
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ifup" name="ifup"></a>D.24. /sbin/ifup
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin /sbin/ifup
-#
-# Description : Interface Up
-#
-# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org
-# Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-#
-# Version : LFS 7.7
-#
-# Notes : The IFCONFIG variable is passed to the SERVICE script
-# in the /lib/services directory, to indicate what file the
-# service should source to get interface specifications.
-#
-########################################################################
-
-up()
-{
- log_info_msg "Bringing up the ${1} interface..."
-
- if ip link show $1 &gt; /dev/null 2&gt;&amp;1; then
- link_status=`ip link show $1`
-
- if [ -n "${link_status}" ]; then
- if ! echo "${link_status}" | grep -q UP; then
- ip link set $1 up
- fi
- fi
-
- else
- log_failure_msg "Interface ${IFACE} doesn't exist."
- exit 1
- fi
-
- evaluate_retval
-}
-
-RELEASE="7.7"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifup, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
- case "$1" in
- --help | -h) help="y"; break ;;
-
- --version | -V) echo "${VERSTR}"; exit 0 ;;
-
- -*) echo "ifup: ${1}: invalid option" &gt;&amp;2
- echo "${USAGE}" &gt;&amp; 2
- exit 2 ;;
-
- *) break ;;
- esac
-done
-
-if [ -n "$help" ]; then
- echo "${VERSTR}"
- echo "${USAGE}"
- echo
- cat &lt;&lt; HERE_EOF
-ifup is used to bring up a network interface. The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
- exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
- log_failure_msg "Unable to bring up ${1} interface! ${file} is missing or cannot be accessed."
- exit 1
-fi
-
-. $file
-
-if [ "$IFACE" = "" ]; then
- log_failure_msg "Unable to bring up ${1} interface! ${file} does not define an interface [IFACE]."
- exit 1
-fi
-
-# Do not process this service if started by boot, and ONBOOT
-# is not set to yes
-if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
- exit 0
-fi
-
-# Bring up the interface
-if [ "$VIRTINT" != "yes" ]; then
- up ${IFACE}
-fi
-
-for S in ${SERVICE}; do
- if [ ! -x "/lib/services/${S}" ]; then
- MSG="\nUnable to process ${file}. Either "
- MSG="${MSG}the SERVICE '${S} was not present "
- MSG="${MSG}or cannot be executed."
- log_failure_msg "$MSG"
- exit 1
- fi
-done
-
-if [ "${SERVICE}" = "wpa" ]; then log_success_msg; fi
-
-# Create/configure the interface
-for S in ${SERVICE}; do
- IFCONFIG=${file} /lib/services/${S} ${IFACE} up
-done
-
-# Set link up virtual interfaces
-if [ "${VIRTINT}" == "yes" ]; then
- up ${IFACE}
-fi
-
-# Bring up any additional interface components
-for I in $INTERFACE_COMPONENTS; do up $I; done
-
-# Set MTU if requested. Check if MTU has a "good" value.
-if test -n "${MTU}"; then
- if [[ ${MTU} =~ ^[0-9]+$ ]] &amp;&amp; [[ $MTU -ge 68 ]] ; then
- for I in $IFACE $INTERFACE_COMPONENTS; do
- ip link set dev $I mtu $MTU;
- done
- else
- log_info_msg2 "Invalid MTU $MTU"
- fi
-fi
-
-# Set the route default gateway if requested
-if [ -n "${GATEWAY}" ]; then
- if ip route | grep -q default; then
- log_warning_msg "Gateway already setup; skipping."
- else
- log_info_msg "Adding default gateway ${GATEWAY} to the ${IFACE} interface..."
- ip route add default via ${GATEWAY} dev ${IFACE}
- evaluate_retval
- fi
-fi
-
-# End /sbin/ifup
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ifdown" name="ifdown"></a>D.25. /sbin/ifdown
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/bash
-########################################################################
-# Begin /sbin/ifdown
-#
-# Description : Interface Down
-#
-# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org
-# Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-# Notes : the IFCONFIG variable is passed to the scripts found
-# in the /lib/services directory, to indicate what file the
-# service should source to get interface specifications.
-#
-########################################################################
-
-RELEASE="7.0"
-
-USAGE="Usage: $0 [ -hV ] [--help] [--version] interface"
-VERSTR="LFS ifdown, version ${RELEASE}"
-
-while [ $# -gt 0 ]; do
- case "$1" in
- --help | -h) help="y"; break ;;
-
- --version | -V) echo "${VERSTR}"; exit 0 ;;
-
- -*) echo "ifup: ${1}: invalid option" &gt;&amp;2
- echo "${USAGE}" &gt;&amp; 2
- exit 2 ;;
-
- *) break ;;
- esac
-done
-
-if [ -n "$help" ]; then
- echo "${VERSTR}"
- echo "${USAGE}"
- echo
- cat &lt;&lt; HERE_EOF
-ifdown is used to bring down a network interface. The interface
-parameter, e.g. eth0 or eth0:2, must match the trailing part of the
-interface specifications file, e.g. /etc/sysconfig/ifconfig.eth0:2.
-
-HERE_EOF
- exit 0
-fi
-
-file=/etc/sysconfig/ifconfig.${1}
-
-# Skip backup files
-[ "${file}" = "${file%""~""}" ] || exit 0
-
-. /lib/lsb/init-functions
-
-if [ ! -r "${file}" ]; then
- log_warning_msg "${file} is missing or cannot be accessed."
- exit 1
-fi
-
-. ${file}
-
-if [ "$IFACE" = "" ]; then
- log_failure_msg "${file} does not define an interface [IFACE]."
- exit 1
-fi
-
-# We only need to first service to bring down the interface
-S=`echo ${SERVICE} | cut -f1 -d" "`
-
-if ip link show ${IFACE} &gt; /dev/null 2&gt;&amp;1; then
- if [ -n "${S}" -a -x "/lib/services/${S}" ]; then
- IFCONFIG=${file} /lib/services/${S} ${IFACE} down
- else
- MSG="Unable to process ${file}. Either "
- MSG="${MSG}the SERVICE variable was not set "
- MSG="${MSG}or the specified service cannot be executed."
- log_failure_msg "$MSG"
- exit 1
- fi
-else
- log_warning_msg "Interface ${1} doesn't exist."
-fi
-
-# Leave the interface up if there are additional interfaces in the device
-link_status=`ip link show ${IFACE} 2&gt;/dev/null`
-
-if [ -n "${link_status}" ]; then
- if [ "$(echo "${link_status}" | grep UP)" != "" ]; then
- if [ "$(ip addr show ${IFACE} | grep 'inet ')" == "" ]; then
- log_info_msg "Bringing down the ${IFACE} interface..."
- ip link set ${IFACE} down
- evaluate_retval
- fi
- fi
-fi
-
-# End /sbin/ifdown
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ipv4static" name="ipv4static"></a>D.26.
- /lib/services/ipv4-static
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static
-#
-# Description : IPV4 Static Boot Script
-#
-# Authors : Nathan Coulson - nathan AT linuxfromscratch D0T org
-# Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-if [ -z "${IP}" ]; then
- log_failure_msg "\nIP variable missing from ${IFCONFIG}, cannot continue."
- exit 1
-fi
-
-if [ -z "${PREFIX}" -a -z "${PEER}" ]; then
- log_warning_msg "\nPREFIX variable missing from ${IFCONFIG}, assuming 24."
- PREFIX=24
- args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then
- log_failure_msg "\nPREFIX and PEER both specified in ${IFCONFIG}, cannot continue."
- exit 1
-
-elif [ -n "${PREFIX}" ]; then
- args="${args} ${IP}/${PREFIX}"
-
-elif [ -n "${PEER}" ]; then
- args="${args} ${IP} peer ${PEER}"
-fi
-
-if [ -n "${LABEL}" ]; then
- args="${args} label ${LABEL}"
-fi
-
-if [ -n "${BROADCAST}" ]; then
- args="${args} broadcast ${BROADCAST}"
-fi
-
-case "${2}" in
- up)
- if [ "$(ip addr show ${1} 2&gt;/dev/null | grep ${IP}/)" = "" ]; then
- log_info_msg "Adding IPv4 address ${IP} to the ${1} interface..."
- ip addr add ${args} dev ${1}
- evaluate_retval
- else
- log_warning_msg "Cannot add IPv4 address ${IP} to ${1}. Already present."
- fi
- ;;
-
- down)
- if [ "$(ip addr show ${1} 2&gt;/dev/null | grep ${IP}/)" != "" ]; then
- log_info_msg "Removing IPv4 address ${IP} from the ${1} interface..."
- ip addr del ${args} dev ${1}
- evaluate_retval
- fi
-
- if [ -n "${GATEWAY}" ]; then
- # Only remove the gateway if there are no remaining ipv4 addresses
- if [ "$(ip addr show ${1} 2&gt;/dev/null | grep 'inet ')" != "" ]; then
- log_info_msg "Removing default gateway..."
- ip route del default
- evaluate_retval
- fi
- fi
- ;;
-
- *)
- echo "Usage: ${0} [interface] {up|down}"
- exit 1
- ;;
-esac
-
-# End /lib/services/ipv4-static
-</pre>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="ipv4route" name="ipv4route"></a>D.27.
- /lib/services/ipv4-static-route
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class="screen">#!/bin/sh
-########################################################################
-# Begin /lib/services/ipv4-static-route
-#
-# Description : IPV4 Static Route Script
-#
-# Authors : Kevin P. Fleming - kpfleming@linuxfromscratch.org
-# DJ Lucas - dj AT linuxfromscratch D0T org
-# Update : Bruce Dubbs - bdubbs AT linuxfromscratch D0T org
-#
-# Version : LFS 7.0
-#
-########################################################################
-
-. /lib/lsb/init-functions
-. ${IFCONFIG}
-
-case "${TYPE}" in
- ("" | "network")
- need_ip=1
- need_gateway=1
- ;;
-
- ("default")
- need_gateway=1
- args="${args} default"
- desc="default"
- ;;
-
- ("host")
- need_ip=1
- ;;
-
- ("unreachable")
- need_ip=1
- args="${args} unreachable"
- desc="unreachable "
- ;;
-
- (*)
- log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue."
- exit 1
- ;;
-esac
-
-if [ -n "${GATEWAY}" ]; then
- MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n"
- log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue"
- exit 1
-fi
-
-if [ -n "${need_ip}" ]; then
- if [ -z "${IP}" ]; then
- log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue."
- exit 1
- fi
-
- if [ -z "${PREFIX}" ]; then
- log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
- exit 1
- fi
-
- args="${args} ${IP}/${PREFIX}"
- desc="${desc}${IP}/${PREFIX}"
-fi
-
-if [ -n "${need_gateway}" ]; then
- if [ -z "${STATIC_GATEWAY}" ]; then
- log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot continue."
- exit 1
- fi
- args="${args} via ${STATIC_GATEWAY}"
-fi
-
-if [ -n "${SOURCE}" ]; then
- args="${args} src ${SOURCE}"
-fi
-
-case "${2}" in
- up)
- log_info_msg "Adding '${desc}' route to the ${1} interface..."
- ip route add ${args} dev ${1}
- evaluate_retval
- ;;
-
- down)
- log_info_msg "Removing '${desc}' route from the ${1} interface..."
- ip route del ${args} dev ${1}
- evaluate_retval
- ;;
-
- *)
- echo "Usage: ${0} [interface] {up|down}"
- exit 1
- ;;
-esac
-
-# End /lib/services/ipv4-static-route
-</pre>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="rules" name="rules"></a>Приложение E. Правила
- настройки Udev
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <p>
- Правила в этом приложении перечислены для удобства. Установка
- обычно выполняются с помощью инструкций приведенных в <a class=
- "xref" href="#ch-system-udev" title=
- "8.75. Udev из Systemd-255">Раздел&nbsp;8.75, «Udev из
- Systemd-255»</a>.
- </p>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="lfsrules" name="lfsrules"></a>E.1. 55-lfs.rules
- </h2>
- </div>
- </div>
- </div>
- <div class="wrap" lang="ru" xml:lang="ru">
- <pre class=
- "screen"># /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS.
-
-# Core kernel devices
-
-# This causes the system clock to be set as soon as /dev/rtc becomes available.
-SUBSYSTEM=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-KERNEL=="rtc", ACTION=="add", MODE="0644", RUN+="/etc/rc.d/init.d/setclock start"
-
-</pre>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="Licenses" name="Licenses"></a>Приложение F. Лицензии
- LFS
- </h2>
- </div>
- </div>
- </div>
- <div class="appendix">
- <p>
- Настоящая книга распространяется на условиях лицензии Creative
- Commons Attribution-NonCommercial-ShareAlike 2.0 License.
- </p>
- <p>
- Инструкции, предназначенные для использования на компьютере,
- могут использоваться отдельно от книги на условиях лицензии MIT.
- </p>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="CC" name="CC"></a>F.1. Лицензия Creative Commons
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p class="title">
- Creative Commons Legal Code
- </p>
- <p class="title">
- Attribution-NonCommercial-ShareAlike 2.0
- </p>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT
- PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT
- CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS
- PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE
- COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
- PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
- ITS USE.
- </p>
- </div>
- <p class="title">
- License
- </p>
- <p>
- THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
- CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK
- IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE
- OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR
- COPYRIGHT LAW IS PROHIBITED.
- </p>
- <p>
- BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT
- AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE
- LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION
- OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- Definitions
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- "Collective Work" means a work, such as a
- periodical issue, anthology or encyclopedia, in
- which the Work in its entirety in unmodified form,
- along with a number of other contributions,
- constituting separate and independent works in
- themselves, are assembled into a collective whole.
- A work that constitutes a Collective Work will not
- be considered a Derivative Work (as defined below)
- for the purposes of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- "Derivative Work" means a work based upon the Work
- or upon the Work and other pre-existing works, such
- as a translation, musical arrangement,
- dramatization, fictionalization, motion picture
- version, sound recording, art reproduction,
- abridgment, condensation, or any other form in
- which the Work may be recast, transformed, or
- adapted, except that a work that constitutes a
- Collective Work will not be considered a Derivative
- Work for the purpose of this License. For the
- avoidance of doubt, where the Work is a musical
- composition or sound recording, the synchronization
- of the Work in timed-relation with a moving image
- ("synching") will be considered a Derivative Work
- for the purpose of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- "Licensor" means the individual or entity that
- offers the Work under the terms of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- "Original Author" means the individual or entity
- who created the Work.
- </p>
- </li>
- <li class="listitem">
- <p>
- "Work" means the copyrightable work of authorship
- offered under the terms of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- "You" means an individual or entity exercising
- rights under this License who has not previously
- violated the terms of this License with respect to
- the Work, or who has received express permission
- from the Licensor to exercise rights under this
- License despite a previous violation.
- </p>
- </li>
- <li class="listitem">
- <p>
- "License Elements" means the following high-level
- license attributes as selected by Licensor and
- indicated in the title of this License:
- Attribution, Noncommercial, ShareAlike.
- </p>
- </li>
- </ol>
- </div>
- </li>
- <li class="listitem">
- <p>
- Fair Use Rights. Nothing in this license is intended to
- reduce, limit, or restrict any rights arising from fair
- use, first sale or other limitations on the exclusive
- rights of the copyright owner under copyright law or
- other applicable laws.
- </p>
- </li>
- <li class="listitem">
- <p>
- License Grant. Subject to the terms and conditions of
- this License, Licensor hereby grants You a worldwide,
- royalty-free, non-exclusive, perpetual (for the duration
- of the applicable copyright) license to exercise the
- rights in the Work as stated below:
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- to reproduce the Work, to incorporate the Work into
- one or more Collective Works, and to reproduce the
- Work as incorporated in the Collective Works;
- </p>
- </li>
- <li class="listitem">
- <p>
- to create and reproduce Derivative Works;
- </p>
- </li>
- <li class="listitem">
- <p>
- to distribute copies or phonorecords of, display
- publicly, perform publicly, and perform publicly by
- means of a digital audio transmission the Work
- including as incorporated in Collective Works;
- </p>
- </li>
- <li class="listitem">
- <p>
- to distribute copies or phonorecords of, display
- publicly, perform publicly, and perform publicly by
- means of a digital audio transmission Derivative
- Works;
- </p>
- </li>
- </ol>
- </div>
- <p>
- The above rights may be exercised in all media and
- formats whether now known or hereafter devised. The above
- rights include the right to make such modifications as
- are technically necessary to exercise the rights in other
- media and formats. All rights not expressly granted by
- Licensor are hereby reserved, including but not limited
- to the rights set forth in Sections 4(e) and 4(f).
- </p>
- </li>
- <li class="listitem">
- <p>
- Restrictions.The license granted in Section 3 above is
- expressly made subject to and limited by the following
- restrictions:
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- You may distribute, publicly display, publicly
- perform, or publicly digitally perform the Work
- only under the terms of this License, and You must
- include a copy of, or the Uniform Resource
- Identifier for, this License with every copy or
- phonorecord of the Work You distribute, publicly
- display, publicly perform, or publicly digitally
- perform. You may not offer or impose any terms on
- the Work that alter or restrict the terms of this
- License or the recipients' exercise of the rights
- granted hereunder. You may not sublicense the Work.
- You must keep intact all notices that refer to this
- License and to the disclaimer of warranties. You
- may not distribute, publicly display, publicly
- perform, or publicly digitally perform the Work
- with any technological measures that control access
- or use of the Work in a manner inconsistent with
- the terms of this License Agreement. The above
- applies to the Work as incorporated in a Collective
- Work, but this does not require the Collective Work
- apart from the Work itself to be made subject to
- the terms of this License. If You create a
- Collective Work, upon notice from any Licensor You
- must, to the extent practicable, remove from the
- Collective Work any reference to such Licensor or
- the Original Author, as requested. If You create a
- Derivative Work, upon notice from any Licensor You
- must, to the extent practicable, remove from the
- Derivative Work any reference to such Licensor or
- the Original Author, as requested.
- </p>
- </li>
- <li class="listitem">
- <p>
- You may distribute, publicly display, publicly
- perform, or publicly digitally perform a Derivative
- Work only under the terms of this License, a later
- version of this License with the same License
- Elements as this License, or a Creative Commons
- iCommons license that contains the same License
- Elements as this License (e.g.
- Attribution-NonCommercial-ShareAlike 2.0 Japan).
- You must include a copy of, or the Uniform Resource
- Identifier for, this License or other license
- specified in the previous sentence with every copy
- or phonorecord of each Derivative Work You
- distribute, publicly display, publicly perform, or
- publicly digitally perform. You may not offer or
- impose any terms on the Derivative Works that alter
- or restrict the terms of this License or the
- recipients' exercise of the rights granted
- hereunder, and You must keep intact all notices
- that refer to this License and to the disclaimer of
- warranties. You may not distribute, publicly
- display, publicly perform, or publicly digitally
- perform the Derivative Work with any technological
- measures that control access or use of the Work in
- a manner inconsistent with the terms of this
- License Agreement. The above applies to the
- Derivative Work as incorporated in a Collective
- Work, but this does not require the Collective Work
- apart from the Derivative Work itself to be made
- subject to the terms of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- You may not exercise any of the rights granted to
- You in Section 3 above in any manner that is
- primarily intended for or directed toward
- commercial advantage or private monetary
- compensation. The exchange of the Work for other
- copyrighted works by means of digital file-sharing
- or otherwise shall not be considered to be intended
- for or directed toward commercial advantage or
- private monetary compensation, provided there is no
- payment of any monetary compensation in connection
- with the exchange of copyrighted works.
- </p>
- </li>
- <li class="listitem">
- <p>
- If you distribute, publicly display, publicly
- perform, or publicly digitally perform the Work or
- any Derivative Works or Collective Works, You must
- keep intact all copyright notices for the Work and
- give the Original Author credit reasonable to the
- medium or means You are utilizing by conveying the
- name (or pseudonym if applicable) of the Original
- Author if supplied; the title of the Work if
- supplied; to the extent reasonably practicable, the
- Uniform Resource Identifier, if any, that Licensor
- specifies to be associated with the Work, unless
- such URI does not refer to the copyright notice or
- licensing information for the Work; and in the case
- of a Derivative Work, a credit identifying the use
- of the Work in the Derivative Work (e.g., "French
- translation of the Work by Original Author," or
- "Screenplay based on original Work by Original
- Author"). Such credit may be implemented in any
- reasonable manner; provided, however, that in the
- case of a Derivative Work or Collective Work, at a
- minimum such credit will appear where any other
- comparable authorship credit appears and in a
- manner at least as prominent as such other
- comparable authorship credit.
- </p>
- </li>
- <li class="listitem">
- <p>
- For the avoidance of doubt, where the Work is a
- musical composition:
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- Performance Royalties Under Blanket Licenses.
- Licensor reserves the exclusive right to
- collect, whether individually or via a
- performance rights society (e.g. ASCAP, BMI,
- SESAC), royalties for the public performance
- or public digital performance (e.g. webcast)
- of the Work if that performance is primarily
- intended for or directed toward commercial
- advantage or private monetary compensation.
- </p>
- </li>
- <li class="listitem">
- <p>
- Mechanical Rights and Statutory Royalties.
- Licensor reserves the exclusive right to
- collect, whether individually or via a music
- rights agency or designated agent (e.g. Harry
- Fox Agency), royalties for any phonorecord
- You create from the Work ("cover version")
- and distribute, subject to the compulsory
- license created by 17 USC Section 115 of the
- US Copyright Act (or the equivalent in other
- jurisdictions), if Your distribution of such
- cover version is primarily intended for or
- directed toward commercial advantage or
- private monetary compensation. 6. Webcasting
- Rights and Statutory Royalties. For the
- avoidance of doubt, where the Work is a sound
- recording, Licensor reserves the exclusive
- right to collect, whether individually or via
- a performance-rights society (e.g.
- SoundExchange), royalties for the public
- digital performance (e.g. webcast) of the
- Work, subject to the compulsory license
- created by 17 USC Section 114 of the US
- Copyright Act (or the equivalent in other
- jurisdictions), if Your public digital
- performance is primarily intended for or
- directed toward commercial advantage or
- private monetary compensation.
- </p>
- </li>
- </ol>
- </div>
- </li>
- <li class="listitem">
- <p>
- Webcasting Rights and Statutory Royalties. For the
- avoidance of doubt, where the Work is a sound
- recording, Licensor reserves the exclusive right to
- collect, whether individually or via a
- performance-rights society (e.g. SoundExchange),
- royalties for the public digital performance (e.g.
- webcast) of the Work, subject to the compulsory
- license created by 17 USC Section 114 of the US
- Copyright Act (or the equivalent in other
- jurisdictions), if Your public digital performance
- is primarily intended for or directed toward
- commercial advantage or private monetary
- compensation.
- </p>
- </li>
- </ol>
- </div>
- </li>
- <li class="listitem">
- <p>
- Representations, Warranties and Disclaimer
- </p>
- <p>
- UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN
- WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO
- REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE
- WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
- INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE,
- MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE,
- NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER
- DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
- WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT
- ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
- EXCLUSION MAY NOT APPLY TO YOU.
- </p>
- </li>
- <li class="listitem">
- <p>
- Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
- APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO
- YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL,
- CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT
- OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR
- HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- </p>
- </li>
- <li class="listitem">
- <p>
- Termination
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- This License and the rights granted hereunder will
- terminate automatically upon any breach by You of
- the terms of this License. Individuals or entities
- who have received Derivative Works or Collective
- Works from You under this License, however, will
- not have their licenses terminated provided such
- individuals or entities remain in full compliance
- with those licenses. Sections 1, 2, 5, 6, 7, and 8
- will survive any termination of this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- Subject to the above terms and conditions, the
- license granted here is perpetual (for the duration
- of the applicable copyright in the Work).
- Notwithstanding the above, Licensor reserves the
- right to release the Work under different license
- terms or to stop distributing the Work at any time;
- provided, however that any such election will not
- serve to withdraw this License (or any other
- license that has been, or is required to be,
- granted under the terms of this License), and this
- License will continue in full force and effect
- unless terminated as stated above.
- </p>
- </li>
- </ol>
- </div>
- </li>
- <li class="listitem">
- <p>
- Miscellaneous
- </p>
- <div class="orderedlist">
- <ol>
- <li class="listitem">
- <p>
- Each time You distribute or publicly digitally
- perform the Work or a Collective Work, the Licensor
- offers to the recipient a license to the Work on
- the same terms and conditions as the license
- granted to You under this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- Each time You distribute or publicly digitally
- perform a Derivative Work, Licensor offers to the
- recipient a license to the original Work on the
- same terms and conditions as the license granted to
- You under this License.
- </p>
- </li>
- <li class="listitem">
- <p>
- If any provision of this License is invalid or
- unenforceable under applicable law, it shall not
- affect the validity or enforceability of the
- remainder of the terms of this License, and without
- further action by the parties to this agreement,
- such provision shall be reformed to the minimum
- extent necessary to make such provision valid and
- enforceable.
- </p>
- </li>
- <li class="listitem">
- <p>
- No term or provision of this License shall be
- deemed waived and no breach consented to unless
- such waiver or consent shall be in writing and
- signed by the party to be charged with such waiver
- or consent.
- </p>
- </li>
- <li class="listitem">
- <p>
- This License constitutes the entire agreement
- between the parties with respect to the Work
- licensed here. There are no understandings,
- agreements or representations with respect to the
- Work not specified here. Licensor shall not be
- bound by any additional provisions that may appear
- in any communication from You. This License may not
- be modified without the mutual written agreement of
- the Licensor and You.
- </p>
- </li>
- </ol>
- </div>
- </li>
- </ol>
- </div>
- <div class="admon important">
- <h3>
- Важно
- </h3>
- <p>
- Creative Commons is not a party to this License, and makes no
- warranty whatsoever in connection with the Work. Creative
- Commons will not be liable to You or any party on any legal
- theory for any damages whatsoever, including without
- limitation any general, special, incidental or consequential
- damages arising in connection to this license.
- Notwithstanding the foregoing two (2) sentences, if Creative
- Commons has expressly identified itself as the Licensor
- hereunder, it shall have all rights and obligations of
- Licensor.
- </p>
- <p>
- Except for the limited purpose of indicating to the public
- that the Work is licensed under the CCPL, neither party will
- use the trademark "Creative Commons" or any related trademark
- or logo of Creative Commons without the prior written consent
- of Creative Commons. Any permitted use will be in compliance
- with Creative Commons' then-current trademark usage
- guidelines, as may be published on its website or otherwise
- made available upon request from time to time.
- </p>
- <p>
- Creative Commons may be contacted at <a class="ulink" href=
- "http://creativecommons.org/">http://creativecommons.org/</a>.
- </p>
- </div>
- </div>
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title">
- <a id="MIT" name="MIT"></a>F.2. Лицензия MIT
- </h2>
- </div>
- </div>
- </div>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Copyright © 1999-2024 Gerard Beekmans
- </p>
- <p>
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
- </p>
- <p>
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- </p>
- <p>
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- </p>
- </div>
- </div>
- </div>
- <div class="index">
- <div class="titlepage">
- <div>
- <div>
- <h1 class="title">
- <a id="idm20040" name="idm20040"></a>Предметный указатель
- </h1>
- </div>
- </div>
- </div>
- <div class="index">
- <h2>
- <a id="package-index" name="package-index"></a>Пакеты
- </h2>
- <ul>
- <li>
- <strong class="item">Acl:</strong> <span class=
- "indexref"><a href="#ch-system-acl">Acl-2.3.2</a></span>
- </li>
- <li>
- <strong class="item">Attr:</strong> <span class=
- "indexref"><a href="#ch-system-attr">Attr-2.5.2</a></span>
- </li>
- <li>
- <strong class="item">Autoconf:</strong> <span class=
- "indexref"><a href=
- "#ch-system-autoconf">Autoconf-2.72</a></span>
- </li>
- <li>
- <strong class="item">Automake:</strong> <span class=
- "indexref"><a href=
- "#ch-system-automake">Automake-1.16.5</a></span>
- </li>
- <li>
- <strong class="item">Bash:</strong> <span class=
- "indexref"><a href="#ch-system-bash">Bash-5.2.21</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-bash">Bash-5.2.21</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Bc:</strong> <span class=
- "indexref"><a href="#ch-system-bc">Bc-6.7.5</a></span>
- </li>
- <li>
- <strong class="item">Binutils:</strong> <span class=
- "indexref"><a href=
- "#ch-system-binutils">Binutils-2.42</a></span>
- <ul>
- <li>
- <strong class="secitem">tools, pass 1:</strong>
- <span class="indexref"><a href=
- "#ch-tools-binutils-pass1">Binutils-2.42 - Проход
- 1</a></span>
- </li>
- <li>
- <strong class="secitem">tools, pass 2:</strong>
- <span class="indexref"><a href=
- "#ch-tools-binutils-pass2">Binutils-2.42 - Проход
- 2</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Bison:</strong> <span class=
- "indexref"><a href="#ch-system-bison">Bison-3.8.2</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-bison">Bison-3.8.2</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Bootscripts:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a></span>
- <ul>
- <li>
- <strong class="secitem">usage:</strong> <span class=
- "indexref"><a href="#ch-config-usage">Настройка и
- использование загрузочных скриптов System V</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Bzip2:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a></span>
- </li>
- <li>
- <strong class="item">Check:</strong> <span class=
- "indexref"><a href="#ch-system-check">Check-0.15.2</a></span>
- </li>
- <li>
- <strong class="item">Coreutils:</strong> <span class=
- "indexref"><a href=
- "#ch-system-coreutils">Coreutils-9.4</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-coreutils">Coreutils-9.4</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">DejaGNU:</strong> <span class=
- "indexref"><a href=
- "#ch-system-dejagnu">DejaGNU-1.6.3</a></span>
- </li>
- <li>
- <strong class="item">Diffutils:</strong> <span class=
- "indexref"><a href=
- "#ch-system-diffutils">Diffutils-3.10</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-diffutils">Diffutils-3.10</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">E2fsprogs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-e2fsprogs">E2fsprogs-1.47.0</a></span>
- </li>
- <li>
- <strong class="item">Expat:</strong> <span class=
- "indexref"><a href="#ch-system-expat">Expat-2.6.0</a></span>
- </li>
- <li>
- <strong class="item">Expect:</strong> <span class=
- "indexref"><a href="#ch-system-expect">Expect-5.45.4</a></span>
- </li>
- <li>
- <strong class="item">File:</strong> <span class=
- "indexref"><a href="#ch-system-file">File-5.45</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-file">File-5.45</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Findutils:</strong> <span class=
- "indexref"><a href=
- "#ch-system-findutils">Findutils-4.9.0</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-findutils">Findutils-4.9.0</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Flex:</strong> <span class=
- "indexref"><a href="#ch-system-flex">Flex-2.6.4</a></span>
- </li>
- <li>
- <strong class="item">Flit-core:</strong> <span class=
- "indexref"><a href=
- "#ch-system-flit-core">Flit-Core-3.9.0</a></span>
- </li>
- <li>
- <strong class="item">Gawk:</strong> <span class=
- "indexref"><a href="#ch-system-gawk">Gawk-5.3.0</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-gawk">Gawk-5.3.0</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">GCC:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a></span>
- <ul>
- <li>
- <strong class="secitem">tools, libstdc++ Проход 1:</strong>
- <span class="indexref"><a href=
- "#ch-tools-libstdcpp">Libstdc++ из GCC-13.2.0</a></span>
- </li>
- <li>
- <strong class="secitem">tools, pass 1:</strong>
- <span class="indexref"><a href=
- "#ch-tools-gcc-pass1">GCC-13.2.0 - Проход 1</a></span>
- </li>
- <li>
- <strong class="secitem">tools, pass 2:</strong>
- <span class="indexref"><a href=
- "#ch-tools-gcc-pass2">GCC-13.2.0 - Проход 2</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">GDBM:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a></span>
- </li>
- <li>
- <strong class="item">Gettext:</strong> <span class=
- "indexref"><a href=
- "#ch-system-gettext">Gettext-0.22.4</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-gettext">Gettext-0.22.4</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Glibc:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-glibc">Glibc-2.39</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">GMP:</strong> <span class=
- "indexref"><a href="#ch-system-gmp">GMP-6.3.0</a></span>
- </li>
- <li>
- <strong class="item">Gperf:</strong> <span class=
- "indexref"><a href="#ch-system-gperf">Gperf-3.1</a></span>
- </li>
- <li>
- <strong class="item">Grep:</strong> <span class=
- "indexref"><a href="#ch-system-grep">Grep-3.11</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-grep">Grep-3.11</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Groff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a></span>
- </li>
- <li>
- <strong class="item">GRUB:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a></span>
- </li>
- <li>
- <strong class="item">Gzip:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-gzip">Gzip-1.13</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Iana-Etc:</strong> <span class=
- "indexref"><a href=
- "#ch-system-iana-etc">Iana-Etc-20240125</a></span>
- </li>
- <li>
- <strong class="item">Inetutils:</strong> <span class=
- "indexref"><a href=
- "#ch-system-inetutils">Inetutils-2.5</a></span>
- </li>
- <li>
- <strong class="item">Intltool:</strong> <span class=
- "indexref"><a href=
- "#ch-system-intltool">Intltool-0.51.0</a></span>
- </li>
- <li>
- <strong class="item">IPRoute2:</strong> <span class=
- "indexref"><a href=
- "#ch-system-iproute2">IPRoute2-6.7.0</a></span>
- </li>
- <li>
- <strong class="item">Jinja2:</strong> <span class=
- "indexref"><a href="#ch-system-jinja2">Jinja2-3.1.3</a></span>
- </li>
- <li>
- <strong class="item">Kbd:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a></span>
- </li>
- <li>
- <strong class="item">Kmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a></span>
- </li>
- <li>
- <strong class="item">Less:</strong> <span class=
- "indexref"><a href="#ch-system-less">Less-643</a></span>
- </li>
- <li>
- <strong class="item">Libcap:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a></span>
- </li>
- <li>
- <strong class="item">Libelf:</strong> <span class=
- "indexref"><a href="#ch-system-libelf">Libelf из
- Elfutils-0.190</a></span>
- </li>
- <li>
- <strong class="item">libffi:</strong> <span class=
- "indexref"><a href="#ch-system-libffi">Libffi-3.4.4</a></span>
- </li>
- <li>
- <strong class="item">Libpipeline:</strong> <span class=
- "indexref"><a href=
- "#ch-system-libpipeline">Libpipeline-1.5.7</a></span>
- </li>
- <li>
- <strong class="item">Libtool:</strong> <span class=
- "indexref"><a href=
- "#ch-system-libtool">Libtool-2.4.7</a></span>
- </li>
- <li>
- <strong class="item">Libxcrypt:</strong> <span class=
- "indexref"><a href=
- "#ch-system-libxcrypt">Libxcrypt-4.4.36</a></span>
- </li>
- <li>
- <strong class="item">Linux:</strong> <span class=
- "indexref"><a href="#ch-bootable-kernel">Linux-6.7.4</a></span>
- <ul>
- <li>
- <strong class="secitem">tools, API headers:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">M4:</strong> <span class=
- "indexref"><a href="#ch-system-m4">M4-1.4.19</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-m4">M4-1.4.19</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Make:</strong> <span class=
- "indexref"><a href="#ch-system-make">Make-4.4.1</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-make">Make-4.4.1</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Man-DB:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a></span>
- </li>
- <li>
- <strong class="item">Man-pages:</strong> <span class=
- "indexref"><a href=
- "#ch-system-man-pages">Man-pages-6.06</a></span>
- </li>
- <li>
- <strong class="item">MarkupSafe:</strong> <span class=
- "indexref"><a href=
- "#ch-system-markupsafe">MarkupSafe-2.1.5</a></span>
- </li>
- <li>
- <strong class="item">Meson:</strong> <span class=
- "indexref"><a href="#ch-system-meson">Meson-1.3.2</a></span>
- </li>
- <li>
- <strong class="item">MPC:</strong> <span class=
- "indexref"><a href="#ch-system-mpc">MPC-1.3.1</a></span>
- </li>
- <li>
- <strong class="item">MPFR:</strong> <span class=
- "indexref"><a href="#ch-system-mpfr">MPFR-4.2.1</a></span>
- </li>
- <li>
- <strong class="item">Ncurses:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-ncurses">Ncurses-6.4-20230520</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Ninja:</strong> <span class=
- "indexref"><a href="#ch-system-ninja">Ninja-1.11.1</a></span>
- </li>
- <li>
- <strong class="item">OpenSSL:</strong> <span class=
- "indexref"><a href=
- "#ch-system-openssl">OpenSSL-3.2.1</a></span>
- </li>
- <li>
- <strong class="item">Patch:</strong> <span class=
- "indexref"><a href="#ch-system-patch">Patch-2.7.6</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-patch">Patch-2.7.6</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Perl:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-perl">Perl-5.38.2</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Pkgconf:</strong> <span class=
- "indexref"><a href=
- "#ch-system-pkgconf">Pkgconf-2.1.1</a></span>
- </li>
- <li>
- <strong class="item">Procps-ng:</strong> <span class=
- "indexref"><a href=
- "#ch-system-procps">Procps-ng-4.0.4</a></span>
- </li>
- <li>
- <strong class="item">Psmisc:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a></span>
- </li>
- <li>
- <strong class="item">Python:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- <ul>
- <li>
- <strong class="secitem">temporary:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-Python">Python-3.12.2</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">rc.site:</strong> <span class=
- "indexref"><a href="#ch-config-site">Файл rc.site</a></span>
- </li>
- <li>
- <strong class="item">Readline:</strong> <span class=
- "indexref"><a href=
- "#ch-system-readline">Readline-8.2</a></span>
- </li>
- <li>
- <strong class="item">Sed:</strong> <span class=
- "indexref"><a href="#ch-system-sed">Sed-4.9</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-sed">Sed-4.9</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Setuptools:</strong> <span class=
- "indexref"><a href=
- "#ch-system-setuptools">Setuptools-69.1.0</a></span>
- </li>
- <li>
- <strong class="item">Shadow:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#conf-shadow">Настройка
- Shadow</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Sysklogd:</strong> <span class=
- "indexref"><a href=
- "#ch-system-sysklogd">Sysklogd-1.5.1</a></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#conf-sysklogd">Настройка
- Sysklogd</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Sysvinit:</strong> <span class=
- "indexref"><a href=
- "#ch-system-sysvinit">Sysvinit-3.08</a></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#conf-sysvinit">Настройка
- Sysvinit</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Tar:</strong> <span class=
- "indexref"><a href="#ch-system-tar">Tar-1.35</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-tar">Tar-1.35</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Tcl:</strong> <span class=
- "indexref"><a href="#ch-system-tcl">Tcl-8.6.13</a></span>
- </li>
- <li>
- <strong class="item">Texinfo:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a></span>
- <ul>
- <li>
- <strong class="secitem">temporary:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-texinfo">Texinfo-7.1</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Udev:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из
- Systemd-255</a></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#conf-udev">Настройка Udev</a></span>
- </li>
- <li>
- <strong class="secitem">usage:</strong> <span class=
- "indexref"><a href="#ch-config-udev">Взаимодействие с
- устройствами и модулями</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Util-linux:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href=
- "#ch-tools-util-linux">Util-linux-2.39.3</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Vim:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a></span>
- </li>
- <li>
- <strong class="item">wheel:</strong> <span class=
- "indexref"><a href="#ch-system-wheel">Wheel-0.42.0</a></span>
- </li>
- <li>
- <strong class="item">XML::Parser:</strong> <span class=
- "indexref"><a href=
- "#ch-system-xml-parser">XML::Parser-2.47</a></span>
- </li>
- <li>
- <strong class="item">Xz:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a></span>
- <ul>
- <li>
- <strong class="secitem">tools:</strong> <span class=
- "indexref"><a href="#ch-tools-xz">Xz-5.4.6</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">Zlib:</strong> <span class=
- "indexref"><a href="#ch-system-zlib">Zlib-1.3.1</a></span>
- </li>
- <li>
- <strong class="item">zstd:</strong> <span class=
- "indexref"><a href="#ch-system-zstd">Zstd-1.5.5</a></span>
- </li>
- </ul>
- <h2>
- <a id="program-index" name="program-index"></a>Программы
- </h2>
- <ul>
- <li>
- <strong class="item">[:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#lbracket">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">2to3:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- </li>
- <li>
- <strong class="item">accessdb:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#accessdb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">aclocal:</strong> <span class=
- "indexref"><a href="#ch-system-automake">Automake-1.16.5</a> --
- <a href="#aclocal">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">aclocal-1.16:</strong> <span class=
- "indexref"><a href="#ch-system-automake">Automake-1.16.5</a> --
- <a href="#aclocalversion">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">addftinfo:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#addftinfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">addpart:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#addpart">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">addr2line:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#addr2line">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">afmtodit:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#afmtodit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">agetty:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#agetty">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">apropos:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#apropos">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ar:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#ar">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">as:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#as">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">attr:</strong> <span class=
- "indexref"><a href="#ch-system-attr">Attr-2.5.2</a> -- <a href=
- "#attr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autoconf:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autoconf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autoheader:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autoheader">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autom4te:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autom4te">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">automake:</strong> <span class=
- "indexref"><a href="#ch-system-automake">Automake-1.16.5</a> --
- <a href="#automake">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">automake-1.16:</strong> <span class=
- "indexref"><a href="#ch-system-automake">Automake-1.16.5</a> --
- <a href="#automake-version">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autopoint:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#autopoint">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autoreconf:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autoreconf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autoscan:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autoscan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">autoupdate:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#autoupdate">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">awk:</strong> <span class=
- "indexref"><a href="#ch-system-gawk">Gawk-5.3.0</a> -- <a href=
- "#awk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">b2sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#b2sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">badblocks:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#badblocks">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">base64:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#base64">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">basename:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#basename">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">basenc:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#basenc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bash:</strong> <span class=
- "indexref"><a href="#ch-system-bash">Bash-5.2.21</a> --
- <a href="#bash">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bashbug:</strong> <span class=
- "indexref"><a href="#ch-system-bash">Bash-5.2.21</a> --
- <a href="#bashbug">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bc:</strong> <span class=
- "indexref"><a href="#ch-system-bc">Bc-6.7.5</a> -- <a href=
- "#bc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bison:</strong> <span class=
- "indexref"><a href="#ch-system-bison">Bison-3.8.2</a> --
- <a href="#bison">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">blkdiscard:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#blkdiscard">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">blkid:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#blkid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">blkzone:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#blkzone">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">blockdev:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#blockdev">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bomtool:</strong> <span class=
- "indexref"><a href="#ch-system-pkgconf">Pkgconf-2.1.1</a> --
- <a href="#bomtool">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bootlogd:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#bootlogd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bridge:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#bridge">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bunzip2:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bunzip2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzcat:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzcat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzcmp:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzcmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzdiff:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzegrep:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzegrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzfgrep:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzfgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzgrep:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzip2:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzip2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzip2recover:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzip2recover">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzless:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzless">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">bzmore:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#bzmore">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">c++:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#c">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">c++filt:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#c-filt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cal:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#cal">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">capsh:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#capsh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">captoinfo:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#captoinfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cat:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#cat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">catman:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#catman">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cc:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#cc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cfdisk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#cfdisk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chacl:</strong> <span class=
- "indexref"><a href="#ch-system-acl">Acl-2.3.2</a> -- <a href=
- "#chacl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chage:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#chage">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chattr:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#chattr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chcon:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#chcon">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chcpu:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#chcpu">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">checkmk:</strong> <span class=
- "indexref"><a href="#ch-system-check">Check-0.15.2</a> --
- <a href="#checkmk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chem:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#chem">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chfn:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#chfn">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chgpasswd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#chgpasswd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chgrp:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#chgrp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chmem:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#chmem">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chmod:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#chmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">choom:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#choom">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chown:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#chown">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chpasswd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#chpasswd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chroot:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#chroot">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chrt:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#chrt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chsh:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#chsh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">chvt:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#chvt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cksum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#cksum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">clear:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#clear">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cmp:</strong> <span class=
- "indexref"><a href="#ch-system-diffutils">Diffutils-3.10</a> --
- <a href="#cmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">col:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#col">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">colcrt:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#colcrt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">colrm:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#colrm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">column:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#column">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">comm:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#comm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">compile_et:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#compile_et">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">corelist:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#corelist">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cp:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#cp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cpan:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#cpan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cpp:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#cpp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">csplit:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#csplit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ctrlaltdel:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ctrlaltdel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ctstat:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#ctstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cut:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#cut">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">c_rehash:</strong> <span class=
- "indexref"><a href="#ch-system-openssl">OpenSSL-3.2.1</a> --
- <a href="#c_rehash">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">date:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#date">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dc:</strong> <span class=
- "indexref"><a href="#ch-system-bc">Bc-6.7.5</a> -- <a href=
- "#dc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dd:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#dd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">deallocvt:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#deallocvt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">debugfs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#debugfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dejagnu:</strong> <span class=
- "indexref"><a href="#ch-system-dejagnu">DejaGNU-1.6.3</a> --
- <a href="#dejagnu">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">delpart:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#delpart">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">depmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#depmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">df:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#df">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">diff:</strong> <span class=
- "indexref"><a href="#ch-system-diffutils">Diffutils-3.10</a> --
- <a href="#diff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">diff3:</strong> <span class=
- "indexref"><a href="#ch-system-diffutils">Diffutils-3.10</a> --
- <a href="#diff3">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dir:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#dir">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dircolors:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#dircolors">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dirname:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#dirname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dmesg:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#dmesg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dnsdomainname:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#dnsdomainname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">du:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#du">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dumpe2fs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#dumpe2fs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dumpkeys:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#dumpkeys">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2freefrag:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2freefrag">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2fsck:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2fsck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2image:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2image">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2label:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2label">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2mmpstatus:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2mmpstatus">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2scrub:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2scrub">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2scrub_all:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2scrub_all">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e2undo:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e2undo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e4crypt:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e4crypt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">e4defrag:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#e4defrag">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">echo:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#echo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">egrep:</strong> <span class=
- "indexref"><a href="#ch-system-grep">Grep-3.11</a> -- <a href=
- "#egrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">eject:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#eject">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">elfedit:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#elfedit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">enc2xs:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#enc2xs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">encguess:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#encguess">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">env:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#env">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">envsubst:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#envsubst">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">eqn:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#eqn">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">eqn2graph:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#eqn2graph">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ex:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#ex">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">expand:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#expand">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">expect:</strong> <span class=
- "indexref"><a href="#ch-system-expect">Expect-5.45.4</a> --
- <a href="#expect">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">expiry:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#expiry">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">expr:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#expr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">factor:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#factor">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">faillog:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#faillog">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fallocate:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fallocate">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">false:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#false">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fdisk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fdisk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fgconsole:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#fgconsole">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fgrep:</strong> <span class=
- "indexref"><a href="#ch-system-grep">Grep-3.11</a> -- <a href=
- "#fgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">file:</strong> <span class=
- "indexref"><a href="#ch-system-file">File-5.45</a> -- <a href=
- "#file">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">filefrag:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#filefrag">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fincore:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fincore">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">find:</strong> <span class=
- "indexref"><a href="#ch-system-findutils">Findutils-4.9.0</a>
- -- <a href="#find">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">findfs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#findfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">findmnt:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#findmnt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">flex:</strong> <span class=
- "indexref"><a href="#ch-system-flex">Flex-2.6.4</a> -- <a href=
- "#flex">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">flex++:</strong> <span class=
- "indexref"><a href="#ch-system-flex">Flex-2.6.4</a> -- <a href=
- "#flexpp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">flock:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#flock">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fmt:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#fmt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fold:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#fold">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">free:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#free">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fsck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck.cramfs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fsck.cramfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck.ext2:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#fsck.ext2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck.ext3:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#fsck.ext3">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck.ext4:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#fsck.ext4">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsck.minix:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fsck.minix">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fsfreeze:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fsfreeze">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fstab-decode:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#fstab-decode">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fstrim:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#fstrim">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ftp:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#ftp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">fuser:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#fuser">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">g++:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#g">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gawk:</strong> <span class=
- "indexref"><a href="#ch-system-gawk">Gawk-5.3.0</a> -- <a href=
- "#gawk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gawk-5.3.0:</strong> <span class=
- "indexref"><a href="#ch-system-gawk">Gawk-5.3.0</a> -- <a href=
- "#gawk-version">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gcc:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gc-ar:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcc-ar">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gc-nm:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcc-nm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gc-ranlib:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcc-ranlib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gcov:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcov">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gcov-dump:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcov-dump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gcov-tool:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#gcov-tool">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gdbmtool:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a> -- <a href=
- "#gdbmtool">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gdbm_dump:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a> -- <a href=
- "#gdbm_dump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gdbm_load:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a> -- <a href=
- "#gdbm_load">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gdiffmk:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#gdiffmk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gencat:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#gencat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">genl:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#genl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getcap:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#getcap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getconf:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#getconf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getent:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#getent">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getfacl:</strong> <span class=
- "indexref"><a href="#ch-system-acl">Acl-2.3.2</a> -- <a href=
- "#getfacl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getfattr:</strong> <span class=
- "indexref"><a href="#ch-system-attr">Attr-2.5.2</a> -- <a href=
- "#getfattr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getkeycodes:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#getkeycodes">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getopt:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#getopt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getpcaps:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#getpcaps">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">getsubids:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#getsubids">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gettext:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#gettext">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gettext.sh:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#gettext.sh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gettextize:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#gettextize">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">glilypond:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#glilypond">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gpasswd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#gpasswd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gperf:</strong> <span class=
- "indexref"><a href="#ch-system-gperf">Gperf-3.1</a> -- <a href=
- "#gperf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gperl:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#gperl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gpinyin:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#gpinyin">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gprof:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#gprof">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gprofng:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#gprofng">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grap2graph:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grap2graph">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grep:</strong> <span class=
- "indexref"><a href="#ch-system-grep">Grep-3.11</a> -- <a href=
- "#grep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grn:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grn">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grodvi:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grodvi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#groff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groffer:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#groffer">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grog:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grog">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grolbp:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grolbp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grolj4:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grolj4">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gropdf:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#gropdf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grops:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grops">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grotty:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#grotty">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groupadd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#groupadd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groupdel:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#groupdel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groupmems:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#groupmems">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groupmod:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#groupmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">groups:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#groups">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grpck:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#grpck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grpconv:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#grpconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grpunconv:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#grpunconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-bios-setup:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-bios-setup">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-editenv:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-editenv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-file:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-file">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-fstest:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-fstest">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-glue-efi:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-glue-efi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-install:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-install">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-kbdcomp:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-kbdcomp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-macbless:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-macbless">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-menulst2cfg:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-menulst2cfg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkconfig:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mkconfig">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkimage:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mkimage">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mklayout:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mklayout">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mknetdir:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mknetdir">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkpasswd-pbkdf2:</strong>
- <span class="indexref"><a href="#ch-system-grub">GRUB-2.12</a>
- -- <a href="#grub-mkpasswd-pbkdf2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkrelpath:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mkrelpath">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkrescue:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mkrescue">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-mkstandalone:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-mkstandalone">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-ofpathname:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-ofpathname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-probe:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-probe">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-reboot:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-reboot">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-render-label:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-render-label">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-script-check:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-script-check">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-set-default:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-set-default">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-setup:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-sparc64-setup">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">grub-syslinux2cfg:</strong> <span class=
- "indexref"><a href="#ch-system-grub">GRUB-2.12</a> -- <a href=
- "#grub-syslinux2cfg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gunzip:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#gunzip">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gzexe:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#gzexe">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">gzip:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#gzip">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">h2ph:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#h2ph">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">h2xs:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#h2xs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">halt:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#halt-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hardlink:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#hardlink">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">head:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#head">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hexdump:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#hexdump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hostid:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#hostid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hostname:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#hostname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hpftodit:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#hpftodit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hwclock:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#hwclock">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">i386:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#i386">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">iconv:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#iconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">iconvconfig:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#iconvconfig">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">id:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#id">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">idle3:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- </li>
- <li>
- <strong class="item">ifconfig:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#ifconfig">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ifnames:</strong> <span class=
- "indexref"><a href="#ch-system-autoconf">Autoconf-2.72</a> --
- <a href="#ifnames">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ifstat:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#ifstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">indxbib:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#indxbib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">info:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#info">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">infocmp:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#infocmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">infotocap:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#infotocap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">init:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#init-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">insmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#insmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">install:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#install">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">install-info:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#install-info">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">instmodsh:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#instmodsh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">intltool-extract:</strong> <span class=
- "indexref"><a href="#ch-system-intltool">Intltool-0.51.0</a> --
- <a href="#intltool-extract">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">intltool-merge:</strong> <span class=
- "indexref"><a href="#ch-system-intltool">Intltool-0.51.0</a> --
- <a href="#intltool-merge">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">intltool-prepare:</strong> <span class=
- "indexref"><a href="#ch-system-intltool">Intltool-0.51.0</a> --
- <a href="#intltool-prepare">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">intltool-update:</strong> <span class=
- "indexref"><a href="#ch-system-intltool">Intltool-0.51.0</a> --
- <a href="#intltool-update">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">intltoolize:</strong> <span class=
- "indexref"><a href="#ch-system-intltool">Intltool-0.51.0</a> --
- <a href="#intltoolize">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ionice:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ionice">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ip:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#ip">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ipcmk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ipcmk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ipcrm:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ipcrm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ipcs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ipcs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">irqtop:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#irqtop">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">isosize:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#isosize">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">join:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#join">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">json_pp:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#json_pp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">kbdinfo:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#kbdinfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">kbdrate:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#kbdrate">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">kbd_mode:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#kbd_mode">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">kill:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#kill">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">killall:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#killall">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">killall5:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#killall5">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">klogd:</strong> <span class=
- "indexref"><a href="#ch-system-sysklogd">Sysklogd-1.5.1</a> --
- <a href="#klogd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">kmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#kmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">last:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#last">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lastb:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lastb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ld:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#ld">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ld.bfd:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#ld.bfd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ld.gold:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#ld.gold">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ldattach:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ldattach">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ldconfig:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#ldconfig">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ldd:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#ldd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lddlibc4:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#lddlibc4">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">less:</strong> <span class=
- "indexref"><a href="#ch-system-less">Less-643</a> -- <a href=
- "#less">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lessecho:</strong> <span class=
- "indexref"><a href="#ch-system-less">Less-643</a> -- <a href=
- "#lessecho">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lesskey:</strong> <span class=
- "indexref"><a href="#ch-system-less">Less-643</a> -- <a href=
- "#lesskey">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lex:</strong> <span class=
- "indexref"><a href="#ch-system-flex">Flex-2.6.4</a> -- <a href=
- "#lex">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lexgrog:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#lexgrog">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lfskernel-6.7.4:</strong> <span class=
- "indexref"><a href="#ch-bootable-kernel">Linux-6.7.4</a> --
- <a href="#lfskernel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libasan:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libasan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libatomic:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libatomic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcc1:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libcc1">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libnetcfg:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#libnetcfg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtool:</strong> <span class=
- "indexref"><a href="#ch-system-libtool">Libtool-2.4.7</a> --
- <a href="#libtool">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtoolize:</strong> <span class=
- "indexref"><a href="#ch-system-libtool">Libtool-2.4.7</a> --
- <a href="#libtoolize">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">link:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#link">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">linux32:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#linux32">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">linux64:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#linux64">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lkbib:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#lkbib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ln:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#ln">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lnstat:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#lnstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">loadkeys:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#loadkeys">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">loadunimap:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#loadunimap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">locale:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#locale">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">localedef:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#localedef">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">locate:</strong> <span class=
- "indexref"><a href="#ch-system-findutils">Findutils-4.9.0</a>
- -- <a href="#locate">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">logger:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#logger">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">login:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#login">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">logname:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#logname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">logoutd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#logoutd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">logsave:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#logsave">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">look:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#look">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lookbib:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#lookbib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">losetup:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#losetup">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ls:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#ls">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsattr:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#lsattr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsblk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsblk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lscpu:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lscpu">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsfd:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsfd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsipc:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsipc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsirq:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsirq">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lslocks:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lslocks">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lslogins:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lslogins">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsmem:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsmem">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#lsmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lsns:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#lsns">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lto-dump:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#lto-dump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzcat:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzcat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzcmp:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzcmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzdiff:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzegrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzegrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzfgrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzfgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzgrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzless:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzless">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzma:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzma">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzmadec:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzmadec">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzmainfo:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzmainfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">lzmore:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#lzmore">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">m4:</strong> <span class=
- "indexref"><a href="#ch-system-m4">M4-1.4.19</a> -- <a href=
- "#m4">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">make:</strong> <span class=
- "indexref"><a href="#ch-system-make">Make-4.4.1</a> -- <a href=
- "#make">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">makedb:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#makedb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">makeinfo:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#makeinfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">man:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#man">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">man-recode:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#man-recode">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mandb:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#mandb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">manpath:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#manpath">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mapscrn:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#mapscrn">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mcookie:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mcookie">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">md5sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#md5sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mesg:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mesg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">meson:</strong> <span class=
- "indexref"><a href="#ch-system-meson">Meson-1.3.2</a> --
- <a href="#meson">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkdir:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#mkdir">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mke2fs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mke2fs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfifo:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#mkfifo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mkfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.bfs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mkfs.bfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.cramfs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mkfs.cramfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.ext2:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mkfs.ext2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.ext3:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mkfs.ext3">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.ext4:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mkfs.ext4">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkfs.minix:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mkfs.minix">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mklost+found:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mklost-found">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mknod:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#mknod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mkswap:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mkswap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mktemp:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#mktemp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mk_cmds:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#mk_cmds">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mmroff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#mmroff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">modinfo:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#modinfo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">modprobe:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#modprobe">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">more:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#more">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mount:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mount">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mountpoint:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#mountpoint">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgattrib:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgattrib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgcat:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgcat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgcmp:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgcmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgcomm:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgcomm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgconv:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgen:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgen">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgexec:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgexec">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgfilter:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgfilter">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgfmt:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgfmt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msggrep:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msggrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msginit:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msginit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgmerge:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgmerge">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msgunfmt:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msgunfmt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">msguniq:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#msguniq">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mtrace:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#mtrace">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mv:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#mv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">namei:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#namei">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ncursesw6-config:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#ncursesw6-config">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">neqn:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#neqn">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">newgidmap:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#newgidmap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">newgrp:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#newgrp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">newuidmap:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#newuidmap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">newusers:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#newusers">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ngettext:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#ngettext">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nice:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#nice">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ninja:</strong> <span class=
- "indexref"><a href="#ch-system-ninja">Ninja-1.11.1</a> --
- <a href="#ninja">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nl:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#nl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nm:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#nm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nohup:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#nohup">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nologin:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#nologin">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nproc:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#nproc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nroff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#nroff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nsenter:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#nsenter">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">nstat:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#nstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">numfmt:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#numfmt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">objcopy:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#objcopy">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">objdump:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#objdump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">od:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#od">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">openssl:</strong> <span class=
- "indexref"><a href="#ch-system-openssl">OpenSSL-3.2.1</a> --
- <a href="#openssl-prog">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">openvt:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#openvt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">partx:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#partx">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">passwd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#passwd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">paste:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#paste">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">patch:</strong> <span class=
- "indexref"><a href="#ch-system-patch">Patch-2.7.6</a> --
- <a href="#patch">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pathchk:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#pathchk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pcprofiledump:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#pcprofiledump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pdfmom:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pdfmom">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pdfroff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pdfroff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pdftexi2dvi:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#pdftexi2dvi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">peekfd:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#peekfd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perl:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perl5.38.2:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perl-version">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perlbug:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perlbug">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perldoc:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perldoc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perlivp:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perlivp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">perlthanks:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#perlthanks">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pfbtops:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pfbtops">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pgrep:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#pgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pic:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pic2graph:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pic2graph">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">piconv:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#piconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pidof:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#pidof">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ping:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#ping">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ping6:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#ping6">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pinky:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#pinky">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pip3:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- </li>
- <li>
- <strong class="item">pivot_root:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#pivot_root">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pkgconf:</strong> <span class=
- "indexref"><a href="#ch-system-pkgconf">Pkgconf-2.1.1</a> --
- <a href="#pkgconf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pkill:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#pkill">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pl2pm:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#pl2pm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pldd:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#pldd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pmap:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#pmap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pod2html:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#pod2html">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pod2man:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#pod2man">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pod2texi:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#pod2texi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pod2text:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#pod2text">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pod2usage:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#pod2usage">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">podchecker:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#podchecker">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">podselect:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#podselect">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">post-grohtml:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#post-grohtml">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">poweroff:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#poweroff-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pr:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#pr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pre-grohtml:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#pre-grohtml">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">preconv:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#preconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">printenv:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#printenv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">printf:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#printf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">prlimit:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#prlimit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">prove:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#prove">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">prtstat:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#prtstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ps:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#ps">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">psfaddtable:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#psfaddtable">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">psfgettable:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#psfgettable">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">psfstriptable:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#psfstriptable">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">psfxtable:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#psfxtable">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pslog:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#pslog">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pstree:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#pstree">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pstree.x11:</strong> <span class=
- "indexref"><a href="#ch-system-psmisc">Psmisc-23.6</a> --
- <a href="#pstree.x11">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ptar:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#ptar">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ptardiff:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#ptardiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ptargrep:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#ptargrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ptx:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#ptx">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pwck:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#pwck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pwconv:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#pwconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pwd:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#pwd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pwdx:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#pwdx">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pwunconv:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#pwunconv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">pydoc3:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- </li>
- <li>
- <strong class="item">python3:</strong> <span class=
- "indexref"><a href="#ch-system-Python">Python-3.12.2</a></span>
- </li>
- <li>
- <strong class="item">ranlib:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#ranlib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">readelf:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#readelf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">readlink:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#readlink">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">readprofile:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#readprofile">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">realpath:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#realpath">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">reboot:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#reboot-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">recode-sr-latin:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#recode-sr-latin">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">refer:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#refer">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rename:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#rename">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">renice:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#renice">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">reset:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#reset">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">resize2fs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#resize2fs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">resizepart:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#resizepart">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rev:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#rev">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rfkill:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#rfkill">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rm:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#rm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rmdir:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#rmdir">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rmmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a> -- <a href=
- "#rmmod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2dvi:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2dvi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2html:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2html">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2pdf:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2pdf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2ps:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2ps">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2text:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2text">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">roff2x:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#roff2x">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">routel:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#routel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rtacct:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#rtacct">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rtcwake:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#rtcwake">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rtmon:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#rtmon">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rtpr:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#rtpr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rtstat:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#rtstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">runcon:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#runcon">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">runlevel:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#runlevel-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">runtest:</strong> <span class=
- "indexref"><a href="#ch-system-dejagnu">DejaGNU-1.6.3</a> --
- <a href="#runtest">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rview:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#rview">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">rvim:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#rvim">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">script:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#script">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">scriptlive:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#scriptlive">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">scriptreplay:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#scriptreplay">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sdiff:</strong> <span class=
- "indexref"><a href="#ch-system-diffutils">Diffutils-3.10</a> --
- <a href="#sdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sed:</strong> <span class=
- "indexref"><a href="#ch-system-sed">Sed-4.9</a> -- <a href=
- "#sed">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">seq:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#seq">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setarch:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#setarch">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setcap:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#setcap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setfacl:</strong> <span class=
- "indexref"><a href="#ch-system-acl">Acl-2.3.2</a> -- <a href=
- "#setfacl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setfattr:</strong> <span class=
- "indexref"><a href="#ch-system-attr">Attr-2.5.2</a> -- <a href=
- "#setfattr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setfont:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#setfont">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setkeycodes:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#setkeycodes">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setleds:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#setleds">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setmetamode:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#setmetamode">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setsid:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#setsid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setterm:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#setterm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setvtrgb:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#setvtrgb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sfdisk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#sfdisk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sg:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#sg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sh:</strong> <span class=
- "indexref"><a href="#ch-system-bash">Bash-5.2.21</a> --
- <a href="#sh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sha1sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sha1sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sha224sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sha224sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sha256sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sha256sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sha384sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sha384sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sha512sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sha512sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">shasum:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#shasum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">showconsolefont:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#showconsolefont">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">showkey:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#showkey">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">shred:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#shred">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">shuf:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#shuf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">shutdown:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#shutdown-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">size:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#size">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">slabtop:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#slabtop">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sleep:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sleep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sln:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#sln">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">soelim:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#soelim">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sort:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sort">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sotruss:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#sotruss">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">splain:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#splain">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">split:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#split">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sprof:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#sprof">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ss:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#ss">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">stat:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#stat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">stdbuf:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#stdbuf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">strings:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#strings">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">strip:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#strip">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">stty:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#stty">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">su:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#su">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sulogin:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#sulogin">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sum:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sum">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">swaplabel:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#swaplabel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">swapoff:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#swapoff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">swapon:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#swapon">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">switch_root:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#switch_root">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sync:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#sync">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sysctl:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#sysctl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">syslogd:</strong> <span class=
- "indexref"><a href="#ch-system-sysklogd">Sysklogd-1.5.1</a> --
- <a href="#syslogd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tabs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#tabs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tac:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tac">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tail:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tail">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">talk:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#talk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tar:</strong> <span class=
- "indexref"><a href="#ch-system-tar">Tar-1.35</a> -- <a href=
- "#tar">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">taskset:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#taskset">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tbl:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#tbl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tc:</strong> <span class=
- "indexref"><a href="#ch-system-iproute2">IPRoute2-6.7.0</a> --
- <a href="#ss">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tclsh:</strong> <span class=
- "indexref"><a href="#ch-system-tcl">Tcl-8.6.13</a> -- <a href=
- "#tclsh">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tclsh8.6:</strong> <span class=
- "indexref"><a href="#ch-system-tcl">Tcl-8.6.13</a> -- <a href=
- "#tclsh8.6">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tee:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tee">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">telinit:</strong> <span class=
- "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.08</a> --
- <a href="#telinit-sysv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">telnet:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#telnet">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">test:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#test">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">texi2dvi:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#texi2dvi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">texi2pdf:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#texi2pdf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">texi2any:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#texi2any">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">texindex:</strong> <span class=
- "indexref"><a href="#ch-system-texinfo">Texinfo-7.1</a> --
- <a href="#texindex">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tfmtodit:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#tfmtodit">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tftp:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#tftp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tic:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#tic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">timeout:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#timeout">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tload:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#tload">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">toe:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#toe">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">top:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#top">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">touch:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#touch">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tput:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#tput">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tr:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">traceroute:</strong> <span class=
- "indexref"><a href="#ch-system-inetutils">Inetutils-2.5</a> --
- <a href="#traceroute">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">troff:</strong> <span class=
- "indexref"><a href="#ch-system-groff">Groff-1.23.0</a> --
- <a href="#troff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">true:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#true">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">truncate:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#truncate">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tset:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#tset">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tsort:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tsort">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tty:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#tty">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tune2fs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#tune2fs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">tzselect:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#tzselect">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uclampset:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#uclampset">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">udev-hwdb:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из Systemd-255</a> --
- <a href="#udev-hwdb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">udevadm:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из Systemd-255</a> --
- <a href="#udevadm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">udevd:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из Systemd-255</a> --
- <a href="#udevd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ul:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#ul">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">umount:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#umount">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uname:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#uname">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uname26:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#uname26">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uncompress:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#uncompress">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unexpand:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#unexpand">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unicode_start:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#unicode_start">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unicode_stop:</strong> <span class=
- "indexref"><a href="#ch-system-kbd">Kbd-2.6.4</a> -- <a href=
- "#unicode_stop">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uniq:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#uniq">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unlink:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#unlink">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unlzma:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#unlzma">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unshare:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#unshare">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">unxz:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#unxz">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">updatedb:</strong> <span class=
- "indexref"><a href="#ch-system-findutils">Findutils-4.9.0</a>
- -- <a href="#updatedb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uptime:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#uptime">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">useradd:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#useradd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">userdel:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#userdel">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">usermod:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#usermod">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">users:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#users">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">utmpdump:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#utmpdump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uuidd:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#uuidd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uuidgen:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#uuidgen">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">uuidparse:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#uuidparse">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vdir:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#vdir">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vi:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#vi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">view:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#view">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vigr:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#vigr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vim:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#vim">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vimdiff:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#vimdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vimtutor:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#vimtutor">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vipw:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#vipw">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">vmstat:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#vmstat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">w:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#w">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">wall:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#wall">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">watch:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#watch">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">wc:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#wc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">wdctl:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#wdctl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">whatis:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#whatis">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">wheel:</strong> <span class=
- "indexref"><a href="#ch-system-wheel">Wheel-0.42.0</a></span>
- </li>
- <li>
- <strong class="item">whereis:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#whereis">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">who:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#who">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">whoami:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#whoami">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">wipefs:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#wipefs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">x86_64:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#x86_64">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xargs:</strong> <span class=
- "indexref"><a href="#ch-system-findutils">Findutils-4.9.0</a>
- -- <a href="#xargs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xgettext:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#xgettext">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xmlwf:</strong> <span class=
- "indexref"><a href="#ch-system-expat">Expat-2.6.0</a> --
- <a href="#xmlwf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xsubpp:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#xsubpp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xtrace:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#xtrace">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xxd:</strong> <span class=
- "indexref"><a href="#ch-system-vim">Vim-9.1.0041</a> --
- <a href="#xxd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xz:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xz">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzcat:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzcat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzcmp:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzcmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzdec:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzdec">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzdiff:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzegrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzegrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzfgrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzfgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzgrep:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzless:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzless">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">xzmore:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#xzmore">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">yacc:</strong> <span class=
- "indexref"><a href="#ch-system-bison">Bison-3.8.2</a> --
- <a href="#yacc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">yes:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#yes">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zcat:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zcat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zcmp:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zcmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zdiff:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zdiff">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zdump:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#zdump">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zegrep:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zegrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zfgrep:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zfgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zforce:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zforce">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zgrep:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zic:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#zic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zipdetails:</strong> <span class=
- "indexref"><a href="#ch-system-perl">Perl-5.38.2</a> --
- <a href="#zipdetails">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zless:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zless">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zmore:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#zmore">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">znew:</strong> <span class=
- "indexref"><a href="#ch-system-gzip">Gzip-1.13</a> -- <a href=
- "#znew">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zramctl:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#zramctl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zstd:</strong> <span class=
- "indexref"><a href="#ch-system-zstd">Zstd-1.5.5</a> -- <a href=
- "#zstd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zstdgrep:</strong> <span class=
- "indexref"><a href="#ch-system-zstd">Zstd-1.5.5</a> -- <a href=
- "#zstdgrep">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">zstdless:</strong> <span class=
- "indexref"><a href="#ch-system-zstd">Zstd-1.5.5</a> -- <a href=
- "#zstdless">Описание</a><br /></span>
- </li>
- </ul>
- <h2>
- <a id="library-index" name="library-index"></a>Библиотеки
- </h2>
- <ul>
- <li>
- <strong class="item">Expat:</strong> <span class=
- "indexref"><a href="#ch-system-xml-parser">XML::Parser-2.47</a>
- -- <a href="#Expat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ld-2.39.so:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#ld.so">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libacl:</strong> <span class=
- "indexref"><a href="#ch-system-acl">Acl-2.3.2</a> -- <a href=
- "#libacl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libanl:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libanl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libasprintf:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#libasprintf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libattr:</strong> <span class=
- "indexref"><a href="#ch-system-attr">Attr-2.5.2</a> -- <a href=
- "#libattr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libbfd:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libbfd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libblkid:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#libblkid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libBrokenLocale:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libBrokenLocale">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libbz2:</strong> <span class=
- "indexref"><a href="#ch-system-bzip2">Bzip2-1.0.8</a> --
- <a href="#libbz2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libc:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcap:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#libcap">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcheck:</strong> <span class=
- "indexref"><a href="#ch-system-check">Check-0.15.2</a> --
- <a href="#libcheck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcom_err:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#libcom_err">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcrypt:</strong> <span class=
- "indexref"><a href="#ch-system-libxcrypt">Libxcrypt-4.4.36</a>
- -- <a href="#libcrypt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libcrypto.so:</strong> <span class=
- "indexref"><a href="#ch-system-openssl">OpenSSL-3.2.1</a> --
- <a href="#libcrypto">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libctf:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libctf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libctf-nobfd:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libctf-nobfd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libc_malloc_debug:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libc_malloc_debug">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libdl:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libdl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libe2p:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#libe2p">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libelf:</strong> <span class=
- "indexref"><a href="#ch-system-libelf">Libelf из
- Elfutils-0.190</a> -- <a href=
- "#libelf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libexpat:</strong> <span class=
- "indexref"><a href="#ch-system-expat">Expat-2.6.0</a> --
- <a href="#libexpat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libexpect-5.45.4:</strong> <span class=
- "indexref"><a href="#ch-system-expect">Expect-5.45.4</a> --
- <a href="#libexpect">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libext2fs:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#libext2fs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libfdisk:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#libfdisk">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libffi:</strong> <span class=
- "indexref"><a href="#ch-system-libffi">Libffi-3.4.4</a></span>
- </li>
- <li>
- <strong class="item">libfl:</strong> <span class=
- "indexref"><a href="#ch-system-flex">Flex-2.6.4</a> -- <a href=
- "#libfl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libformw:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#libformw">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libg:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libg">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgcc:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libgcc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgcov:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libgcov">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgdbm:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a> -- <a href=
- "#libgdbm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgdbm_compat:</strong> <span class=
- "indexref"><a href="#ch-system-gdbm">GDBM-1.23</a> -- <a href=
- "#libgdbm_compat">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgettextlib:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#libgettextlib">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgettextpo:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#libgettextpo">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgettextsrc:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#libgettextsrc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgmp:</strong> <span class=
- "indexref"><a href="#ch-system-gmp">GMP-6.3.0</a> -- <a href=
- "#libgmp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgmpxx:</strong> <span class=
- "indexref"><a href="#ch-system-gmp">GMP-6.3.0</a> -- <a href=
- "#libgmpxx">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgomp:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libgomp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libgprofng:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libgprofng">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libhistory:</strong> <span class=
- "indexref"><a href="#ch-system-readline">Readline-8.2</a> --
- <a href="#libhistory">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libhwasan:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libhwasan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libitm:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libitm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libkmod:</strong> <span class=
- "indexref"><a href="#ch-system-kmod">Kmod-31</a></span>
- </li>
- <li>
- <strong class="item">liblsan:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#liblsan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libltdl:</strong> <span class=
- "indexref"><a href="#ch-system-libtool">Libtool-2.4.7</a> --
- <a href="#libltdl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">liblto_plugin:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#liblto_plugin">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">liblzma:</strong> <span class=
- "indexref"><a href="#ch-system-xz">Xz-5.4.6</a> -- <a href=
- "#liblzma">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libm:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmagic:</strong> <span class=
- "indexref"><a href="#ch-system-file">File-5.45</a> -- <a href=
- "#libmagic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libman:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#libman">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmandb:</strong> <span class=
- "indexref"><a href="#ch-system-man-db">Man-DB-2.12.0</a> --
- <a href="#libmandb">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmcheck:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libmcheck">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmemusage:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libmemusage">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmenuw:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#libmenuw">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmount:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#libmount">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmpc:</strong> <span class=
- "indexref"><a href="#ch-system-mpc">MPC-1.3.1</a> -- <a href=
- "#libmpc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmpfr:</strong> <span class=
- "indexref"><a href="#ch-system-mpfr">MPFR-4.2.1</a> -- <a href=
- "#libmpfr">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libmvec:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libmvec">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libncurses++w:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#libncurses__w">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libncursesw:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#libncursesw">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libnsl:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libnsl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libnss_*:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libnss">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libopcodes:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libopcodes">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libpanelw:</strong> <span class=
- "indexref"><a href=
- "#ch-system-ncurses">Ncurses-6.4-20230520</a> -- <a href=
- "#libpanelw">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libpcprofile:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libpcprofile">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libpipeline:</strong> <span class=
- "indexref"><a href=
- "#ch-system-libpipeline">Libpipeline-1.5.7</a></span>
- </li>
- <li>
- <strong class="item">libpkgconf:</strong> <span class=
- "indexref"><a href="#ch-system-pkgconf">Pkgconf-2.1.1</a> --
- <a href="#libpkgconf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libproc-2:</strong> <span class=
- "indexref"><a href="#ch-system-procps">Procps-ng-4.0.4</a> --
- <a href="#libproc-2">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libpsx:</strong> <span class=
- "indexref"><a href="#ch-system-libcap">Libcap-2.69</a> --
- <a href="#libpsx">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libpthread:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libpthread">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libquadmath:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libquadmath">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libreadline:</strong> <span class=
- "indexref"><a href="#ch-system-readline">Readline-8.2</a> --
- <a href="#libreadline">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libresolv:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libresolv">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">librt:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#librt">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libsframe:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#libsframe">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libsmartcols:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#libsmartcols">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libss:</strong> <span class=
- "indexref"><a href="#ch-system-e2fsprogs">E2fsprogs-1.47.0</a>
- -- <a href="#libss">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libssl.so:</strong> <span class=
- "indexref"><a href="#ch-system-openssl">OpenSSL-3.2.1</a> --
- <a href="#libssl">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libssp:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libssp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libstdbuf:</strong> <span class=
- "indexref"><a href="#ch-system-coreutils">Coreutils-9.4</a> --
- <a href="#libstdbuf">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libstdc++:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libstdc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libstdc++exp:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libstdcexp">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libstdc++fs:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libstdcfs">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libsubid:</strong> <span class=
- "indexref"><a href="#ch-system-shadow">Shadow-4.14.5</a> --
- <a href="#libsubid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libsupc++:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libsupc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtcl8.6.so:</strong> <span class=
- "indexref"><a href="#ch-system-tcl">Tcl-8.6.13</a> -- <a href=
- "#libtcl8.6.so">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtclstub8.6.a:</strong> <span class=
- "indexref"><a href="#ch-system-tcl">Tcl-8.6.13</a> -- <a href=
- "#libtclstub8.6.a">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtextstyle:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#libtextstyle">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libthread_db:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libthread_db">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libtsan:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libtsan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libubsan:</strong> <span class=
- "indexref"><a href="#ch-system-gcc">GCC-13.2.0</a> -- <a href=
- "#libubsan">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libudev:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из Systemd-255</a> --
- <a href="#libudev">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libutil:</strong> <span class=
- "indexref"><a href="#ch-system-glibc">Glibc-2.39</a> --
- <a href="#libutil">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libuuid:</strong> <span class=
- "indexref"><a href=
- "#ch-system-util-linux">Util-linux-2.39.3</a> -- <a href=
- "#libuuid">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">liby:</strong> <span class=
- "indexref"><a href="#ch-system-bison">Bison-3.8.2</a> --
- <a href="#liby">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libz:</strong> <span class=
- "indexref"><a href="#ch-system-zlib">Zlib-1.3.1</a> -- <a href=
- "#libz">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">libzstd:</strong> <span class=
- "indexref"><a href="#ch-system-zstd">Zstd-1.5.5</a> -- <a href=
- "#libzstd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">preloadable_libintl:</strong> <span class=
- "indexref"><a href="#ch-system-gettext">Gettext-0.22.4</a> --
- <a href="#preloadable_libintl">Описание</a><br /></span>
- </li>
- </ul>
- <h2>
- <a id="scripts-index" name="scripts-index"></a>Скрипты
- </h2>
- <ul>
- <li>
- <strong class="item">checkfs:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#checkfs-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">cleanfs:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#cleanfs-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">console:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#console-bootscripts">Описание</a><br /></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-console">Настройка консоли
- Linux</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">File creation at boot:</strong>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-createfiles">Создание файлов
- при загрузке</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">functions:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#functions-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">halt:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#halt-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">hostname:</strong>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-hostname">Настройка имени
- хоста</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">ifdown:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#ifdown-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ifup:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#ifup-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">ipv4-static:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#ipv4-static-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">localnet:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#localnet-bootscripts">Описание</a><br /></span>
- <ul>
- <li>
- <strong class="secitem">/etc/hosts:</strong> <span class=
- "indexref"><a href="#ch-config-hosts">Настройка файла
- /etc/hosts</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">modules:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#modules-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mountfs:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#mountfs-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">mountvirtfs:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#mountvirtfs-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">network:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#network-bootscripts">Описание</a><br /></span>
- <ul>
- <li>
- <strong class="secitem">/etc/hosts:</strong> <span class=
- "indexref"><a href="#ch-config-hosts">Настройка файла
- /etc/hosts</a></span>
- </li>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-network">Настройка
- сети</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">rc:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#rc-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">reboot:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#reboot-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sendsignals:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#sendsignals-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">setclock:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#setclock-bootscripts">Описание</a><br /></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-clock">Настройка системного
- времени</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">swap:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#swap-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sysctl:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#sysctl-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">sysklogd:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#sysklogd-bootscripts">Описание</a><br /></span>
- <ul>
- <li>
- <strong class="secitem">configuring:</strong> <span class=
- "indexref"><a href="#ch-config-sysklogd">Настройка скрипта
- Sysklogd</a></span>
- </li>
- </ul>
- </li>
- <li>
- <strong class="item">template:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#template-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">udev:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#udev-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">udev_retry:</strong> <span class=
- "indexref"><a href=
- "#ch-config-bootscripts">LFS-Bootscripts-20230728</a> --
- <a href="#udev-retry-bootscripts">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">dwp:</strong> <span class=
- "indexref"><a href="#ch-system-binutils">Binutils-2.42</a> --
- <a href="#dwp">Описание</a><br /></span>
- </li>
- </ul>
- <h2>
- <a id="other-index" name="other-index"></a>Разное
- </h2>
- <ul>
- <li>
- <strong class="item">/boot/config-6.7.4:</strong> <span class=
- "indexref"><a href="#ch-bootable-kernel">Linux-6.7.4</a> --
- <a href="#config">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/boot/System.map-6.7.4:</strong>
- <span class="indexref"><a href=
- "#ch-bootable-kernel">Linux-6.7.4</a> -- <a href=
- "#System.map">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/dev/*:</strong> <span class=
- "indexref"><a href="#ch-tools-kernfs">Подготовка виртуальных
- файловых систем ядра</a></span>
- </li>
- <li>
- <strong class="item">/etc/fstab:</strong> <span class=
- "indexref"><a href="#ch-bootable-fstab">Создание файла
- /etc/fstab</a></span>
- </li>
- <li>
- <strong class="item">/etc/group:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/etc/hosts:</strong> <span class=
- "indexref"><a href="#ch-config-hosts">Настройка файла
- /etc/hosts</a></span>
- </li>
- <li>
- <strong class="item">/etc/inittab:</strong> <span class=
- "indexref"><a href="#conf-sysvinit">Настройка
- Sysvinit</a></span>
- </li>
- <li>
- <strong class="item">/etc/inputrc:</strong> <span class=
- "indexref"><a href="#ch-config-inputrc">Создание файла
- /etc/inputrc</a></span>
- </li>
- <li>
- <strong class="item">/etc/ld.so.conf:</strong> <span class=
- "indexref"><a href="#conf-ld">Настройка динамического
- загрузчика</a></span>
- </li>
- <li>
- <strong class="item">/etc/lfs-release:</strong> <span class=
- "indexref"><a href="#ch-finish-theend">Заключение</a></span>
- </li>
- <li>
- <strong class="item">/etc/localtime:</strong> <span class=
- "indexref"><a href="#conf-glibc">Настройка Glibc</a></span>
- </li>
- <li>
- <strong class="item">/etc/lsb-release:</strong> <span class=
- "indexref"><a href="#ch-finish-theend">Заключение</a></span>
- </li>
- <li>
- <strong class="item">/etc/mke2fs.conf:</strong> <span class=
- "indexref"><a href="#conf-e2fsprogs">Настройка
- E2fsprogs</a></span>
- </li>
- <li>
- <strong class="item">/etc/modprobe.d/usb.conf:</strong>
- <span class="indexref"><a href="#conf-modprobe">Настройка
- порядка загрузки модулей Linux</a></span>
- </li>
- <li>
- <strong class="item">/etc/nsswitch.conf:</strong> <span class=
- "indexref"><a href="#conf-glibc">Настройка Glibc</a></span>
- </li>
- <li>
- <strong class="item">/etc/os-release:</strong> <span class=
- "indexref"><a href="#ch-finish-theend">Заключение</a></span>
- </li>
- <li>
- <strong class="item">/etc/passwd:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/etc/profile:</strong> <span class=
- "indexref"><a href="#ch-config-locale">Настройка системной
- локали</a></span>
- </li>
- <li>
- <strong class="item">/etc/protocols:</strong> <span class=
- "indexref"><a href=
- "#ch-system-iana-etc">Iana-Etc-20240125</a></span>
- </li>
- <li>
- <strong class="item">/etc/resolv.conf:</strong> <span class=
- "indexref"><a href="#resolv.conf">Создание файла
- /etc/resolv.conf</a></span>
- </li>
- <li>
- <strong class="item">/etc/services:</strong> <span class=
- "indexref"><a href=
- "#ch-system-iana-etc">Iana-Etc-20240125</a></span>
- </li>
- <li>
- <strong class="item">/etc/syslog.conf:</strong> <span class=
- "indexref"><a href="#conf-sysklogd">Настройка
- Sysklogd</a></span>
- </li>
- <li>
- <strong class="item">/etc/udev:</strong> <span class=
- "indexref"><a href="#ch-system-udev">Udev из Systemd-255</a> --
- <a href="#etc-udev">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/etc/udev/hwdb.bin:</strong> <span class=
- "indexref"><a href="#conf-udev">Настройка Udev</a></span>
- </li>
- <li>
- <strong class="item">/etc/vimrc:</strong> <span class=
- "indexref"><a href="#conf-vim">Настройка Vim</a></span>
- </li>
- <li>
- <strong class="item">/run/utmp:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/usr/include/asm-generic/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#asm-generic">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/asm/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#asm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/drm/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#drm">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/linux/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#linux">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/misc/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#misc">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/mtd/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#mtd">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/rdma/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#rdma">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/scsi/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#scsi">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/sound/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#sound">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/video/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#video">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/usr/include/xen/*.h:</strong>
- <span class="indexref"><a href=
- "#ch-tools-linux-headers">Заголовочные файлы Linux-6.7.4
- API</a> -- <a href="#xen">Описание</a><br /></span>
- </li>
- <li>
- <strong class="item">/var/log/btmp:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/var/log/lastlog:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/var/log/wtmp:</strong> <span class=
- "indexref"><a href="#ch-tools-createfiles">Создание основных
- файлов и символических ссылок</a></span>
- </li>
- <li>
- <strong class="item">/etc/shells:</strong> <span class=
- "indexref"><a href="#ch-config-shells">Создание файла
- /etc/shells</a></span>
- </li>
- <li>
- <strong class="item">man pages:</strong> <span class=
- "indexref"><a href="#ch-system-man-pages">Man-pages-6.06</a> --
- <a href="#man-pages">Описание</a><br /></span>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </body>
-</html>