diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
commit | 5a6834585c43296c2207f5f251d3d5c237c7c8d2 (patch) | |
tree | 5c3f9adc4c5fd0b3bdc3b017b021a36016c0f15b /lfs-12.0-sysv/LFS-BOOK.html | |
parent | 2b6ec04f001bbdf660476a1275d90075d746833c (diff) | |
download | sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.tar.gz sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.zip |
Update LFS mirror
Diffstat (limited to 'lfs-12.0-sysv/LFS-BOOK.html')
-rwxr-xr-x | lfs-12.0-sysv/LFS-BOOK.html | 57628 |
1 files changed, 0 insertions, 57628 deletions
diff --git a/lfs-12.0-sysv/LFS-BOOK.html b/lfs-12.0-sysv/LFS-BOOK.html deleted file mode 100755 index e8d88e8..0000000 --- a/lfs-12.0-sysv/LFS-BOOK.html +++ /dev/null @@ -1,57628 +0,0 @@ -<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 V1.79.1" /> - <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.0"> - <div class="book"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="idm1"></a>Линукс с нуля - </h1> - </div> - <div> - <h2 class="subtitle"> - Версия 12.0 - </h2> - </div> - <div> - <h2 class="subtitle"> - Дата публикации 2 сентября 2023 - </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-2023 Gerard Beekmans - </p> - </div> - <div> - <div class="legalnotice"> - <a id="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.41 - Проход - 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.4.12 API</a> - </li> - <li class="sect1"> - <a href="#ch-tools-glibc">Glibc-2.38</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</a> - </li> - <li class="sect1"> - <a href="#ch-tools-bash">Bash-5.2.15</a> - </li> - <li class="sect1"> - <a href="#ch-tools-coreutils">Coreutils-9.3</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.2.2</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.12</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.4</a> - </li> - <li class="sect1"> - <a href="#ch-tools-binutils-pass2">Binutils-2.41 - Проход - 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</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.0</a> - </li> - <li class="sect1"> - <a href="#ch-tools-Python">Python-3.11.4</a> - </li> - <li class="sect1"> - <a href="#ch-tools-texinfo">Texinfo-7.0.3</a> - </li> - <li class="sect1"> - <a href="#ch-tools-util-linux">Util-linux-2.39.1</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.05.01</a> - </li> - <li class="sect1"> - <a href="#ch-system-iana-etc">Iana-Etc-20230810</a> - </li> - <li class="sect1"> - <a href="#ch-system-glibc">Glibc-2.38</a> - </li> - <li class="sect1"> - <a href="#ch-system-zlib">Zlib-1.2.13</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.4</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.6.0</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-binutils">Binutils-2.41</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.0</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.1</a> - </li> - <li class="sect1"> - <a href="#ch-system-acl">Acl-2.3.1</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.13</a> - </li> - <li class="sect1"> - <a href="#ch-system-gcc">GCC-13.2.0</a> - </li> - <li class="sect1"> - <a href="#ch-system-pkgconf">Pkgconf-2.0.1</a> - </li> - <li class="sect1"> - <a href="#ch-system-ncurses">Ncurses-6.4</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</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.15</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.5.0</a> - </li> - <li class="sect1"> - <a href="#ch-system-inetutils">Inetutils-2.4</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.0</a> - </li> - <li class="sect1"> - <a href="#ch-system-xml-parser">XML::Parser-2.46</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.71</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.1.2</a> - </li> - <li class="sect1"> - <a href="#ch-system-kmod">Kmod-30</a> - </li> - <li class="sect1"> - <a href="#ch-system-libelf">Libelf из Elfutils-0.189</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.11.4</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.41.1</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.2.1</a> - </li> - <li class="sect1"> - <a href="#ch-system-coreutils">Coreutils-9.3</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.2.2</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.06</a> - </li> - <li class="sect1"> - <a href="#ch-system-gzip">Gzip-1.12</a> - </li> - <li class="sect1"> - <a href="#ch-system-iproute2">IPRoute2-6.4.0</a> - </li> - <li class="sect1"> - <a href="#ch-system-kbd">Kbd-2.6.1</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.0.3</a> - </li> - <li class="sect1"> - <a href="#ch-system-vim">Vim-9.0.1677</a> - </li> - <li class="sect1"> - <a href="#ch-system-markupsafe">MarkupSafe-2.1.3</a> - </li> - <li class="sect1"> - <a href="#ch-system-jinja2">Jinja2-3.1.2</a> - </li> - <li class="sect1"> - <a href="#ch-system-udev">Udev из Systemd-254</a> - </li> - <li class="sect1"> - <a href="#ch-system-man-db">Man-DB-2.11.2</a> - </li> - <li class="sect1"> - <a href="#ch-system-procps">Procps-ng-4.0.3</a> - </li> - <li class="sect1"> - <a href="#ch-system-util-linux">Util-linux-2.39.1</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.07</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-profile">Файлы запуска оболочки - Bash</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.4.12</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="#idm19716">Предметный указатель</a> - </h3> - </li> - </ul> - </div> - <div class="preface" lang="en"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="preface"></a>Предисловие - </h1> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-foreword"></a>Предисловие - </h2> - </div> - </div> - </div> - <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 Beekmans<br /> - gerard AT linuxfromscratch D0T org - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-audience"></a>Аудитория, на которую рассчитана - эта книга - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-architecture"></a>Целевые архитектуры LFS - </h2> - </div> - </div> - </div> - <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://www.linuxfromscratch.org/~thomas/multilib/index.html">https://www.linuxfromscratch.org/~thomas/multilib/index.html</a>. - Но это более продвинутая тема. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-prerequisites"></a>Предпосылки - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-standards"></a>LFS и стандарты - </h2> - </div> - </div> - </div> - <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 "с нуля" возможно, но этого нельзя сделать без - установки множества дополнительных пакетов, которые выходят за - рамки этой книги. Однако, инструкции по их установке можно найти - в книге BLFS. - </p> - <div class="variablelist"> - <h4> - <a id="idm98"></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="idm125"></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="idm152"></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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-why"></a>Информация о пакетах, используемых в - этой книге - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-typography"></a>Оформление - </h2> - </div> - </div> - </div> - <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 > $LFS/etc/group << "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><ЗАМЕНЯЕМЫЙ - ТЕКСТ></code></em> - </p> - <p> - Этот формат используется для текста, который не должен быть - напечатан так, как отображается, или для операций копирования и - вставки. - </p> - <p> - <em class="replaceable"><code>[НЕОБЯЗАТЕЛЬНЫЙ ТЕКСТ]</code></em> - </p> - <p> - Этот формат используется для текста, который является - необязательным. - </p> - <p> - <code class="filename">passwd(5)</code> - </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>. Когда в книге - используется <code class="filename">passwd(5)</code>, имеется в - виду конкретно <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><имя - программы></code></em></strong></span>. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-organization"></a>Структура - </h2> - </div> - </div> - </div> - <p> - Эта книга разделена на несколько частей. - </p> - <div class="sect2" lang="en"> - <h3 class="sect2"> - Часть I - Введение - </h3> - <p> - Эта часть содержит важные замечания о том, как выполнить - установку LFS. Также здесь представлена метаинформация о книге - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - Часть II - Подготовка к сборке - </h3> - <p> - Часть II описывает, как подготовиться к процессу сборки — - создать разделы, загрузить пакеты и выполнить компиляцию - временных инструментов. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - Часть III - Создание кросс-тулчейна LFS и временных - инструментов - </h3> - <p> - Часть III содержит инструкции по созданию инструментов, - необходимых для создания конечной системы LFS. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - Часть IV - Сборка системы LFS - </h3> - <p> - Часть IV проводит читателя через сборку системы LFS—компиляцию - и установку всех пакетов один за другим, настройку сценариев - загрузки и установку ядра. Полученная в результате система - Linux является основой, на которой можно собрать другое - программное обеспечение для расширения системы по желанию. В - конце этой книги есть простой в использовании справочник со - списком всех программ, библиотек и важных файлов, которые были - установлены. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - Часть V - Приложения - </h3> - <p> - Часть V содержит информацию о самой книге, включая акронимы и - термины, благодарности, зависимости пакетов, список загрузочных - сценариев LFS, лицензии на распространение книги и - исчерпывающий указатель пакетов, программ, библиотек и - сценариев. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="pre-errata"></a>Ошибки и рекомендации по - безопасности - </h2> - </div> - </div> - </div> - <p> - Программное обеспечение, используемое для создания системы LFS, - постоянно обновляется и совершенствуется. Предупреждения - безопасности и исправления ошибок могут появиться после выхода - книги LFS. Чтобы проверить, нуждаются ли пакеты или инструкции в - этом выпуске LFS в каких-либо изменениях для устранения - уязвимостей в системе безопасности или исправления других ошибок, - посетите <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/errata/12.0/">https://mirror.linuxfromscratch.ru/lfs/errata/12.0/</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="part"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="part1"></a>Часть I. Введение - </h1> - </div> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-intro"></a>Глава 1. Введение - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-intro-how"></a>1.1. Как собрать систему LFS - </h2> - </div> - </div> - </div> - <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. Подготовка хост-системы">Глава 2</a> этой книги - содержит информацию, о том, как создать новые разделы Linux и - файловую систему, где будет скомпилирована и установлена новая - система LFS. <a class="xref" href="#chapter-getting-materials" - title="Глава 3. Пакеты и патчи">Глава 3</a> содержит - информацию, о том, какие пакеты и исправления необходимо - загрузить для сборки системы LFS и как их хранить на файловой - системе. <a class="xref" href="#chapter-final-preps" title= - "Глава 4. Заключительный этап подготовки">Глава 4</a> - освещает вопросы настройки рабочего окружения. Пожалуйста, - внимательно прочитайте <a class="xref" href= - "#chapter-final-preps" title= - "Глава 4. Заключительный этап подготовки">Глава 4</a>, так - как в ней объясняется несколько важных моментов, о которых вам - необходимо знать, прежде чем вы начнёте работать со следующими - главами. - </p> - <p> - <a class="xref" href="#chapter-cross-tools" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a> содержит - информацию об установке первоначального набора инструментов - (binutils, gcc и glibc) с использованием методов - кросс-компиляции для изоляции новых инструментов от - хост-системы. - </p> - <p> - <a class="xref" href="#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - рассказывает, как выполнить кросс-компиляцию базовых утилит с - использованием только что собранного временного набора - инструментов. - </p> - <p> - В <a class="xref" href="#chapter-chroot-temporary-tools" title= - "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> - Глава 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. Установка базового системного программного обеспечения"> - Глава 8</a> будет собрана полноценная система LFS. Еще - одно преимущество среды chroot заключается в том, что она - позволяет вам продолжать использовать хост-систему во время - сборки LFS. Ожидая завершения компиляции пакетов, вы можете - продолжать пользоваться своим компьютером в обычном режиме. - </p> - <p> - Чтобы завершить установку, в <a class="xref" href= - "#chapter-config" title= - "Глава 9. Системные настройки">Глава 9</a> происходит - настройка базовой конфигурации системы, в <a class="xref" href= - "#chapter-bootable" title= - "Глава 10. Делаем систему LFS загрузочной">Глава 10</a> - настраиваются ядро и загрузчик. <a class="xref" href= - "#chapter-finalizing" title= - "Глава 11. Заключение">Глава 11</a> содержит информацию о - том как расширить возможности системы LFS. После выполнения - шагов, описанных в этой главе, компьютер будет готов к загрузке - в новую систему LFS. - </p> - <p> - Здесь описан процесс сборки системы в двух словах. Подробная - информация о каждом шаге обсуждается в следующих главах и - описаниях пакетов. Элементы, которые кажутся сложными сейчас, - будут разъяснены позже, и все встанет на свои места, по мере - прочтения книги. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-intro-whatsnew"></a>1.2. Что нового с момента - последнего релиза - </h2> - </div> - </div> - </div> - <div class="admon caution"> - <h3> - Внимание - </h3> - <p> - В процессе разработки LFS инструкции в книге часто - изменяются, чтобы адаптироваться к обновлению пакета или - использовать преимущества новых функций из обновленных - пакетов. Смешение инструкций разных версий книги LFS может - привести к незначительным поломкам. Такого рода проблемы - обычно являются результатом повторного использования - некоторых скриптов, созданных для предыдущей версии LFS. - Такое повторное использование настоятельно не рекомендуется. - Если вы по какой-либо причине повторно используете скрипты из - предыдущей версии LFS, вам нужно быть очень осторожным при - обновлении скриптов, чтобы они соответствовали текущей версии - книги LFS. - </p> - </div> - <p> - В книге LFS 12.0 для GCC установлен параметр <em class= - "parameter"><code>--disable-fixincludes</code></em>. Этот - параметр конфигурации, недавно добавлен в GCC 13.1, чтобы - предотвратить <span class="quote">«<span class= - "quote">исправление</span>»</span> системных заголовков. Такое - <span class="quote">«<span class= - "quote">исправление</span>»</span> не требуется для современной - системы Linux и может вызвать проблемы, если пакет будет - обновлен после установки GCC. - </p> - <p> - Ниже приведен список пакетов, обновленных с момента предыдущего - выпуска книги. - </p> - <div class="itemizedlist"> - <p class="title"> - <strong>Обновлены:</strong> - </p> - <ul> - <li class="listitem"> - <p> - Bc 6.6.0 - </p> - </li> - <li class="listitem"> - <p> - Binutils-2.41 - </p> - </li> - <li class="listitem"> - <p> - Coreutils-9.3 - </p> - </li> - <li class="listitem"> - <p> - Diffutils-3.10 - </p> - </li> - <li class="listitem"> - <p> - File-5.45 - </p> - </li> - <li class="listitem"> - <p> - Flit-core-3.9.0 - </p> - </li> - <li class="listitem"> - <p> - Gawk-5.2.2 - </p> - </li> - <li class="listitem"> - <p> - GCC-13.2.0 - </p> - </li> - <li class="listitem"> - <p> - Gettext-0.22 - </p> - </li> - <li class="listitem"> - <p> - Glibc-2.38 - </p> - </li> - <li class="listitem"> - <p> - GMP-6.3.0 - </p> - </li> - <li class="listitem"> - <p> - Grep-3.11 - </p> - </li> - <li class="listitem"> - <p> - Groff-1.23.0 - </p> - </li> - <li class="listitem"> - <p> - IANA-Etc-20230810 - </p> - </li> - <li class="listitem"> - <p> - IPRoute2-6.4.0 - </p> - </li> - <li class="listitem"> - <p> - Kbd-2.6.1 - </p> - </li> - <li class="listitem"> - <p> - Less-643 - </p> - </li> - <li class="listitem"> - <p> - Libcap-2.69 - </p> - </li> - <li class="listitem"> - <p> - Libelf-0.189 (из elfutils) - </p> - </li> - <li class="listitem"> - <p> - Linux-6.4.12 - </p> - </li> - <li class="listitem"> - <p> - Make-4.4.1 - </p> - </li> - <li class="listitem"> - <p> - Man-pages-6.05.01 - </p> - </li> - <li class="listitem"> - <p> - Meson-1.2.1 - </p> - </li> - <li class="listitem"> - <p> - Openssl-3.1.2 - </p> - </li> - <li class="listitem"> - <p> - Pkgconf-2.0.1 - </p> - </li> - <li class="listitem"> - <p> - Perl-5.38.0 - </p> - </li> - <li class="listitem"> - <p> - Procps-ng-4.0.3 - </p> - </li> - <li class="listitem"> - <p> - Python-3.11.4 - </p> - </li> - <li class="listitem"> - <p> - Sysklogd-1.5.1 - </p> - </li> - <li class="listitem"> - <p> - Systemd-254 - </p> - </li> - <li class="listitem"> - <p> - Tar-1.35 - </p> - </li> - <li class="listitem"> - <p> - Texinfo-7.0.3 - </p> - </li> - <li class="listitem"> - <p> - Tzdata-2023c - </p> - </li> - <li class="listitem"> - <p> - Util-Linux-2.39.1 - </p> - </li> - <li class="listitem"> - <p> - Vim-9.0.1677 - </p> - </li> - <li class="listitem"> - <p> - wheel-0.41.1 - </p> - </li> - <li class="listitem"> - <p> - XZ-Utils-5.4.4 - </p> - </li> - <li class="listitem"> - <p> - Zstd-1.5.5 - </p> - </li> - </ul> - </div> - <div class="itemizedlist"> - <p class="title"> - <strong>Добавлены:</strong> - </p> - <ul> - <li class="listitem"> - <p> - Udev-254 (из systemd) - </p> - </li> - <li class="listitem"> - <p> - Jinja2-3.1.2 - </p> - </li> - <li class="listitem"> - <p> - MarkupSafe-2.1.3 - </p> - </li> - <li class="listitem"> - <p> - Libxcrypt-4.4.36 - </p> - </li> - <li class="listitem"> - <p> - Pkgconf-2.0.1 - </p> - </li> - <li class="listitem"> - <p> - Flit-core-3.9.0 - </p> - </li> - <li class="listitem"> - <p> - glibc-2.38-memalign_fix-1.patch - </p> - </li> - </ul> - </div> - <div class="itemizedlist"> - <p class="title"> - <strong>Удалены:</strong> - </p> - <ul> - <li class="listitem"> - <p> - eudev-3.2.12 - </p> - </li> - <li class="listitem"> - <p> - Pkg-config-0.29.2 - </p> - </li> - </ul> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-intro-changelog"></a>1.3. Журнал изменений - </h2> - </div> - </div> - </div> - <p> - Это версия 12.0 книги Linux From Scratch от 2 сентября 2023. - Если этой книге больше шести месяцев, возможно, уже доступна - более новая, улучшенная версия. Чтобы узнать это, проверьте - одно из зеркал <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> - 2023-08-25 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.4.12. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5320"> - #5320</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-08-18 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to udev-lfs-20230818. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-08-15 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Add a patch to fix a performance - regression in glibc's posix_memalign() function. - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5315"> - #5315</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to less-643. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5317"> - #5317</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to meson-1.2.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5314"> - #5314</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.4.10. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5313"> - #5313</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230810. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [rahul] - Update to pkgconf-2.0.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5316"> - #5316</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-08-07 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to xz-5.4.4. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5307"> - #5307</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to wheel-0.41.1 (Python Module). - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5311"> - #5311</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to man-pages-6.05.01. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5306"> - #5306</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.4.8. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5309"> - #5309</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230804. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [rahul] - Update to pkgconf-2.0.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5310"> - #5310</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-08-01 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to vim-9.0.1677. 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.2. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5305"> - #5305</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to man-pages-6.05. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5303"> - #5303</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to binutils-2.41. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5300"> - #5300</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to gmp-6.3.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5301"> - #5301</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to glibc-2.38. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5302"> - #5302</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-28 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update udev-lfs tarball to remove - obsolete cdrom rules and references to ISDN - devices. Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5291"> - #5291</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to wheel-0.41.0 (Python Module). - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5290"> - #5290</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to tar-1.35. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5287"> - #5287</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to <span class="phrase">udev - from</span> systemd-254. Fixes <a class="ulink" - href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5293"> - #5293</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to meson-1.2.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5286"> - #5286</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.4.7. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5288"> - #5288</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to gcc-13.2.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5292"> - #5292</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to file-5.45. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5294"> - #5294</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-28 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Enable cgroup-based memory pressure - information in kernel, and add the cgroup file - system into /etc/fstab and the mountvirtfs - bootscript. This is a preparation for udev from - systemd-254. Addresses <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5293"> - #5293</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-22 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Make the mountvirtfs bootscript create - essential symlinks in /dev. Fixes <a class="ulink" - href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5289"> - #5289</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-15 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Replace eudev-3.2.12 with udev from - systemd-253. Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5285"> - #5085</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230629. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.4.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5284"> - #5284</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to libxcrypt-4.4.36. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5283"> - #5283</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to groff-1.23.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5282"> - #5282</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to perl-5.38.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5281"> - #5281</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-02 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Add libxcrypt-4.4.35. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5280"> - #5280</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to iproute2-6.4.0. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5277"> - #5277</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to linux-6.4.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5276"> - #5276</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-07-01 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230615. 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.1671. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/4500"> - #4500</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to util-linux-2.39.1. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5278"> - #5278</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.3.10. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5276"> - #5276</a>. - </p> - </li> - <li class="listitem"> - <p> - [rahul] - Update to kbd-2.6.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5279"> - #5279</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to gettext-0.22. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5275"> - #5275</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-06-17 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Update to linux-6.3.8. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5272"> - #5272</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to kbd-2.6.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5273"> - #5273</a>. - </p> - </li> - <li class="listitem"> - <p> - [rahul] - Changed from pkg-config to pkgconf-1.9.5. - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5274"> - #5274</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-06-09 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.3.6. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5269"> - #5269</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to Python-3.11.4. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5271"> - #5271</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-06-03 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230524. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.3.5. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5264"> - #5264</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to openssl-3.1.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5267"> - #5267</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to meson-1.1.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5266"> - #5266</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to diffutils-3.10. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5262"> - #5262</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to bc-6.6.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5263"> - #5263</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-05-25 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [ken] - Remove unneeded group sgx from eudev rules. - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5265"> - #5265</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-05-18 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to util-linux-2.39. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5259"> - #5259</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.3.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5261"> - #5261</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to libcap-2.69. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5258"> - #5258</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to grep-3.11. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5256"> - #5256</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to flit_core-3.9.0. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5257"> - #5257</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to eudev-3.2.12. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5260"> - #5260</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-05-13 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Update to less-633. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5251"> - #5251</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to linux-6.3.2. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5255"> - #5255</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to xz-5.4.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5252"> - #5252</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to gawk-5.2.2. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5253"> - #5253</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Fix systemd runtime issue exploited by - GCC 13. Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5254"> - #5254</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-05-01 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to vim-9.0.1503. 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-20230418. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to sysvinit-3.07. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5250"> - #5250</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to iproute2-6.3.0. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5248"> - #5248</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to gcc-13.1.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5247"> - #5247</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to perl-5.36.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5246"> - #5246</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.3.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5245"> - #5245</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to coreutils-9.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5244"> - #5244</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-04-15 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to vim-9.0.1452. 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-20230405. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to zstd-1.5.5. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5239"> - #5239</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to Python-3.11.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5240"> - #5240</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to meson-1.1.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5242"> - #5242</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to man-pages-6.04. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5238"> - #5238</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.2.11. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5241"> - #5241</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-03-31 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Update to linux-6.2.9 (security fix). - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5230"> - #5230</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to grep-3.10. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5234"> - #5234</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to wheel-0.40.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5229"> - #5229</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to bc-6.5.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5228"> - #5228</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to texinfo-7.0.3. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5235"> - #5235</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to coreutils-9.2. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5232"> - #5232</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to libcap-2.68. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5236"> - #5236</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to tzdata-2023c. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5237"> - #5237</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to xz-5.4.2. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5233"> - #5233</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to openssl-3.1.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5227"> - #5227</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Add flit-core-3.8.0. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-03-15 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - Update to bc-6.4.0. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5217"> - #5217</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to grep-3.9. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5225"> - #5225</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to linux-6.2.6. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5226"> - #5226</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Update to iana-etc-20230306. Addresses - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5006"> - #5006</a>. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-03-04 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [xry111] - Update to bc-6.3.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5217"> - #5217</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to linux-6.2.2 (security fixes). - Fixes <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5218"> - #5218</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to procps-ng-4.0.3. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5220"> - #5220</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to iproute2-6.2.0. Fixes - <a class="ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5221"> - #5221</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to meson-1.0.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5222"> - #5222</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to make-4.4.1. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5223"> - #5223</a>. - </p> - </li> - <li class="listitem"> - <p> - [xry111] - Update to libelf-0.189. Fixes <a class= - "ulink" href= - "https://wiki.linuxfromscratch.org/lfs/ticket/5224"> - #5224</a>. - </p> - </li> - <li class="listitem"> - <p> - [bdubbs] - Change to a better host requirements - script in Chapter 2. - </p> - </li> - </ul> - </div> - </li> - <li class="listitem"> - <p> - 2023-03-01 - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - [bdubbs] - LFS-11.3 released. - </p> - </li> - </ul> - </div> - </li> - </ul> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-intro-resources"></a>1.4. Ресурсы - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <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="en"> - <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="en"> - <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="en"> - <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="en"> - <h3 class="sect2"> - <a id="ch-intro-contactinfo" name= - "ch-intro-contactinfo"></a>1.4.5. Контактная информация - </h3> - <p> - Пожалуйста, направляйте все свои вопросы и комментарии в один - из списков рассылки LFS (см. выше). - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-intro-askforhelp"></a>1.5. Помощь - </h2> - </div> - </div> - </div> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Если вы столкнулись с проблемой при сборки одного пакета с - помощью инструкцией из LFS, мы настоятельно не рекомендуем - публиковать проблему непосредственно в канале поддержки - разработчиков пакета до обсуждения через канал поддержки LFS, - указанный в <a class="xref" href="#ch-intro-resources" title= - "1.4. Ресурсы">Раздел 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. Ресурсы">Раздел 1.4, «Ресурсы»</a> этой книги). Мы - получаем много вопросов в службу поддержки каждый день, и на - многие из них можно легко ответить, зайдя в раздел часто - задаваемых вопросов и предварительно выполнив поиск в списках - рассылки. Чтобы мы могли оказать помощь, вам необходимо сначала - провести самостоятельное исследование. Это позволяет нам - сосредоточиться на более сложных вопросах в поддержке. Если - ваши поиски не привели к решению проблемы, включите всю - необходимую информацию (упомянутую ниже) в свой запрос о - помощи. - </p> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 1.5.1. Что следует упомянуть - </h3> - <p> - Помимо краткого объяснения возникшей проблемы, в любой запрос - о помощи необходимо включить следующую важную информацию: - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Используемая версия книги (в данном случае 12.0) - </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="en"> - <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="en"> - <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="part"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="part2"></a>Часть II. Подготовка к сборке - </h1> - </div> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-partitioning"></a>Глава 2. Подготовка - хост-системы - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-introduction"></a>2.1. Введение - </h2> - </div> - </div> - </div> - <p> - В этой главе проверяются и при необходимости устанавливаются - основные инструменты, необходимые для построения LFS. Затем - подготавливается раздел, в котором будет размещаться система - LFS. Мы создадим сам раздел, создадим на нем файловую систему и - смонтируем его. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-hostreqs"></a>2.2. Требования к - хост-системе - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 2.2.1. Аппаратное обеспечение - </h3> - <p> - Редакторы LFS рекомендуют, чтобы процессор имел не менее - четырех ядер и не менее 8 ГБ памяти. Старые системы, не - отвечающие этим требованиям, будут по-прежнему работать, но - время сборки пакетов будет значительно больше, чем указано в - документации. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 2.2.2. Программное обеспечение - </h3> - <p> - Ваша хост-система должна иметь следующее программное - обеспечение с указанными минимальными версиями. Это не должно - быть проблемой для большинства современных дистрибутивов - Linux. Также обратите внимание на то, что многие дистрибутивы - помещают заголовочные файлы в отдельные пакеты, как правило в - формате <span class="quote">«<span class= - "quote"><package-name>-devel</span>»</span> или - <span class="quote">«<span class= - "quote"><package-name>-dev</span>»</span>. Обязательно - установите эти пакеты, если ваш дистрибутив их предоставляет. - </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.41 не рекомендуется, так как она не - тестировалась) - </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-7.0</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.1</strong></span>, - включая компилятор C++, <span class= - "command"><strong>g++</strong></span> (версии выше - 11.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.14</strong></span> - </p> - <p> - Причиной, по которой указаны минимальные требования к - версии ядра, является то, что мы указываем эту версию - при сборке <span class="application">glibc</span> в - <a class="xref" href="#chapter-cross-tools" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a> и - <a class="xref" href="#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. Так как более старые ядра не - поддерживаются, скомпилированный пакет <span class= - "application">glibc</span> немного меньше и быстрее. По - состоянию на июнь 2023 г. 4.14 является самой старой - версией ядра, поддерживаемой разработчиками ядра. - </p> - <p> - Если версия ядра хоста более ранняя, чем 4.14, вам - необходимо обновить ядро на более современную версию. - Есть два способа сделать это. Во-первых, посмотрите, - предоставляет ли ваш дистрибутив Linux пакет ядра 4.14 - или более позднюю версию. Если это так, установите его. - Если ваш дистрибутив не предлагает приемлемый пакет - ядра или вы предпочитаете не устанавливать его, вы - можете скомпилировать ядро самостоятельно. Инструкции - по компиляции ядра и настройке загрузчика (при условии, - что хост использует GRUB) находятся в <a class="xref" - href="#chapter-bootable" title= - "Глава 10. Делаем систему LFS загрузочной">Глава 10</a>. - </p> - <p> - Для сборки LFS необходимо, чтобы ядро хоста - поддерживало псевдотерминал UNIX 98 (PTY). Обычно он - включен на всех настольных или серверных дистрибутивах, - поставляющих Linux 4.14 или более новое ядро. Если вы - собираете собственное хоста, убедитесь, что для - параметра <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"></a> - </h3> - <p> - Чтобы узнать, есть ли в вашей хост-системе все необходимые - пакеты и возможность компилировать программы, выполните - следующий скрипт: - </p> - <pre class="userinput"><kbd class= - "command">cat > version-check.sh << "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 > /dev/null 2> /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 &>/dev/null - then - echo "ERROR: Cannot find $2 ($1)"; return 1; - fi - v=$($2 --version 2>&1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1) - if printf '%s\n' $3 $v | sort --version-sort --check &>/dev/null - then - printf "OK: %-9s %-6s >= $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 &>/dev/null - then - printf "OK: Linux Kernel $kver >= $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-sort needs Coreutils >= 7.0 -ver_check Coreutils sort 7.0 || bail "--version-sort unsupported" -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.1 -ver_check "GCC (C++)" g++ 5.1 -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.14 - -if mount | grep -q 'devpts on /dev/pts' && [ -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>&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</code> -EOF - -bash version-check.sh</kbd></pre> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-stages"></a>2.3. Этапы сборки - системы LFS - </h2> - </div> - </div> - </div> - <p> - LFS разработан для сборки за один сеанс. То есть инструкция - предполагает, что система не будет выключаться в процессе. Это - не означает, что система должна быть собрана за один присест. - Для возобновления сборки в точке предыдущей остановки (после - перезагрузки/выключения), необходимо выполнить некоторые - процедуры повторно. - </p> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 2.3.1. Главы 1–4 - </h3> - <p> - Эти главы выполняются на хост-системе. После перезагрузки - обратите внимание на следующее: - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Процедуры, выполняемые пользователем <code class= - "systemitem">root</code> после Раздела 2.4, должны - иметь переменную среды LFS, установленную <span class= - "emphasis"><em>ДЛЯ ПОЛЬЗОВАТЕЛЯ ROOT</em></span>. - </p> - </li> - </ul> - </div> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 2.3.2. Главы 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="en"> - <h3 class="sect2"> - 2.3.3. Главы 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">Раздел 7.3.1, - «Монтирование и заполнение /dev»</a> и <a class="xref" - href="#ch-tools-kernfsmount" title= - "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел 7.3.2, - «Монтирование виртуальных файловых систем ядра»</a>. - </p> - </li> - </ul> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-creatingpartition"></a>2.4. - Создание нового раздела - </h2> - </div> - </div> - </div> - <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>, если - это необходимо. Пожалуйста, обратитесь к справке по - <code class="filename">cfdisk(8)</code> или <code class= - "filename">fdisk(8)</code>, если вы еще не знаете, как - пользоваться этими программами. - </p> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Для опытных пользователей возможны и другие схемы разбиения. - Система LFS может располагаться на программном <a class= - "ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/raid.html"> - RAID-массиве</a> или логическом томе <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/aboutlvm.html"> - LVM</a>. Однако для некоторых опций требуется <a class= - "ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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="en"> - <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="idm1279"></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="idm1283"></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="idm1290"></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="idm1299"></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.0/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">Раздел 10.2, - «Создание файла /etc/fstab»</a>. - </p> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-creatingfilesystem"></a>2.5. - Создание файловой системы на разделе - </h2> - </div> - </div> - </div> - <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><xxx></code></em></kbd></pre> - <p> - Замените <em class="replaceable"><code><xxx></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><yyy></code></em></kbd></pre> - <p> - Замените <em class="replaceable"><code><yyy></code></em> - именем <code class="systemitem">раздела подкачки</code>. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-aboutlfs"></a>2.6. Установка - переменной $LFS - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-partitioning-mounting"></a>2.7. Монтирование - нового раздела - </h2> - </div> - </div> - </div> - <p> - Теперь, когда файловая система создана, раздел должен быть - смонтирован, чтобы хост-система могла получить доступ к нему. В - книге предполагается, что файловая система монтируется в - каталог, указанный в переменной <code class="envar">LFS</code>, - описанной в предыдущем разделе. - </p> - <p> - Строго говоря, нельзя «смонтировать раздел». Монтируется - <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><xxx></code></em> $LFS</kbd></pre> - <p> - Замените <em class="replaceable"><code><xxx></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><xxx></code></em> $LFS -mkdir -v $LFS/home -mount -v -t ext4 /dev/<em class= -"replaceable"><code><yyy></code></em> $LFS/home</kbd></pre> - <p> - Замените <em class="replaceable"><code><xxx></code></em> - и <em class="replaceable"><code><yyy></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><xxx></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><zzz></code></em></kbd></pre> - <p> - Замените <em class="replaceable"><code><zzz></code></em> - именем <code class="systemitem">раздела подкачки</code>. - </p> - <p> - Теперь, когда новый раздел LFS готов к работе, пришло время - загрузить пакеты. - </p> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-getting-materials"></a>Глава 3. Пакеты и - патчи - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-materials-introduction"></a>3.1. Введение - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-materials-packages"></a>3.2. Все пакеты - </h2> - </div> - </div> - </div> - <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.1) - <span class="token">348 - 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.1.tar.xz"> - https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">95ce715fe09acca7c12d3306d0f076b2</code> - </p> - </dd> - <dt> - <span class="term">Attr (2.5.1) - <span class="token">456 - 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.1.tar.gz"> - https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">ac1c5a7a084f0f83b8cace34211f64d8</code> - </p> - </dd> - <dt> - <span class="term">Autoconf (2.71) - <span class= - "token">1,263 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.71.tar.xz"> - https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">12cfa1687ffa2606337efe1a64416106</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.15) - <span class= - "token">10,695 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.15.tar.gz">https://ftp.gnu.org/gnu/bash/bash-5.2.15.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">4281bb43497f3905a308430a8d6a30a5</code> - </p> - </dd> - <dt> - <span class="term">Bc (6.6.0) - <span class="token">455 - 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.6.0/bc-6.6.0.tar.xz"> - https://github.com/gavinhoward/bc/releases/download/6.6.0/bc-6.6.0.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">a148cbaaf8ff813b7289a00539e74a5f</code> - </p> - </dd> - <dt> - <span class="term">Binutils (2.41) - <span class= - "token">26,139 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.41.tar.xz"> - https://sourceware.org/pub/binutils/releases/binutils-2.41.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">256d7e0ad998e423030c84483a7c1e30</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.3) - <span class= - "token">5,673 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.3.tar.xz"> - https://ftp.gnu.org/gnu/coreutils/coreutils-9.3.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">040b4b7acaf89499834bfc79609af29f</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.189) - <span class= - "token">8,936 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.189/elfutils-0.189.tar.bz2"> - https://sourceware.org/ftp/elfutils/0.189/elfutils-0.189.tar.bz2</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">5cfaa711a90cb670406cd495aeaa6030</code> - </p> - </dd> - <dt> - <span class="term">Expat (2.5.0) - <span class= - "token">450 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.5.0.tar.xz"> - https://prdownloads.sourceforge.net/expat/expat-2.5.0.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">ac6677b6d1b95d209ab697ce8b688704</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.2.2) - <span class= - "token">3,324 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.2.2.tar.xz">https://ftp.gnu.org/gnu/gawk/gawk-5.2.2.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">d63b4de2c722cbd9b8cc8e6f14d78a1e</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> - <p> - Контрольная сумма SHA256: - </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) - <span class= - "token">9,775 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.tar.xz">https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">db2f3daf34fd5b85ab1a56f9033e42d1</code> - </p> - </dd> - <dt> - <span class="term">Glibc (2.38) - <span class= - "token">18,471 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.38.tar.xz">https://ftp.gnu.org/gnu/glibc/glibc-2.38.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">778cce0ea6bf7f84ca8caacf4a01f45b</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.38/master"> - Git ветку</a> содержащую исправления, которые - заслуживают внимания для Glibc-2.38 но, к сожалению, - выпущенные после релиза Glibc-2.38. Редакторы 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.06) - <span class= - "token">6,428 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.06.tar.xz">https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">cf0fd928b1e5479c8108ee52cb114363</code> - </p> - </dd> - <dt> - <span class="term">Gzip (1.12) - <span class="token">807 - 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.12.tar.xz">https://ftp.gnu.org/gnu/gzip/gzip-1.12.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">9608e4ac5f061b2a6479dc44e917a5db</code> - </p> - </dd> - <dt> - <span class="term">Iana-Etc (20230810) - <span class= - "token">588 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/20230810/iana-etc-20230810.tar.gz"> - https://github.com/Mic92/iana-etc/releases/download/20230810/iana-etc-20230810.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">0502bd41cc0bf1c1c3cd8651058b9650</code> - </p> - </dd> - <dt> - <span class="term">Inetutils (2.4) - <span class= - "token">1,522 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.4.tar.xz"> - https://ftp.gnu.org/gnu/inetutils/inetutils-2.4.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">319d65bb5a6f1847c4810651f3b4ba74</code> - </p> - <p> - Контрольная сумма SHA256: - </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.4.0) - <span class= - "token">904 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.4.0.tar.xz"> - https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.4.0.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">90ce0eb84a8f1e2b14ffa77e8eb3f5ed</code> - </p> - </dd> - <dt> - <span class="term">Jinja2 (3.1.2) - <span class= - "token">262 KB</span>:</span> - </dt> - <dd> - <p> - Домашняя страница: <a class="ulink" href= - "https://jinja.palletsprojects.com/en/3.0.x/">https://jinja.palletsprojects.com/en/3.0.x/</a> - </p> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://pypi.org/packages/source/J/Jinja2/Jinja2-3.1.2.tar.gz"> - https://pypi.org/packages/source/J/Jinja2/Jinja2-3.1.2.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">d31148abd89c1df1cdb077a55db27d02</code> - </p> - </dd> - <dt> - <span class="term">Kbd (2.6.1) - <span class= - "token">1,554 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.1.tar.xz"> - https://www.kernel.org/pub/linux/utils/kbd/kbd-2.6.1.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">986241b5d94c6bd4ed2f6d2a5ab4320b</code> - </p> - </dd> - <dt> - <span class="term">Kmod (30) - <span class="token">555 - KB</span>:</span> - </dt> - <dd> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-30.tar.xz"> - https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-30.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">85202f0740a75eb52f2163c776f9b564</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.0/lfs-bootscripts-20230728.tar.xz"> - https://mirror.linuxfromscratch.ru/lfs/downloads/12.0/lfs-bootscripts-20230728.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">740e56f1f2448766b672c53ae3abb5c2</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.4.12) - <span class= - "token">134,616 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.4.12.tar.xz"> - https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.4.12.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">24570ba0ef9dd592bd640a1a41686fac</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.11.2) - <span class= - "token">1,908 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.11.2.tar.xz"> - https://download.savannah.gnu.org/releases/man-db/man-db-2.11.2.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">a7d59fb2df6158c44f8f7009dcc6d875</code> - </p> - </dd> - <dt> - <span class="term">Man-pages (6.05.01) - <span class= - "token">2,144 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.05.01.tar.xz"> - https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.05.01.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">de4563b797cf9b1e0b0d73628b35e442</code> - </p> - </dd> - <dt> - <span class="term">MarkupSafe (2.1.3) - <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.3.tar.gz"> - https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-2.1.3.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">ca33f119bd0551ce15837f58bb180214</code> - </p> - </dd> - <dt> - <span class="term">Meson (1.2.1) - <span class= - "token">2,131 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.2.1/meson-1.2.1.tar.gz"> - https://github.com/mesonbuild/meson/releases/download/1.2.1/meson-1.2.1.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">e3cc846536189aacd7d01858a45ca9af</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.0) - <span class= - "token">1,443 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.0.tar.xz">https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.0.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">a25091f337f25830c16d2054d74b5af7</code> - </p> - </dd> - <dt> - <span class="term">Ncurses (6.4) - <span class= - "token">3,528 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://invisible-mirror.net/archives/ncurses/ncurses-6.4.tar.gz"> - https://invisible-mirror.net/archives/ncurses/ncurses-6.4.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">5a62487b5d4ac6b132fe2bf9f8fad29b</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.1.2) - <span class= - "token">15,196 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.1.2.tar.gz">https://www.openssl.org/source/openssl-3.1.2.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">1d7861f969505e67b8677e205afd9ff4</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.0) - <span class= - "token">13,248 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.0.tar.xz">https://www.cpan.org/src/5.0/perl-5.38.0.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">e1c8aaec897dd386c741f97eef9f2e87</code> - </p> - </dd> - <dt> - <span class="term">Pkgconf (2.0.1) - <span class= - "token">304 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.0.1.tar.xz"> - https://distfiles.ariadne.space/pkgconf/pkgconf-2.0.1.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">efc1318f368bb592aba6ebb18d9ff254</code> - </p> - </dd> - <dt> - <span class="term">Procps (4.0.3) - <span class= - "token">1,268 KB</span>:</span> - </dt> - <dd> - <p> - Домашняя страница: <a class="ulink" href= - "https://sourceforge.net/projects/procps-ng">https://sourceforge.net/projects/procps-ng</a> - </p> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.3.tar.xz"> - https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.3.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">22b287bcd758831cbaf3356cd3054fe7</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.11.4) - <span class= - "token">19,488 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.11.4/Python-3.11.4.tar.xz"> - https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">fb7f7eae520285788449d569e45b6718</code> - </p> - </dd> - <dt> - <span class="term">Python Documentation (3.11.4) - - <span class="token">7,649 KB</span>:</span> - </dt> - <dd> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://www.python.org/ftp/python/doc/3.11.4/python-3.11.4-docs-html.tar.bz2"> - https://www.python.org/ftp/python/doc/3.11.4/python-3.11.4-docs-html.tar.bz2</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">cdce7b1189bcf52947f3b434ab04d7e2</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">Shadow (4.13) - <span class= - "token">1,722 KB</span>:</span> - </dt> - <dd> - <p> - Домашняя страница: <a class="ulink" href= - "https://shadow-maint.github.io/shadow/">https://shadow-maint.github.io/shadow/</a> - </p> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://github.com/shadow-maint/shadow/releases/download/4.13/shadow-4.13.tar.xz"> - https://github.com/shadow-maint/shadow/releases/download/4.13/shadow-4.13.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">b1ab01b5462ddcf43588374d57bec123</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 (254) - <span class= - "token">13,985 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/v254/systemd-254.tar.gz"> - https://github.com/systemd/systemd/archive/v254/systemd-254.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">0d266e5361dc72097b6c18cfde1c0001</code> - </p> - </dd> - <dt> - <span class="term">Systemd Man Pages(254) - <span class= - "token">626 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-254.tar.xz"> - https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-254.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">fc32faeac581e1890ca27fcea3858410</code> - </p> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Команда Linux From Scratch генерирует собственный - архив справочных страниц, используя исходный код - systemd. Это делается для того, чтобы избежать - ненужных зависимостей. - </p> - </div> - </dd> - <dt> - <span class="term">Sysvinit (3.07) - <span class= - "token">258 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.07/sysvinit-3.07.tar.xz"> - https://github.com/slicer69/sysvinit/releases/download/3.07/sysvinit-3.07.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">190398c660af29c97d892126d2a95e28</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.0.3) - <span class= - "token">4,776 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.0.3.tar.xz">https://ftp.gnu.org/gnu/texinfo/texinfo-7.0.3.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">37bf94fd255729a14d4ea3dda119f81a</code> - </p> - </dd> - <dt> - <span class="term">Time Zone Data (2023c) - <span class= - "token">436 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/tzdata2023c.tar.gz"> - https://www.iana.org/time-zones/repository/releases/tzdata2023c.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">5aa672bf129b44dd915f8232de38e49a</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.1) - <span class= - "token">8,156 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.1.tar.xz"> - https://www.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.1.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">c542cd7c0726254e4b3006a9b428201a</code> - </p> - </dd> - <dt> - <span class="term">Vim (9.0.1677) - <span class= - "token">16,670 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://anduin.linuxfromscratch.org/LFS/vim-9.0.1677.tar.gz"> - https://anduin.linuxfromscratch.org/LFS/vim-9.0.1677.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">65e6b09ef0628a2d8eba79f1d1d5a564</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.41.1) - <span class= - "token">96 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.41.1.tar.gz"> - https://pypi.org/packages/source/w/wheel/wheel-0.41.1.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">181cb3f4d8ed340c904a0e1c416d341d</code> - </p> - </dd> - <dt> - <span class="term">XML::Parser (2.46) - <span class= - "token">249 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.46.tar.gz"> - https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">80bb18a8e6240fcf7ec2f7b57601c170</code> - </p> - </dd> - <dt> - <span class="term">Xz Utils (5.4.4) - <span class= - "token">1,623 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://tukaani.org/xz/xz-5.4.4.tar.xz">https://tukaani.org/xz/xz-5.4.4.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">d83d6f64a64f88759e312b8a38c3add6</code> - </p> - </dd> - <dt> - <span class="term">Zlib (1.2.13) - <span class= - "token">1267 KB</span>:</span> - </dt> - <dd> - <p> - Домашняя страница: <a class="ulink" href= - "https://www.zlib.net/">https://www.zlib.net/</a> - </p> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://anduin.linuxfromscratch.org/LFS/zlib-1.2.13.tar.xz"> - https://anduin.linuxfromscratch.org/LFS/zlib-1.2.13.tar.xz</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">7d9fc1d78ae2fa3e84fe98b77d006c63</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> - Общий размер пакетов: примерно 493 MB - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-materials-patches"></a>3.3. Необходимые патчи - </h2> - </div> - </div> - </div> - <p> - В дополнение к пакетам требуется несколько патчей. Эти патчи - исправляют ошибки в пакетах, которые должны быть исправлены - сопровождающим. Патчи также вносят небольшие изменения, - облегчающие работу с пакетами. Для создания системы LFS - потребуются следующие исправления: - </p> - <div class="materials"> - <div class="variablelist"> - <dl class="variablelist"> - <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.0/bzip2-1.0.8-install_docs-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/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.0/coreutils-9.3-i18n-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/coreutils-9.3-i18n-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">3c6340b3ddd62f4acdf8d3caa6fad6b0</code> - </p> - </dd> - <dt> - <span class="term">Glibc Memalign Patch - <span class= - "token">20 KB</span>:</span> - </dt> - <dd> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/patches/lfs/12.0/glibc-2.38-memalign_fix-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/glibc-2.38-memalign_fix-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">2c3552bded42a83ad6a7087c5fbf3857</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.0/glibc-2.38-fhs-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/glibc-2.38-fhs-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">9a5997c3452909b1769918c759eff8a2</code> - </p> - </dd> - <dt> - <span class="term">GRUB Upstream Fixes Patch - - <span class="token">8 KB</span>:</span> - </dt> - <dd> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/patches/lfs/12.0/grub-2.06-upstream_fixes-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/grub-2.06-upstream_fixes-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">da388905710bb4cbfbc7bd7346ff9174</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.0/kbd-2.6.1-backspace-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/kbd-2.6.1-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">1.3 KB</span>:</span> - </dt> - <dd> - <p> - Ссылка на загрузку: <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/patches/lfs/12.0/readline-8.2-upstream_fix-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/readline-8.2-upstream_fix-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">dd1764b84cfca6b677f44978218a75da</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.0/sysvinit-3.07-consolidated-1.patch"> - https://mirror.linuxfromscratch.ru/patches/lfs/12.0/sysvinit-3.07-consolidated-1.patch</a> - </p> - <p> - Контрольная сумма MD5: <code class= - "literal">17ffccbb8e18c39e8cedc32046f3a475</code> - </p> - </dd> - </dl> - </div> - </div> - <p> - Общий размер этих патчей: примерно 214.2 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="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-final-preps"></a>Глава 4. Заключительный - этап подготовки - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-preps-introduction"></a>4.1. Введение - </h2> - </div> - </div> - </div> - <p> - В этой главе мы выполним несколько дополнительных настроек для - подготовки к сборке временной системы. Мы создадим несколько - каталогов в <code class="filename">$LFS</code> (в котором - установим временные инструменты), добавим непривилегированного - пользователя и настроим окружение для этого пользователя. Кроме - этого, будут даны пояснения по стандартной единице времени - сборки, или <span class="quote">«<span class= - "quote">SBU</span>»</span>, которую мы используем для измерения - времени необходимого для сборки пакетов LFS, и предоставим - некоторую информацию о наборах тестов. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-creatingminlayout"></a>4.2. Создание - ограниченной иерархии папок в файловой системе LFS - </h2> - </div> - </div> - </div> - <p> - В этом разделе мы начинаем заполнять файловую систему LFS - элементами, которые будут основой конечной системы Linux. - Первым шагом является создание ограниченной иерархии каталогов, - чтобы программы, скомпилированные в <a class="xref" href= - "#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - (а также glibc и libstdc++ в <a class="xref" href= - "#chapter-cross-tools" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a>), могли быть - установлены в их конечном расположении. Это необходимо для - того, чтобы эти временные программы были перезаписаны при - сборке окончательных версий в <a class="xref" href= - "#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. - </p> - <p> - Создайте необходимую иерархию каталогов, выполнив следующую - команду от имени <code class="systemitem">root</code>: - </p> - <pre class="userinput"><kbd class= - "command">mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} - -for i in bin lib sbin; do - ln -sv usr/$i $LFS/$i -done - -case $(uname -m) in - x86_64) mkdir -pv $LFS/lib64 ;; -esac</kbd></pre> - <p> - Программы в <a class="xref" href="#chapter-temporary-tools" - title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-preps-addinguser"></a>4.3. Создание - пользователя LFS - </h2> - </div> - </div> - </div> - <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> для запуска оболочки входа - в систему, а не обычной оболочки. Разница между этими двумя - типами оболочек подробно описана в <code class= - "filename">bash(1)</code> и <span class="command"><strong>info - bash</strong></span>. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-preps-settingenviron"></a>4.4. Настройка - окружения - </h2> - </div> - </div> - </div> - <p> - Настроим хорошо работающее окружение, создав два новых файла - запуска для оболочки <span class= - "command"><strong>bash</strong></span>. Войдя в систему как - пользователь <code class="systemitem">lfs</code>, введите - следующую команду, чтобы создать новый <code class= - "filename">.bash_profile</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > ~/.bash_profile << "EOF" -<code class= -"literal">exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash</code> -EOF</kbd></pre> - <p> - При входе в систему под учетной записью пользователя - <code class="systemitem">lfs</code> или при переключении на - <code class="systemitem">lfs</code>, используя команду - <span class="command"><strong>su</strong></span> с опцией - <span class="quote">«<span class="quote"><em class= - "parameter"><code>-</code></em></span>»</span>, начальная - оболочка представляет собой оболочку <span class= - "emphasis"><em>login</em></span>, которая читает данные из - <code class="filename">/etc/profile</code> хоста (который, - вероятно, содержит некоторые настройки и переменные среды), а - затем <code class="filename">.bash_profile</code>. Команда - <span class="command"><strong>exec env - -i.../bin/bash</strong></span> в файле <code class= - "filename">.bash_profile</code> заменяет запущенную оболочку - новой, не содержащей переменные среды, за исключением - переменных <code class="envar">HOME</code>, <code class= - "envar">TERM</code>, и <code class="envar">PS1</code>. Это - гарантирует, что никакие нежелательные и потенциально опасные - переменные среды из хост-системы не попадут в среду сборки. - </p> - <p> - Новый экземпляр оболочки представляет собой <span class= - "emphasis"><em>non-login</em></span> оболочку, которая не - считывает и не выполняет содержимое файлов <code class= - "filename">/etc/profile</code> и <code class= - "filename">.bash_profile</code>, а вместо этого выполняет - чтение из файла <code class="filename">.bashrc</code>. Создайте - файл <code class="filename">.bashrc</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > ~/.bashrc << "EOF" -<code class="literal">set +h -umask 022 -LFS=/mnt/lfs -LC_ALL=POSIX -LFS_TGT=$(uname -m)-lfs-linux-gnu -PATH=/usr/bin -if [ ! -L /bin ]; then PATH=/bin:$PATH; fi -PATH=$LFS/tools/bin:$PATH -CONFIG_SITE=$LFS/usr/share/config.site -export LFS LC_ALL LFS_TGT PATH CONFIG_SITE</code> -EOF</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение настроек в <code class= - "filename">.bashrc</code></strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class="parameter"><code>set - +h</code></em></span> - </dt> - <dd> - <p> - Команда <span class="command"><strong>set - +h</strong></span> отключает хэш-функцию <span class= - "command"><strong>bash</strong></span>. Хеширование - является полезной функцией —<span class= - "command"><strong>bash</strong></span> использует - хеш-таблицу для запоминания полного пути к исполняемому - файлу, чтобы избежать многократного поиска одного и того - же исполняемого файла в переменной окружения <code class= - "envar">PATH</code>. Однако новые инструменты требуется - использовать сразу же после их установки. Отключение - хэш-функции, заставляет оболочку искать переменную - окружения <code class="envar">PATH</code>, всякий раз, - когда программу необходимо запустить. Таким образом, - оболочка найдет вновь скомпилированные инструменты в - <code class="filename">$LFS/tools/bin</code>, как только - они станут доступны, не запоминая предыдущую версию той - же программы, предоставленную хост-дистрибутивом, в - <code class="filename">/usr/bin</code> или <code class= - "filename">/bin</code>. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>umask - 022</code></em></span> - </dt> - <dd> - <p> - Установка значения пользовательской маски создания файлов - (umask) 022 гарантирует, что вновь созданные файлы и - каталоги доступны для записи только их владельцу, но - будут доступны для чтения и выполнения остальным - пользователям (при условии, что системный вызов - <code class="function">open(2)</code> использует режим по - умолчанию, новые файлы получат разрешения 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. Кросс-Компиляция временных инструментов">Глава 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. Сборка кросс-тулчейна">Глава 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. Сборка кросс-тулчейна">Глава 5</a> и - <a class="xref" href="#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>, - если эта переменная не задана, сценарии <span class= - "command"><strong>configure</strong></span> могут - попытаться загрузить элементы конфигурации, специфичные - для некоторых дистрибутивов, из <code class= - "filename">/usr/share/config.site</code> в хост-системе. - Переопределите её, чтобы предотвратить потенциальное - влияние хоста. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>export - ...</code></em></span> - </dt> - <dd> - <p> - Приведенные выше команды установили некоторые переменные, - чтобы сделать их видимыми в любых вложенных оболочках, мы - экспортируем их. - </p> - </dd> - </dl> - </div> - <div class="admon important"> - <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 и создание дополнительных временных инструментов"> - Глава 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.15">Раздел 8.35, «Bash-5.2.15»</a>, не - настроен на загрузку или выполнение <code class= - "filename">/etc/bash.bashrc</code>, поэтому этот файл - бесполезен в готовой системе LFS. - </p> - </div> - <p> - Наконец, чтобы убедиться, что среда полностью подготовлена для - сборки временных инструментов, перечитайте только что созданный - профиль пользователя: - </p> - <pre class="userinput"><kbd class= - "command">source ~/.bash_profile</kbd></pre> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-preps-aboutsbus"></a>4.5. О SBU (Стандартная - единица времени сборки) - </h2> - </div> - </div> - </div> - <p> - Многие люди хотели бы знать заранее, сколько примерно времени - потребуется для компиляции и установки каждого пакета. - Поскольку Linux From Scratch может быть собран на различных - системах, невозможно дать точную оценку времени. Сборка самого - большого пакета (gcc) займет около 5 минут на быстрых системах, - но может занять несколько дней на более медленных компьютерах! - Вместо фактического времени в книге используется показатель - "стандартная единица времени сборки" (SBU). - </p> - <p> - Показатель SBU рассчитывается следующим образом. Первым - пакетом, который нужно скомпилировать, является binutils в - <a class="xref" href="#chapter-cross-tools" title= - "Глава 5. Сборка кросс-тулчейна">Глава 5</a>. Время, - необходимое для компиляции этого пакета с использованием одного - ядра, будет называться стандартной единицей времени сборки или - SBU. Время компиляции остальных пакетов будет рассчитано - относительно этого времени. - </p> - <p> - Например, рассмотрим пакет, время компиляции которого - составляет 4,5 SBU. Это означает, что если вашей системе - потребовалось 10 минут для компиляции и сборки первого прохода - binutils, то для сборки этого пакета потребуется <span class= - "emphasis"><em>примерно</em></span> 45 минут. К счастью, в - большинстве случаев, время сборки меньше, чем у binutils. - </p> - <p> - В целом, величина SBU не совсем точна, поскольку она зависит от - многих факторов, включая версию GCC хост-системы. Она приведены - здесь, чтобы дать оценку того, сколько времени может - потребоваться для сборки пакета, но в некоторых случаях цифры - могут отличаться на десятки минут. - </p> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Для многих современных систем с несколькими процессорами (или - ядрами) время компиляции пакета можно сократить, выполнив - <span class="quote">«<span class="quote">параллельную - сборку</span>»</span>, либо установив переменную среды, либо - сообщив программе <span class= - "command"><strong>make</strong></span>, сколько ядер - задействовать для сборки. Например, процессор Intel i5-6500 - может поддерживать четыре одновременных потока: - </p> - <pre class="userinput"><kbd class= - "command">export MAKEFLAGS='-j4'</kbd></pre> - <p> - или просто собирать с флагом: - </p> - <pre class="userinput"><kbd class= - "command">make -j4</kbd></pre> - <p> - Когда используется несколько ядер, единицы измерения SBU - будут различаться еще больше, чем обычно. В некоторых случаях - make просто завершится ошибкой. Анализ выходных данных - процесса сборки также будет более сложным, поскольку строки - разных потоков будут чередоваться. Если вы столкнулись с - проблемой на этапе сборки, вернитесь к сборке на одном ядре, - чтобы проанализировать сообщения об ошибках. - </p> - <p> - Представленные здесь значения времени основаны на замерах при - использовании четырех ядер (-j4). Время, указанное в главе 8, - также включает время выполнения регрессионных тестов для - пакета, если не указано иное. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-preps-abouttestsuites"></a>4.6. О наборах - тестов - </h2> - </div> - </div> - </div> - <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. Сборка кросс-тулчейна">Глава 5</a> и <a class= - "xref" href="#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a>, - не имеет смысла, поскольку программы компилируются с помощью - кросс-компилятора, они, вероятно, не могут работать на хосте - сборки. - </p> - </div> - <p> - Распространенной проблемой при запуске наборов тестов для - binutils и GCC является нехватка псевдотерминалов (PTY). Это - может привести к большому количеству неудачных тестов. Причин - может быть несколько, но наиболее вероятная причина заключается - в том, что в хост-системе неправильно настроена файловая - система <code class="systemitem">devpts</code>. Этот вопрос - более подробно обсуждается на странице <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/faq.html#no-ptys">https://mirror.linuxfromscratch.ru/lfs/faq.html#no-ptys</a>. - </p> - <p> - Иногда наборы тестов не работают, по причинам, о которых знают - разработчики и которые они считают некритичными. Просмотрите - журналы, расположенные по адресу <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/lfs/build-logs/12.0/">https://mirror.linuxfromscratch.ru/lfs/build-logs/12.0/</a>, - чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех - наборов тестов, описанных в книге. - </p> - </div> - </div> - </div> - <div class="part"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="part3"></a>Часть III. Сборка - кросс-компилятора и набора временных инструментов - </h1> - </div> - </div> - </div> - <div class="preface" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="partintro-cross-temp"></a>Важный предварительный - материал - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-part3intro-intro"></a>Введение - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-toolchaintechnotes"></a>Технические - примечания по сборочным инструментам - </h2> - </div> - </div> - </div> - <p> - В этом разделе объясняются причины и некоторые технические - детали, лежащие в основе сборки пакетов. Не обязательно сразу - понимать все, что содержится в этом разделе. Большая часть этой - информации станет более понятной после выполнения фактической - сборки. Возвращайтесь и перечитывайте этот раздел в любое время - по ходу сборки. - </p> - <p> - Основная задача <a class="xref" href="#chapter-cross-tools" - title="Глава 5. Сборка кросс-тулчейна">Глава 5</a> и - <a class="xref" href="#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - состоит в том, чтобы создать временную область, содержащую - заведомо исправный набор инструментов, которые можно - изолировать от хост-системы. Использовании команды <span class= - "command"><strong>chroot</strong></span> в последующих главах, - обеспечит чистую и безотказную сборку целевой системы LFS. - Процесс сборки разработан таким образом, чтобы свести к - минимуму риски для новых читателей и в то же время обеспечить - наибольшую образовательную ценность. - </p> - <p> - Сборка инструментария основана на процессе <span class= - "emphasis"><em>кросс-компиляции</em></span>. Кросс-компиляция - обычно используется для сборки компилятора и его инструментов - для машины, отличной от той, которая используется для сборки. - Строго говоря, это не требуется для LFS, так как машина, на - которой будет работать новая система, та же, что и используемая - для сборки. Но у кросс-компиляции есть большое преимущество, - заключающееся в том, что все, что подвергается - кросс-компиляции, не будет зависеть от окружения хоста. - </p> - <div class="sect2" lang="en"> - <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="en"> - <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 <имя исполняемого файла> | 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. Кросс-Компиляция временных инструментов">Глава 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.38; хост-дистрибутив может использовать либо - другую реализацию 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. Установка базового системного программного обеспечения"> - Глава 8</a> (или <span class="quote">«<span class= - "quote">этап 3</span>»</span>) собраны все пакеты, - необходимые для системы LFS. Даже если пакет уже был - установлен в системе LFS в предыдущей главе, мы все равно - пересобираем пакет. Основная причина пересборки этих пакетов - состоит в том, чтобы сделать их стабильными: если мы - переустанавливаем пакет LFS в готовой системе LFS, содержимое - пакета должно совпадать с содержимым того же пакета при - первой установке в <a class="xref" href= - "#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. Временные пакеты, установленные в <a class= - "xref" href="#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - или <a class="xref" href="#chapter-chroot-temporary-tools" - title= - "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> - Глава 7</a> не могут удовлетворять этому требованию, - потому что некоторые из них собраны без необязательных - зависимостей и autoconf не может выполнить некоторые проверки - функций в <a class="xref" href="#chapter-temporary-tools" - title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - из-за кросс-компиляции, в результате чего во временных - пакетах отсутствуют дополнительные функции или используются - не оптимальные процедуры кода. Кроме того, второстепенной - причиной для пересборки пакетов является выполнение тестов. - </p> - </div> - <div class="sect2" lang="en"> - <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>&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. Кросс-Компиляция временных инструментов">Глава 6</a> - все остальные программы, которым необходимо разрешить - проблему циклических зависимостей во время сборки. На этапе - установки всех этих пакетов используется переменная DESTDIR, - для принудительной установки в файловую систему LFS. - </p> - <p> - В конце <a class="xref" href="#chapter-temporary-tools" - title="Глава 6. Кросс-Компиляция временных инструментов">Глава 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 и создание дополнительных временных инструментов"> - Глава 7</a> первой задачей является установка libstdc++. - Затем выполняется установка временных программ, необходимых - для правильной работы тулчейна. С этого момента основной - набор инструментов является самодостаточным и автономным. В - <a class="xref" href="#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a> собираются, тестируются и устанавливаются - окончательные версии всех пакетов, необходимых для - полнофункциональной системы. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-generalinstructions"></a>Общие инструкции - по компиляции - </h2> - </div> - </div> - </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"></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. Сборка кросс-тулчейна">Глава 5</a> - и <a class="xref" href= - "#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов"> - Глава 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="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-cross-tools"></a>Глава 5. Сборка - кросс-тулчейна - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-introduction"></a>5.1. Введение - </h2> - </div> - </div> - </div> - <p> - В этой главе дано описание, как создать кросс-компилятор и - связанные с ним инструменты. Несмотря на то, что на данном - этапе кросс-компиляция имитируется, принципы его работы те же, - что и для настоящего кросс-тулчейна. - </p> - <p> - Программы, скомпилированные в этой главе, будут установлены в - каталог <code class="filename">$LFS/tools</code>, чтобы они - были отделены от файлов, установленных в следующих главах. - Библиотеки, же, устанавливаются на свое постоянное место, - поскольку они относятся к системе, которую мы хотим создать. - </p> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-binutils-pass1"></a>5.2. Binutils-2.41 - - Проход 1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">647 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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 ... && make - && 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</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> - </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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-binutils" title= - "8.18.2. Содержимое пакета Binutils">Раздел 8.18.2, - «Содержимое пакета Binutils.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-gcc-pass1"></a>5.3. GCC-13.2.0 - Проход 1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет GCC содержит коллекцию компиляторов GNU, которая - включает компиляторы C и C++. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">3.5 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">4.2 - GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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.0.tar.xz -mv -v mpfr-4.2.0 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.38 \ - --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.38</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 > \ - `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include/limits.h</kbd></pre> - </div> - <div class="content" lang="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-gcc" title= - "8.27.2. Содержимое пакета GCC">Раздел 8.27.2, - «Содержимое пакета GCC.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-linux-headers"></a>5.4. Заголовочные - файлы Linux-6.4.12 API - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Заголовочные файлы Linux API (в linux-6.4.12.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="en"> - <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="en"> - <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="idm3210"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-glibc"></a>5.5. Glibc-2.38 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Glibc содержит основную библиотеку C. Эта библиотека - предоставляет основные процедуры для выделения памяти, поиска - в каталогах, открытия и закрытия файлов, чтения и записи - файлов, обработки строк, сопоставления с образцом, арифметики - и так далее - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">1.6 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">858 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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> и <code class="filename">ln(1)</code>, - прежде чем сообщать об ошибке. - </p> - </div> - <p> - Некоторые программы, использующие Glibc, применяют - несовместимый с FHS каталог <code class= - "filename">/var/db</code> для хранения своих данных времени - выполнения. Установите следующий патч, чтобы такие программы - хранили свои данные в местах, совместимых с FHS: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../glibc-2.38-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" > 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.14 \ - --with-headers=$LFS/usr/include \ - 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.14</code></em></span> - </dt> - <dd> - <p> - Этот параметр позволяет Glibc выполнять компиляцию - библиотеки с поддержкой ядра 4.14 и более поздних - версий. Поддержка более старых ядер не включена. - </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> - </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> - Поступали сообщения о том, что этот пакет может не - компилироваться при "параллельной сборке". Если это - произойдет, повторно запустите команду make с параметром - "-j1". - </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">Раздел 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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-glibc" title= - "8.5.3. Содержимое пакета Glibc">Раздел 8.5.3, - «Содержимое пакета Glibc.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-libstdcpp"></a>5.6. Libstdc++ из - GCC-13.2.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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++,stdc++fs,supc++}.la</kbd></pre> - </div> - <div class="content" lang="en"> - <p> - Подробная информация об этом пакете приведена в <a class= - "xref" href="#contents-gcc" title= - "8.27.2. Содержимое пакета GCC">Раздел 8.27.2, - «Содержимое пакета GCC.»</a> - </p> - </div> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-temporary-tools"></a>Глава 6. - Кросс-Компиляция временных инструментов - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-introduction-cross"></a>6.1. Введение - </h2> - </div> - </div> - </div> - <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. Настройка окружения">Раздел 4.4, «Настройка - окружения»</a>. - </p> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-m4"></a>6.2. M4-1.4.19 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-m4" title= - "8.12.2. Содержимое пакета M4">Раздел 8.12.2, - «Содержимое пакета M4.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-ncurses"></a>6.3. Ncurses-6.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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</code>) - вместо обычных (таких как, <code class= - "filename">libncurses.so.6.4</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 -echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so</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>echo - "INPUT(-lncursesw)" > - $LFS/usr/lib/libncurses.so</strong></span></span> - </dt> - <dd> - <p> - Библиотека <code class="filename">libncurses.so</code> - необходима для нескольких пакетов, которые мы скоро - соберем. Мы создадим небольшой скрипт компоновщика, как - это делается поясняется в <a class="xref" href= - "#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. - </p> - </dd> - </dl> - </div> - </div> - <div class="content" lang="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-ncurses" title= - "8.29.2. Содержимое пакета Ncurses">Раздел 8.29.2, - «Содержимое пакета Ncurses.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-bash"></a>6.4. Bash-5.2.15 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-bash" title= - "8.35.2. Содержимое пакета Bash">Раздел 8.35.2, - «Содержимое пакета Bash.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-coreutils"></a>6.5. Coreutils-9.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">168 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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 \ - gl_cv_macro_MB_CUR_MAX_good=y</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> - <dt> - <span class="term"><code class= - "envar">gl_cv_macro_MB_CUR_MAX_good=y</code></span> - </dt> - <dd> - <p> - Этот параметр необходим, чтобы обойти проблему с копией - gnulib, поставляемой пакетом, которая нарушит - кросс-компиляцию. - </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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-coreutils" title= - "8.56.2. Содержимое пакета Coreutils">Раздел 8.56.2, - «Содержимое пакета Coreutils.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-diffutils"></a>6.6. Diffutils-3.10 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-diffutils" title= - "8.58.2. Содержимое пакета Diffutils">Раздел 8.58.2, - «Содержимое пакета Diffutils.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-file"></a>6.7. File-5.45 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-file" title= - "8.10.2. Содержимое пакета File">Раздел 8.10.2, - «Содержимое пакета File.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-findutils"></a>6.8. Findutils-4.9.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-findutils" title= - "8.60.2. Содержимое пакета Findutils">Раздел 8.60.2, - «Содержимое пакета Findutils.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-gawk"></a>6.9. Gawk-5.2.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">48 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-gawk" title= - "8.59.2. Содержимое пакета Gawk">Раздел 8.59.2, - «Содержимое пакета Gawk.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-grep"></a>6.10. Grep-3.11 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-grep" title= - "8.34.2. Содержимое пакета Grep">Раздел 8.34.2, - «Содержимое пакета Grep.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-gzip"></a>6.11. Gzip-1.12 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-gzip" title= - "8.63.2. Содержимое пакета Gzip">Раздел 8.63.2, - «Содержимое пакета Gzip.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-make"></a>6.12. Make-4.4.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-make" title= - "8.67.2. Содержимое пакета Make">Раздел 8.67.2, - «Содержимое пакета Make.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-patch"></a>6.13. Patch-2.7.6 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-patch" title= - "8.68.2. Содержимое пакета Patch">Раздел 8.68.2, - «Содержимое пакета Patch.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-sed"></a>6.14. Sed-4.9 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-sed" title= - "8.30.2. Содержимое пакета Sed">Раздел 8.30.2, - «Содержимое пакета Sed.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-tar"></a>6.15. Tar-1.35 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-tar" title= - "8.69.2. Содержимое пакета Tar">Раздел 8.69.2, - «Содержимое пакета Tar.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-xz"></a>6.16. Xz-5.4.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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.4</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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-xz" title= - "8.8.2. Содержимое пакета Xz">Раздел 8.8.2, «Содержимое - пакета Xz.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-binutils-pass2"></a>6.17. Binutils-2.41 - - Проход 2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">523 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 6.17.1. Установка пакета Binutils - </h3> - <p> - Binutils поставляет устаревшую версию libtool в архиве. В нем - отсутствует поддержка sysroot, поэтому созданные двоичные - файлы будут ошибочно связаны с библиотеками из основного - дистрибутива. Решение этой проблемы: - </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</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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-binutils" title= - "8.18.2. Содержимое пакета Binutils">Раздел 8.18.2, - «Содержимое пакета Binutils.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-gcc-pass2"></a>6.18. GCC-13.2.0 - Проход - 2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет GCC содержит коллекцию компиляторов GNU, которая - включает компиляторы C и C++. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">4.3 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="en"> - <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.0.tar.xz -mv -v mpfr-4.2.0 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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-gcc" title= - "8.27.2. Содержимое пакета GCC">Раздел 8.27.2, - «Содержимое пакета GCC.»</a> - </p> - </div> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-chroot-temporary-tools"></a>Глава 7. Вход в - окружение Chroot и создание дополнительных временных - инструментов - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-introduction-chroot"></a>7.1. Введение - </h2> - </div> - </div> - </div> - <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">Раздел 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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-changingowner"></a>7.2. Смена владельца - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-kernfs"></a>7.3. Подготовка виртуальных - файловых систем ядра - </h2> - </div> - </div> - </div> - <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="en"> - <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. Создание узла устройства">Раздел 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="en"> - <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 -v --bind /dev/pts $LFS/dev/pts -mount -vt proc proc $LFS/proc -mount -vt sysfs sysfs $LFS/sys -mount -vt tmpfs tmpfs $LFS/run</kbd></pre> - <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 - mkdir -pv $LFS/$(readlink $LFS/dev/shm) -else - mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm -fi</kbd></pre> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-chroot"></a>7.4. Вход в окружение Chroot - </h2> - </div> - </div> - </div> - <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 \ - /bin/bash --login</kbd></pre> - <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">Раздел 7.3.1, - «Монтирование и заполнение /dev»</a> и <a class="xref" href= - "#ch-tools-kernfsmount" title= - "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел 7.3.2, - «Монтирование виртуальных файловых систем ядра»</a>, а затем - войдите в среду chroot для продолжения установки. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-creatingdirs"></a>7.5. Создание каталогов - </h2> - </div> - </div> - </div> - <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="en"> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-createfiles"></a>7.6. Создание основных - файлов и символических ссылок - </h2> - </div> - </div> - </div> - <p> - Исторически сложилось, что Linux хранит список примонтированных - файловых систем в файле <code class= - "filename">/etc/mtab</code>. Современные ядра хранят этот - список внутри себя и предоставляют его пользователю через - файловую систему <code class="filename">/proc</code>. Чтобы - удовлетворять требованиям утилит, которые ожидают наличия - <code class="filename">/etc/mtab</code>, создайте следующую - символическую ссылку: - </p> - <pre class="userinput"><kbd class= - "command">ln -sv /proc/self/mounts /etc/mtab</kbd></pre> - <p> - Создайте файл <code class="filename">/etc/hosts</code>, на - который будут ссылаться некоторые наборы тестов, а также один - из файлов конфигурации Perl: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/hosts << EOF -<code class="literal">127.0.0.1 localhost $(hostname) -::1 localhost</code> -EOF</kbd></pre> - <p> - Чтобы пользователь <code class="systemitem">root</code> мог - войти в систему и распознавался системой, в файлах <code class= - "filename">/etc/passwd</code> и <code class= - "filename">/etc/group</code> должны быть соответствующие - записи. - </p> - <p> - Создайте файл <code class="filename">/etc/passwd</code> - выполнив следующую команду: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/passwd << "EOF" -<code class="literal">root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/usr/bin/false -daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false -messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false -uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false -nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false</code> -EOF</kbd></pre> - <p> - Пароль пользователя <code class="systemitem">root</code> будет - задан позднее. - </p> - <p> - Создайте файл <code class="filename">/etc/group</code>, - выполнив следующую команду: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/group << "EOF" -<code class="literal">root:x:0: -bin:x:1:daemon -sys:x:2: -kmem:x:3: -tape:x:4: -tty:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -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. Установка базового системного программного обеспечения"> - Глава 8</a> требуется обычный пользователь. Добавим такого - пользователя здесь и удалим эту учетную запись в конце главы. - </p> - <pre class="userinput"><kbd class= - "command">echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd -echo "tester:x:101:" >> /etc/group -install -o tester -d /home/tester</kbd></pre> - <p> - Чтобы удалить приглашение <span class="quote">«<span class= - "quote">I have no name!</span>»</span>, запустите новую - оболочку. Поскольку файлы <code class= - "filename">/etc/passwd</code> и <code class= - "filename">/etc/group</code> были созданы, разрешение имен - пользователей и групп теперь будет работать: - </p> - <pre class="userinput"><kbd class= - "command">exec /usr/bin/bash --login</kbd></pre> - <p> - Программы <span class="command"><strong>login</strong></span>, - <span class="command"><strong>agetty</strong></span>, - <span class="command"><strong>init</strong></span> (и другие) - используют ряд журналов для записи такой информации, как кто и - когда входил в систему. Однако эти программы не будут - записывать данные в журналы, если они еще не существуют. - Инициализируйте журналы и предоставьте им соответствующие - разрешения: - </p> - <pre class="userinput"><kbd class= - "command">touch /var/log/{btmp,lastlog,faillog,wtmp} -chgrp -v utmp /var/log/lastlog -chmod -v 664 /var/log/lastlog -chmod -v 600 /var/log/btmp</kbd></pre> - <p> - В файл <code class="filename">/var/log/wtmp</code> записываются - все входы и выходы из системы. В файл <code class= - "filename">/var/log/lastlog</code> записывается время - последнего входа каждого пользователя в систему. В файл - <code class="filename">/var/log/faillog</code> записываются - неудачные попытки входа в систему. В файл <code class= - "filename">/var/log/btmp</code> записываются неудачные попытки - входа в систему. - </p> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - В файле <code class="filename">/run/utmp</code> записываются - пользователи, которые в данный момент вошли в систему. Он - создаётся динамически, в процессе выполнения сценариев - загрузки. - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-gettext"></a>7.7. Gettext-0.22 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-gettext" title= - "8.32.2. Содержимое пакета Gettext">Раздел 8.32.2, - «Содержимое пакета Gettext.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-bison"></a>7.8. Bison-3.8.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-bison" title= - "8.33.2. Содержимое пакета Bison">Раздел 8.33.2, - «Содержимое пакета Bison.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-perl"></a>7.9. Perl-5.38.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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> - </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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-perl" title= - "8.42.2. Содержимое пакета Perl">Раздел 8.42.2, - «Содержимое пакета Perl.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-Python"></a>7.10. Python-3.11.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Python 3 содержит среду разработчика Python. Его можно - использовать для объектно-ориентированного программирования, - написания скриптов, прототипирования больших программ и - разработка целых приложений. Python — это интерпретируемый - язык программирования. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">0.4 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">533 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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.11.4.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 не могут быть собраны сейчас, - потому что зависимости еще не установлены. Система сборки - пытается их собрать, в результате компиляция некоторых - файлов завершится ошибкой, и может показаться, что - сообщение компилятора указывает на <span class= - "quote">«<span class="quote">фатальную - ошибку</span>»</span>. Сообщение следует проигнорировать. - Просто убедитесь, что команда <span class= - "command"><strong>make</strong></span> верхнего уровня не - завершилась ошибкой. Дополнительные модули сейчас не нужны, - и они будут собраны в <a class="xref" href= - "#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. - </p> - </div> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make install</kbd></pre> - </div> - <div class="content" lang="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-python" title= - "8.51.2. Содержимое пакета Python 3">Раздел 8.51.2, - «Содержимое пакета Python 3.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-texinfo"></a>7.11. Texinfo-7.0.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Texinfo содержит программы для чтения, записи и - преобразования информационных страниц. - </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">116 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-texinfo" title= - "8.70.2. Содержимое пакета Texinfo">Раздел 8.70.2, - «Содержимое пакета Texinfo.»</a> - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-util-linux"></a>7.12. Util-linux-2.39.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">169 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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 ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --libdir=/usr/lib \ - --runstatedir=/run \ - --docdir=/usr/share/doc/util-linux-2.39.1 \ - --disable-chfn-chsh \ - --disable-login \ - --disable-nologin \ - --disable-su \ - --disable-setpriv \ - --disable-runuser \ - --disable-pylibmount \ - --disable-static \ - --without-python</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="en"> - <p> - Подробная информация об этом пакете находится в <a class= - "xref" href="#contents-utillinux" title= - "8.77.2. Содержимое пакета Util-linux">Раздел 8.77.2, - «Содержимое пакета Util-linux.»</a> - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-tools-cleanup"></a>7.13. Очистка и сохранение - временной системы - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <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="en"> - <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. Установка базового системного программного обеспечения"> - Глава 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">Раздел 2.6, - «Установка переменной $LFS»</a>. - </p> - </div> - <p> - Перед созданием резервной копии размонтируйте виртуальные - файловые системы: - </p> - <pre class="userinput"><kbd class= - "command">mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm -umount $LFS/dev/pts -umount $LFS/{sys,proc,run,dev}</kbd></pre> - <p> - Убедитесь, что у вас есть как минимум 1 ГБ свободного места - на диске (исходные tar-архивы будут включены в архив - резервных копий) в файловой системе, содержащей каталог, в - котором вы создаете архив резервных копий. - </p> - <p> - Обратите внимание, что в приведенных ниже инструкциях указан - домашний каталог пользователя <code class= - "systemitem">root</code> хост-системы, который обычно - находится в корневой файловой системе. Замените <code class= - "envar">$HOME</code> каталогом на ваш выбор, если вы не - хотите, чтобы резервная копия хранилась в домашнем каталоге - пользователя <code class="systemitem">root</code>. - </p> - <p> - Создайте архив резервной копии, выполнив следующую команду: - </p> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Поскольку архив резервной копии сжимается, процесс занимает - довольно много времени (более 10 минут) даже на достаточно - быстрой системе. - </p> - </div> - <pre class="userinput"><kbd class="command">cd $LFS -tar -cJpf $HOME/lfs-temp-tools-12.0.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="en"> - <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.0.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. Подготовка виртуальных файловых систем ядра">Раздел 7.3, - «Подготовка виртуальных файловых систем ядра»</a>, и - повторно войдите в среду chroot (см. <a class="xref" href= - "#ch-tools-chroot" title= - "7.4. Вход в окружение Chroot">Раздел 7.4, «Вход в - окружение Chroot»</a>), прежде чем продолжить. - </p> - </div> - </div> - </div> - </div> - </div> - <div class="part"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="part4"></a>Часть IV. Сборка системы LFS - </h1> - </div> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-building-system"></a>Глава 8. Установка - базового системного программного обеспечения - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-introduction"></a>8.1. Введение - </h2> - </div> - </div> - </div> - <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. Установка базового системного программного обеспечения"> - Глава 8</a> значения SBU и требуемое дисковое - пространство указано с учетом тестов. Значения SBU были - рассчитаны с использованием четырех ядер ЦП (-j4) для всех - операций, если не указано иное. - </p> - </div> - <div class="sect2" lang="en"> - <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.0/introduction/libraries.html"> - Библиотеки: статические или общие?</a> в книге BLFS. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-pkgmgt"></a>8.2. Управление пакетами - </h2> - </div> - </div> - </div> - <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="en"> - <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> - Если необходимо обновить заголовочные файлы Linux API - или Glibc до более новой версии (например, с Glibc-2.31 - до Glibc-2.32), безопаснее заново собрать LFS. Хотя вы - <span class="emphasis"><em>можете</em></span> - пересобрать все пакеты с их зависимостями, мы не - рекомендуем этого делать. - </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>, уже реализовала это, и - большинство пакетов используют ее для установки - двоичных файлов и библиотек. Это означает, что большую - часть времени вас не будет беспокоить эта проблема. - Однако процесс установки некоторых пакетов (в - частности, Mozilla JS в BLFS) просто перезаписывает - файл, если он существует, и вызывает сбой. Поэтому - безопаснее сохранить свою работу и закрыть ненужные - запущенные программы перед обновлением пакета. - </p> - </li> - </ul> - </div> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 8.2.2. Методы управления пакетами - </h3> - <p> - Ниже приведены некоторые распространенные методы управления - пакетами. Прежде чем принять решение о менеджере пакетов, - проведите исследование различных методов, особенно недостатки - каждой конкретной схемы. - </p> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm4799"></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="idm4802"></a>8.2.2.2. Установка в отдельные - каталоги - </h4> - </div> - </div> - </div> - <p> - Это упрощенный метод управления пакетами, для которого не - требуется специальная программа для управления. Каждый - пакет устанавливается в отдельный каталог. Например, пакет - foo-1.1 устанавливается в <code class= - "filename">/usr/pkg/foo-1.1</code>, а символическая ссылка - создается из <code class="filename">/usr/pkg/foo</code> в - <code class="filename">/usr/pkg/foo-1.1</code>. Когда - появляется новая версия foo-1.2, она устанавливается в - <code class="filename">/usr/pkg/foo-1.2</code> и предыдущая - символическая ссылка заменяется символической ссылкой на - новую версию. - </p> - <p> - Переменные окружения, такие как <code class= - "envar">PATH</code>, <code class= - "envar">LD_LIBRARY_PATH</code>, <code class= - "envar">MANPATH</code>, <code class="envar">INFOPATH</code> - и <code class="envar">CPPFLAGS</code> необходимо расширить, - включив каталог <code class="filename">/usr/pkg/foo</code>. - Для большого количества пакетов, такая схема становится - неуправляемой. - </p> - </div> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm4816"></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="idm4833"></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="idm4838"></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="idm4848"></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="idm4858"></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="en"> - <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 для настройки процесса загрузки">Раздел 10.4, - «Использование GRUB для настройки процесса загрузки»</a>. - </p> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-man-pages"></a>8.3. Man-pages-6.05.01 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm4911"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-iana-etc"></a>8.4. Iana-Etc-20230810 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm4944"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-glibc"></a>8.5. Glibc-2.38 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Glibc содержит основную библиотеку C. Эта библиотека - предоставляет основные процедуры для выделения памяти, поиска - в каталогах, открытия и закрытия файлов, чтения и записи - файлов, обработки строк, сопоставления с образцом, арифметики - и так далее - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">11 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">3.0 - GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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.38-fhs-1.patch</kbd></pre> - <p> - Теперь исправьте регрессию, из-за которой функция - posix_memalign() в некоторых условиях работала очень - медленно: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../glibc-2.38-memalign_fix-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" > configparms</kbd></pre> - <p> - Подготовьте Glibc к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=4.14 \ - --enable-stack-protector=strong \ - --with-headers=/usr/include \ - 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.14</code></em></span> - </dt> - <dd> - <p> - Этот параметр сообщает системе сборки, что Glibc может - использоваться с ядрами старше 4.14. Это значение - используется для создание обходных путей на случай, - если системный вызов, представленный в более поздней - версии, нельзя будет использовать. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-stack-protector=strong</code></em></span> - </dt> - <dd> - <p> - Этот параметр повышает безопасность системы за счет - добавления дополнительного кода для проверки - переполнения буфера. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--with-headers=/usr/include</code></em></span> - </dt> - <dd> - <p> - Сообщает системе сборки местоположение заголовочных - файлов API ядра - </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>stdlib/tst-arc4random-thread</em></span> - завершается неудачей, если ядро хоста относительно - старое. - </p> - </li> - <li class="listitem"> - <p> - Некоторые тесты, например, <span class= - "emphasis"><em>nss/tst-nss-files-hosts-multi</em></span> - не работают на относительно медленных системах из-за - внутреннего тайм-аута. - </p> - </li> - <li class="listitem"> - <p> - Кроме того, некоторые тесты могут завершиться неудачно - при использовании относительно старой модели процессора - или версии ядра хоста. - </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> - <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> - Установите файл настроек и создайте рабочий каталог - <span class="command"><strong>nscd</strong></span>: - </p> - <pre class="userinput"><kbd class= - "command">cp -v ../nscd/nscd.conf /etc/nscd.conf -mkdir -pv /var/cache/nscd</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 POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -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> /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.38/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.38/localedata/SUPPORTED</code>, когда они - вам понадобятся. Например, для некоторых тестов в этой главе - потребуются следующие две локали: - </p> - <pre class="userinput"><kbd class= - "command">localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /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.0/general/libidn2.html"> - BLFS libidn2</a>. - </p> - </div> - </div> - <div class="configuration" lang="en"> - <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="idm5087"></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 > /etc/nsswitch.conf << "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="idm5096"></a>8.5.2.2. Добавление данных о - часовом поясе - </h4> - </div> - </div> - </div> - <p> - Установите и настройте часовой пояс следующим образом: - </p> - <pre class="userinput"><kbd class= - "command">tar -xf ../../tzdata2023c.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><xxx></code></em> /etc/localtime</kbd></pre> - <p> - Замените <em class= - "replaceable"><code><xxx></code></em> на имя - выбранного часового пояса (например, Europe/Moscow). - </p> - </div> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="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 > /etc/ld.so.conf << "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 >> /etc/ld.so.conf << "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="en"> - <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, nscd, - 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/cache/nscd и - /var/lib/nss_db</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm5169"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><span class= - "command"><strong>mtrace</strong></span></span> - </p> - </td> - <td> - <p> - Читает и интерпретирует файл трассировки памяти; - отображает сводку в удобочитаемом формате - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="nscd"></a><span class="term"><span class= - "command"><strong>nscd</strong></span></span> - </p> - </td> - <td> - <p> - Демон, который обеспечивает кеширование наиболее - распространенных запросов к службе имен - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">ld-*.so</code></span> - </p> - </td> - <td> - <p> - Вспомогательная программа для исполняемых файлов - общей библиотеки - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libBrokenLocale"></a><span class= - "term"><code class= - "filename">libBrokenLocale</code></span> - </p> - </td> - <td> - <p> - Используется внутри Glibc как грубый хак для - запуска сломанных программ (например, некоторые - приложения Motif). Прочитайте комментарии в - <code class= - "filename">glibc-2.38/locale/broken_cur_max.c</code> - для получения дополнительной информации - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">libm</code></span> - </p> - </td> - <td> - <p> - Математическая библиотека - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class= - "term"><code class= - "filename">libmcheck</code></span> - </p> - </td> - <td> - <p> - Включает проверку выделения памяти при подключении - к - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class="term"><code class= - "filename">libnsl</code></span> - </p> - </td> - <td> - <p> - Библиотека сетевых служб, которая в настоящее время - устарела - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class= - "term"><code class= - "filename">libpcprofile</code></span> - </p> - </td> - <td> - <p> - Содержит функции профилирования, используемые для - отслеживания времени, потраченного процессором в - конкретных строках исходного кода - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class= - "term"><code class= - "filename">libresolv</code></span> - </p> - </td> - <td> - <p> - Содержит функции создания, пересылки и - интерпретации пакетов, используемых на серверах - доменных имен в сети интернет - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class= - "term"><code class= - "filename">libthread_db</code></span> - </p> - </td> - <td> - <p> - Содержит функции, полезные для сборки отладчиков - для многопоточных программ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-zlib"></a>8.6. Zlib-1.2.13 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.2 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm5508"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-bzip2"></a>8.7. Bzip2-1.0.8 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm5584"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">libbz2</code></span> - </p> - </td> - <td> - <p> - Библиотека, реализующая сжатие данных без потерь с - использованием алгоритма Барроуза-Уилера. - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-xz"></a>8.8. Xz-5.4.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">24 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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.4</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="en"> - <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.4</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm5719"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-zstd"></a>8.9. Zstd-1.5.5 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Zstandard — это алгоритм сжатия в реальном времени, - обеспечивающий высокую степень сжатия. Он предлагает очень - широкий диапазон компромиссов между сжатием и скоростью при - поддержке очень быстрого декодера. - </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">77 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm5940"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-file"></a>8.10. File-5.45 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm6007"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-readline"></a>8.11. Readline-8.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.11.1. Установка пакета Readline - </h3> - <p> - Переустановка пакета Readline приводит к перемещению старых - библиотек в <libraryname>.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_fix-1.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="en"> - <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="idm6083"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="libhistory"></a><span class= - "term"><code class= - "filename">libhistory</code></span> - </p> - </td> - <td> - <p> - Обеспечивает согласованный пользовательский - интерфейс для вызова строк из истории - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-m4"></a>8.12. M4-1.4.19 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm6132"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-bc"></a>8.13. Bc-6.6.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.7 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm6199"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-flex"></a>8.14. Flex-2.6.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm6261"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-tcl"></a>8.15. Tcl-8.6.13 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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> - >Установите заголовочные файлы 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="en"> - <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="idm6352"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-expect"></a>8.16. Expect-5.45.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.16.1. Установка пакета Expect - </h3> - <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> - <div class="admon important"> - <h3> - Важно - </h3> - <p> - Набор тестов для Expect считается критически важным. Не - пропускайте его ни при каких обстоятельствах. - </p> - </div> - <p> - Чтобы протестировать пакет, выполните: - </p> - <pre class="userinput"><kbd class= - "command">make test</kbd></pre> - <p> - Если какой-либо тест завершается неудачей с сообщением - <span class="quote">«<span class="quote"><code class= - "computeroutput">The system has no more ptys. Ask your system - administrator to create more</code></span>»</span>, это - означает, что вы неправильно смонтировали файловую систему - <code class="systemitem">devpts</code>. Вам необходимо выйти - из среды chroot, ещё раз прочитать <a class="xref" href= - "#ch-tools-kernfs" title= - "7.3. Подготовка виртуальных файловых систем ядра">Раздел 7.3, - «Подготовка виртуальных файловых систем ядра»</a> и - убедиться, что файловая система <code class= - "systemitem">devpts</code> (и другие файловые системы - виртуального ядра) смонтированы правильно. Затем повторно - войдите в среду chroot, следуя инструкции <a class="xref" - href="#ch-tools-chroot" title= - "7.4. Вход в окружение Chroot">Раздел 7.4, «Вход в - окружение Chroot»</a>. Эту проблему необходимо решить, прежде - чем вы продолжите. - </p> - <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="en"> - <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="idm6450"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-dejagnu"></a>8.17. DejaGNU-1.6.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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 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> - <p> - Чтобы протестировать пакет, выполните: - </p> - <pre class="userinput"><kbd class= - "command">make check</kbd></pre> - </div> - <div class="content" lang="en"> - <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="idm6502"></a>Short Descriptions - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-binutils"></a>8.18. Binutils-2.41 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.18.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</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>--enable-64-bit-bfd</code></em></span> - </dt> - <dd> - <p> - Включает 64-разрядную поддержку (на хостах с - ограниченным размерам слов). Может не понадобится в - 64-разрядных системах, но вреда от этого не будет. - </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> - Также известно, что завершаются неудачно три теста в пакете - gprofng. - </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="en"> - <h3 class="sect2"> - <a id="contents-binutils" name= - "contents-binutils"></a>8.18.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="idm6609"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">libbfd</code></span> - </p> - </td> - <td> - <p> - Библиотека дескрипторов двоичных файлов - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gmp"></a>8.19. GMP-6.3.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.19.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>&1 | tee gmp-check-log</kbd></pre> - <div class="admon caution"> - <h3> - Внимание - </h3> - <p> - Код в GMP сильно оптимизирован для процессора, на котором - он собран. Иногда код, определяющий процессор, неверно - определяет возможности системы, и в тестах или других - приложениях, использующих библиотеки gmp, возникают ошибки - с сообщением "Illegal instruction". В этом случае 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="en"> - <h3 class="sect2"> - <a id="contents-gmp" name="contents-gmp"></a>8.19.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="idm6857"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="libgmp"></a><span class="term"><code class= - "filename">libgmp</code></span> - </p> - </td> - <td> - <p> - Содержит точные математические функции - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-mpfr"></a>8.20. MPFR-4.2.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет MPFR содержит функции для двоичных вычислений с - плавающей запятой произвольной точности. - </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">43 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.20.1. Установка пакета MPFR - </h3> - <p> - Исправьте тестовый пример, приводящий к ошибке в старых - версиях Glibc: - </p> - <pre class="userinput"><kbd class= - "command">sed -e 's/+01,234,567/+1,234,567 /' \ - -e 's/13.10Pd/13Pd/' \ - -i tests/tsprintf.c</kbd></pre> - <p> - Подготовьте MPFR к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">./configure --prefix=/usr \ - --disable-static \ - --enable-thread-safe \ - --docdir=/usr/share/doc/mpfr-4.2.0</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> - Выполните тестирование и убедитесь, что все 197 тестов - пройдены: - </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="en"> - <h3 class="sect2"> - <a id="contents-mpfr" name="contents-mpfr"></a>8.20.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.0</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm6913"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-mpc"></a>8.21. MPC-1.3.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.21.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="en"> - <h3 class="sect2"> - <a id="contents-mpc" name="contents-mpc"></a>8.21.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="idm6957"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-attr"></a>8.22. Attr-2.5.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.1 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.22.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.1</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="en"> - <h3 class="sect2"> - <a id="contents-attr" name="contents-attr"></a>8.22.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.1</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm7003"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></a><span class="term"><code class= - "filename">libattr</code></span> - </p> - </td> - <td> - <p> - Содержит библиотечные функции для управления - расширенными атрибутами. - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-acl"></a>8.23. Acl-2.3.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.1 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.23.1. Установка пакета Acl - </h3> - <p> - Подготовьте Acl к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/acl-2.3.1</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="en"> - <h3 class="sect2"> - <a id="contents-acl" name="contents-acl"></a>8.23.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.1</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm7071"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></a><span class="term"><code class= - "filename">libacl</code></span> - </p> - </td> - <td> - <p> - Содержит библиотечные функции для управления - списками контроля доступа. - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libcap"></a>8.24. Libcap-2.69 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.24.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="en"> - <h3 class="sect2"> - <a id="contents-libcap" name="contents-libcap"></a>8.24.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="idm7145"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libxcrypt"></a>8.25. Libxcrypt-4.4.36 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.25.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 .libs/libcrypt.so.1* /usr/lib</kbd></pre> - </div> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-libxcrypt" name= - "contents-libxcrypt"></a>8.25.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="idm7244"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-shadow"></a>8.26. Shadow-4.13 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">46 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.26.1. Установка пакета Shadow - </h3> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Если вы хотите принудительно использовать надежные пароли, - обратитесь к инструкции <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/cracklib.html"> - https://mirror.linuxfromscratch.ru/blfs/view/12.0/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.05.01">Раздел 8.3, - «Man-pages-6.05.01»</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"></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 \ - --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> - </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="en"> - <h3 class="sect2"> - <a id="conf-shadow" name="conf-shadow"></a>8.26.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>. Смотрите - справочную страницу <code class="filename">useradd(8)</code> - для получения дополнительной информации. - </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. Создание основных файлов и символических ссылок">Раздел 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="en"> - <h3 class="sect2"> - 8.26.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="en"> - <h3 class="sect2"> - <a id="contents-shadow" name="contents-shadow"></a>8.26.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, lastlog, 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="idm7400"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="lastlog"></a><span class="term"><span class= - "command"><strong>lastlog</strong></span></span> - </p> - </td> - <td> - <p> - Сообщает о самом последнем входе в систему всех - пользователей или данного пользователя - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class= - "term"><code class="filename">libsubid</code></span> - </p> - </td> - <td> - <p> - библиотека для обработки подчиненных диапазонов - идентификаторов пользователей и групп - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gcc"></a>8.27. GCC-13.2.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.27.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.0/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"></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 -Rv 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.0/">https://mirror.linuxfromscratch.ru/lfs/build-logs/12.0/</a> - и <a class="ulink" href= - "https://gcc.gnu.org/ml/gcc-testresults/">https://gcc.gnu.org/ml/gcc-testresults/</a>. - </p> - <p> - Известно, что два теста с именами <code class= - "filename">copy.cc</code> и <code class= - "filename">pr56837.c</code> завершаются ошибкой. Кроме того, - известно, что несколько тестов в каталоге <code class= - "filename">vect</code> завершаются неудачно, если - оборудование не поддерживает AVX. - </p> - <p> - Известно, что в Glibc-2.38, тесты анализатора с именами - <code class="filename">data-model-4.c</code> и <code class= - "filename">conftest-1.c</code> завершаются неудачно. - Известно, что в тестах asan, несколько тестов в <code class= - "filename">asan_test.C</code> завершаются неудачно. Известно, - что тест с именем <code class= - "filename">interception-malloc-test-1.C</code> завершился - ошибкой. - </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(){}' > dummy.c -cc dummy.c -v -Wl,--verbose &> 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 <...> 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="en"> - <h3 class="sect2"> - <a id="contents-gcc" name="contents-gcc"></a>8.27.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="idm7829"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">libcc1</code></span> - </p> - </td> - <td> - <p> - Библиотека предварительной обработки C - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class="term"><code class= - "filename">libgcov</code></span> - </p> - </td> - <td> - <p> - Эта библиотека компонуется с программой, когда в - GCC включено профилирование - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></a><span class="term"><code class= - "filename">libitm</code></span> - </p> - </td> - <td> - <p> - Библиотека транзакционной памяти GNU - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></a><span class="term"><code class= - "filename">libstdc++</code></span> - </p> - </td> - <td> - <p> - Стандартная библиотека C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></a><span class="term"><code class= - "filename">libsupc++</code></span> - </p> - </td> - <td> - <p> - Предоставляет вспомогательные процедуры для языка - программирования C++ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-pkgconf"></a>8.28. Pkgconf-2.0.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.28.1. Установка пакета Pkgconf - </h3> - <p> - Подготовьте Pkgconf к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">./configure --prefix=/usr \ - --disable-static \ - --docdir=/usr/share/doc/pkgconf-2.0.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="en"> - <h3 class="sect2"> - <a id="contents-pkgconf" name="contents-pkgconf"></a>8.28.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.0.1</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm8082"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-ncurses"></a>8.29. Ncurses-6.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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>. - </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 -cp -av dest/* /</kbd></pre> - <p> - Многие приложения ожидают, что компоновщик сможет найти - библиотеки Ncurses, не поддерживающие расширенный набор - символов. Свяжите такие приложения с библиотеками - расширенного набора символов с помощью символических ссылок и - скриптов компоновщика: - </p> - <pre class="userinput"><kbd class= - "command">for lib in ncurses form panel menu ; do - rm -vf /usr/lib/lib${lib}.so - echo "INPUT(-l${lib}w)" > /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">rm -vf /usr/lib/libcursesw.so -echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so -ln -sfv libncurses.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</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="en"> - <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">libcursesw.so - (символическая ссылка и скрипт компоновщика на - libncursesw.so), libformw.so, libmenuw.so, - libncursesw.so, libncurses++w.so, libpanelw.so, и их - аналоги без "w" в именах библиотек.</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class="segbody">/usr/share/tabset, - /usr/share/terminfo, и /usr/share/doc/ncurses-6.4</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm8193"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><span class= - "command"><strong>tset</strong></span></span> - </p> - </td> - <td> - <p> - Может использоваться для инициализации терминалов - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libcursesw"></a><span class= - "term"><code class= - "filename">libcursesw</code></span> - </p> - </td> - <td> - <p> - Ссылка на <code class="filename">libncursesw</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></a><span class= - "term"><code class="filename">libformw</code></span> - </p> - </td> - <td> - <p> - Содержит функции, реализующие формы - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libmenuw"></a><span class= - "term"><code class="filename">libmenuw</code></span> - </p> - </td> - <td> - <p> - Содержит функции, реализующие меню - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-sed"></a>8.30. Sed-4.9 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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 -Rv 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="en"> - <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="idm8351"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-psmisc"></a>8.31. Psmisc-23.6 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm8393"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gettext"></a>8.32. Gettext-0.22 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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</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="en"> - <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, /usr/share/gettext и - /usr/share/gettext-0.22</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm8482"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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><string></em></span> и - потоками <span class= - "emphasis"><em><iostream></em></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></a><span class= - "term"><code class= - "filename">libgettextsrc</code></span> - </p> - </td> - <td> - <p> - Предоставляет общие подпрограммы, используемые - различными программами Gettext; они не - предназначены для общего использования - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-bison"></a>8.33. Bison-3.8.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Bison содержит генератор синтаксического анализа. - </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">62 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm8730"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-grep"></a>8.34. Grep-3.11 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm8796"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-bash"></a>8.35. Bash-5.2.15 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Bash содержит Bourne-Again Shell. - </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">52 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.35.1. Установка пакета Bash - </h3> - <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.15</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 -Rv 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 << 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"><</code> и <code class= - "computeroutput">></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="en"> - <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.15</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm8882"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libtool"></a>8.36. Libtool-2.4.7 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Libtool содержит сценарий поддержки универсальной - библиотеки GNU. Это упрощает использование общих библиотек - благодаря согласованному переносимому интерфейсу. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">1.3 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">45 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Время тестирования Libtool может быть значительно сокращено - в системе с несколькими ядрами. Для этого добавьте - <span class= - "command"><strong>TESTSUITEFLAGS=-j<N></strong></span> - к строке выше. Например, использование -j4 может сократить - время тестирования более чем на 60 процентов. - </p> - </div> - <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="en"> - <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="idm8954"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></a><span class="term"><code class= - "filename">libltdl</code></span> - </p> - </td> - <td> - <p> - Скрывает различные проблемы, связанные с открытием - динамически загружаемых библиотек - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gdbm"></a>8.37. GDBM-1.23 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm9020"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></a><span class="term"><code class= - "filename">libgdbm</code></span> - </p> - </td> - <td> - <p> - Содержит функции для управления хэшированной базой - данных - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gperf"></a>8.38. Gperf-3.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm9092"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-expat"></a>8.39. Expat-2.5.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">12 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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.5.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.5.0</kbd></pre> - </div> - <div class="content" lang="en"> - <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.5.0</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm9141"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-inetutils"></a>8.40. Inetutils-2.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">31 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm9219"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-less"></a>8.41. Less-643 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm9333"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-perl"></a>8.42. Perl-5.38.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Perl содержит практический язык для извлечения данных и - составления отчётов (Practical Extraction and Report - Language). - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">7.1 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">239 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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>-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>-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>-Duseshrplib</code></em></span> - </dt> - <dd> - <p> - Собрать общую библиотеку libperl, необходимую некоторым - модулям Perl. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>-Dusethreads</code></em></span> - </dt> - <dd> - <p> - Собрать 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.0) без необходимости переустанавливать все - модули. - </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">make test</kbd></pre> - <p> - Установка пакета и очистка: - </p> - <pre class="userinput"><kbd class="command">make install -unset BUILD_ZLIB BUILD_BZIP2</kbd></pre> - </div> - <div class="content" lang="en"> - <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.0 (жесткая ссылка на 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="idm9436"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class= - "term"><span class= - "command"><strong>perl5.38.0</strong></span></span> - </p> - </td> - <td> - <p> - Жесткая ссылка на <span class= - "command"><strong>perl</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-xml-parser"></a>8.43. XML::Parser-2.46 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.3 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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="en"> - <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="idm9700"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-intltool"></a>8.44. Intltool-0.51.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm9749"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-autoconf"></a>8.45. Autoconf-2.71 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Autoconf содержит программы для создания сценариев - оболочки, которые могут автоматически настраивать исходный - код. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">менее 0.1 SBU - (около 6.0 SBU с тестами)</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">24 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.45.1. Установка пакета Autoconf - </h3> - <p> - Во-первых, исправьте несколько проблем с тестами, - обнаруженными в bash-5.2 и более поздних версиях: - </p> - <pre class="userinput"><kbd class= - "command">sed -e 's/SECONDS|/&SHLVL|/' \ - -e '/BASH_ARGV=/a\ /^SHLVL=/ d' \ - -i.orig tests/local.at</kbd></pre> - <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> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Время тестирования autoconf можно значительно сократить на - многоядерных системах. Для этого добавьте <span class= - "command"><strong>TESTSUITEFLAGS=-j<N></strong></span> - к строке выше. Использование аргумента -j4 может сократить - время тестирования более чем на 60 процентов. - </p> - </div> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make install</kbd></pre> - </div> - <div class="content" lang="en"> - <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="idm9828"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-automake"></a>8.46. Automake-1.16.5 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Automake содержит программы генерации Makefile для - использования с Autoconf. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">менее 0.1 SBU - (около 7.0 SBU с тестами)</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">114 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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> - Использование опции make -j4 ускоряет тесты даже в системах с - одним процессором из-за внутренних задержек в отдельных - тестах. Чтобы протестировать пакет, выполните: - </p> - <pre class="userinput"><kbd class= - "command">make -j4 check</kbd></pre> - <p> - Известно, что тест t/subobj.sh не проходит. - </p> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make install</kbd></pre> - </div> - <div class="content" lang="en"> - <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="idm9934"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-openssl"></a>8.47. OpenSSL-3.1.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет OpenSSL содержит инструменты управления и библиотеки, - относящиеся к криптографии. Они полезны для предоставления - криптографических функций другим пакетам, таким как OpenSSH, - приложениям электронной почты и веб-браузерам (для доступа к - сайтам по HTTPS). - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">3.0 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">587 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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">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.1.2</kbd></pre> - <p> - По желанию, установите дополнительную документацию: - </p> - <pre class="userinput"><kbd class= - "command">cp -vfr doc/* /usr/share/doc/openssl-3.1.2</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> - Если установлен <span class="application">OpenSSH</span>, - это будет исключением из общего правила, указанного выше. - Он содержит чрезмерно ограничительную проверку версии - OpenSSL, поэтому и SSH-клиент, и SSH-сервер откажутся - запускаться, если OpenSSL обновлен с прежним номером MAJOR - версии, но с другим номером MINOR версии. После такого - обновления вам необходимо пересобрать <span class= - "application">OpenSSH</span>. <span class= - "bold"><strong>Если <span class= - "application">OpenSSH</span> используется для доступа к - системе, вам необходимо пересобрать и переустановить его - после обновления OpenSSL до новой MINOR версии перед - выходом из системы, иначе вы не сможете больше войти в - систему через SSH.</strong></span> - </p> - <p> - Все запущенные программы, связанные с этими библиотеками, - после обновления необходимо остановить и перезапустить. Для - получения более подробной информации ознакомьтесь с - соответствующей записью в <a class="xref" href= - "#pkgmgmt-upgrade-issues" title= - "8.2.1. Проблемы с обновлением">Раздел 8.2.1, - «Проблемы с обновлением»</a>. - </p> - </div> - </div> - <div class="content" lang="en"> - <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.1.2</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm10034"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></a><span class= - "term"><span class= - "command"><strong>openssl</strong></span></span> - </p> - </td> - <td> - <p> - это инструмент командной строки для использования - различных криптографических функций библиотеки - <span class="application">OpenSSL</span> из - оболочки. Его можно использовать для различных - функций, которые задокументированы в <span class= - "command"><strong>man 1 openssl</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></a><span class="term"><code class= - "filename">libssl.so</code></span> - </p> - </td> - <td> - <p> - реализует протокол безопасности транспортного - уровня (TLS v1). Он предоставляет богатый API, - документацию по которому можно найти, выполнив - команду: <span class="command"><strong>man 7 - ssl</strong></span> - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-kmod"></a>8.48. Kmod-30 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm10121"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></a><span class="term"><code class= - "filename">libkmod</code></span> - </p> - </td> - <td> - <p> - Библиотека используемая другими программами для - загрузки и выгрузки модулей ядра - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libelf"></a>8.49. Libelf из - Elfutils-0.189 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">122 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.49.1. Установка пакета Libelf - </h3> - <p> - Libelf является частью пакета elfutils-0.189. Используйте - elfutils-0.189.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="en"> - <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="idm10217"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libffi"></a>8.50. Libffi-3.4.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm10273"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-Python"></a>8.51. Python-3.11.4 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Python 3 содержит среду разработчика Python. Его можно - использовать для объектно-ориентированного программирования, - написания скриптов, прототипирования больших программ и - разработка целых приложений. Python — это интерпретируемый - язык программирования. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">1.9 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">370 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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 \ - --with-system-ffi \ - --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>--with-system-ffi</code></em></span> - </dt> - <dd> - <p> - Этот параметр выполняет линковку с системной версией - <code class="filename">libffi.so</code>. - </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 > /etc/pip.conf << 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.11.4/html - -tar --strip-components=1 \ - --no-same-owner \ - --no-same-permissions \ - -C /usr/share/doc/python-3.11.4/html \ - -xvf ../python-3.11.4-docs-html.tar.bz2</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> и <code class= - "option">--no-same-permissions</code></span> - </dt> - <dd> - <p> - Проверяет, что установленные файлы имеют корректные - права и владельца файлов. Использование <span class= - "application">tar</span> без этих параметров приведет к - установке файлов с правами пользователя создавшего - пакет. - </p> - </dd> - </dl> - </div> - </div> - <div class="content" lang="en"> - <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.11.so и libpython3.so</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class="segbody">/usr/include/python3.11, - /usr/lib/python3 и /usr/share/doc/python-3.11.4</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm10377"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-flit-core"></a>8.52. Flit-Core-3.9.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.7 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.52.1. Установка пакета Flit-Core - </h3> - <p> - Соберите пакет: - </p> - <pre class="userinput"><kbd class= - "command">pip3 wheel -w dist --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"><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="en"> - <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.11/site-packages/flit_core и - /usr/lib/python3.11/site-packages/flit_core-3.9.0.dist-info</span> - </div> - </div> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-wheel"></a>8.53. Wheel-0.41.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.53.1. Установка пакета Wheel - </h3> - <p> - Скомпилируйте Wheel с помощью следующей команды: - </p> - <pre class="userinput"><kbd class= - "command">pip3 wheel -w dist --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="en"> - <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.11/site-packages/wheel и - /usr/lib/python3.11/site-packages/wheel-0.41.1.dist-info</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm10507"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-ninja"></a>8.54. Ninja-1.11.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.54.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 > 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="en"> - <h3 class="sect2"> - <a id="contents-ninja" name="contents-ninja"></a>8.54.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="idm10565"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-meson"></a>8.55. Meson-1.2.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.55.1. Установка пакета Meson - </h3> - <p> - Скомпилируйте Meson с помощью следующей команды: - </p> - <pre class="userinput"><kbd class= - "command">pip3 wheel -w dist --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="en"> - <h3 class="sect2"> - <a id="contents-meson" name="contents-meson"></a>8.55.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.11/site-packages/meson-1.2.1.dist-info - и /usr/lib/python3.11/site-packages/mesonbuild</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm10618"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-coreutils"></a>8.56. Coreutils-9.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Coreutils содержит основные утилиты, необходимые каждой - операционной системе. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">0.9 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">165 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.56.1. Установка пакета Coreutils - </h3> - <p> - Стандарт POSIX требует, чтобы программы пакета Coreutils - правильно распознавали символы даже в случае, если - используются многобайтовые локали. Следующий патч исправляет - несоответствие этому требованию, а также другие ошибки, - касающиеся интернационализации: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../coreutils-9.3-i18n-1.patch</kbd></pre> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - В этом патче было обнаружено много ошибок. Сообщая о новых - ошибках разработчикам Coreutils, сначала проверьте, - воспроизводятся ли эти ошибки без этого исправления. - </p> - </div> - <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 -Rv 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> - Тест test-getlogin может завершиться ошибкой в среде chroot - LFS. - </p> - <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="en"> - <h3 class="sect2"> - <a id="contents-coreutils" name= - "contents-coreutils"></a>8.56.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="idm10709"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><span class= - "command"><strong>yes</strong></span></span> - </p> - </td> - <td> - <p> - Повторно выводит <span class="quote">«<span class= - "quote">y</span>»</span> или указанную строку, до - тех пор, пока команда не будет завершена с помощью - kill - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-check"></a>8.57. Check-0.15.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.57.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="en"> - <h3 class="sect2"> - <a id="contents-check" name="contents-check"></a>8.57.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="idm11489"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-diffutils"></a>8.58. Diffutils-3.10 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.58.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="en"> - <h3 class="sect2"> - <a id="contents-diffutils" name= - "contents-diffutils"></a>8.58.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="idm11538"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gawk"></a>8.59. Gawk-5.2.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">46 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.59.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 -Rv tester . -su tester -c "PATH=$PATH make check"</kbd></pre> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make LN='ln -f' install</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение переопределенной переменной make:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><code class="envar">LN='ln - -f'</code></span> - </dt> - <dd> - <p> - Эта переменная гарантирует, что предыдущая жесткая - ссылка, установленная в <a class="xref" href= - "#ch-tools-gawk" title= - "6.9. Gawk-5.2.2">Раздел 6.9, «Gawk-5.2.2»</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.2.2 -cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.2.2</kbd></pre> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-gawk" name="contents-gawk"></a>8.59.2. - Содержимое пакета Gawk - </h3> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установленные - программы:</strong> <span class="segbody">awk (ссылка на - gawk), gawk и gawk-5.2.2</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.2.2</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm11624"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></a><span class= - "term"><span class= - "command"><strong>gawk-5.2.2</strong></span></span> - </p> - </td> - <td> - <p> - Жесткая ссылка на <span class= - "command"><strong>gawk</strong></span> - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-findutils"></a>8.60. Findutils-4.9.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.60.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 -Rv 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="en"> - <h3 class="sect2"> - <a id="contents-findutils" name= - "contents-findutils"></a>8.60.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="idm11695"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-groff"></a>8.61. Groff-1.23.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.61.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><paper_size></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="en"> - <h3 class="sect2"> - <a id="contents-groff" name="contents-groff"></a>8.61.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="idm11769"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-grub"></a>8.62. GRUB-2.06 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">161 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.62.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.0/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> - Устранена проблема, приводившая к сбою <span class= - "command"><strong>grub-install</strong></span>, когда раздел - <code class="filename">/boot</code> (или корневой раздел, - если <code class="filename">/boot</code> не является - отдельным разделом) создается e2fsprogs-1.47.0 или более - поздней версии: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../grub-2.06-upstream_fixes-1.patch</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 для настройки процесса загрузки">Раздел 10.4, - «Использование GRUB для настройки процесса загрузки»</a>. - </p> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-gRUB" name="contents-gRUB"></a>8.62.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="idm12200"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-gzip"></a>8.63. Gzip-1.12 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.63.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="en"> - <h3 class="sect2"> - <a id="contents-gzip" name="contents-gzip"></a>8.63.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="idm12415"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-iproute2"></a>8.64. IPRoute2-6.4.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.64.1. Установка пакета IPRoute2 - </h3> - <p> - Программа <span class="command"><strong>arpd</strong></span>, - входящая в этот пакет, не будет собрана, поскольку зависит от - Berkeley DB, которая не установлена в LFS. Однако каталог и - справочная страница для <span class= - "command"><strong>arpd</strong></span> все равно будут - установлены. Предотвратить это можно, выполнив приведенные - ниже команды. (Если вам нужна <span class= - "command"><strong>arpd</strong></span>, инструкции по - компиляции Berkeley DB можно найти в книге BLFS по адресу - <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/db.html"> - https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/db.html</a>.) - </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.4.0 -cp -v COPYING README* /usr/share/doc/iproute2-6.4.0</kbd></pre> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-iproute2" name= - "contents-iproute2"></a>8.64.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.4.0</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm12568"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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><device></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-kbd"></a>8.65. Kbd-2.6.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">35 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.65.1. Установка пакета Kbd - </h3> - <p> - Поведение клавиш backspace и delete не согласуется между - раскладками в пакете Kbd. Следующий патч исправляет эту - проблему для раскладок i386: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../kbd-2.6.1-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.1</kbd></pre> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-kbd" name="contents-kbd"></a>8.65.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.1 и /usr/share/unimaps</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm12757"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-libpipeline"></a>8.66. Libpipeline-1.5.7 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.66.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="en"> - <h3 class="sect2"> - <a id="contents-libpipeline" name= - "contents-libpipeline"></a>8.66.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="idm12968"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-make"></a>8.67. Make-4.4.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.67.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 -Rv 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="en"> - <h3 class="sect2"> - <a id="contents-make" name="contents-make"></a>8.67.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="idm13010"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-patch"></a>8.68. Patch-2.7.6 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.68.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="en"> - <h3 class="sect2"> - <a id="contents-patch" name="contents-patch"></a>8.68.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="idm13054"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-tar"></a>8.69. Tar-1.35 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Tar предоставляет возможность создавать tar архивы, а - также производить с ними различные манипуляции. Tar может - распаковать предварительно созданный архив, добавить или - обновить файлы в нём, вернуть список файлов в архиве. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">1.7 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">43 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.69.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> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Время тестирования Tar можно значительно сократить в - системе с несколькими ядрами. Для этого добавьте - <span class= - "command"><strong>TESTSUITEFLAGS=-j<N></strong></span> - к строке выше. Например, использование -j4 может сократить - время тестирования более чем на 70 процентов. - </p> - </div> - <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="en"> - <h3 class="sect2"> - <a id="contents-tar" name="contents-tar"></a>8.69.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="idm13114"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-texinfo"></a>8.70. Texinfo-7.0.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">128 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.70.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>/dev/null - done -popd</kbd></pre> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-texinfo" name="contents-texinfo"></a>8.70.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="idm13176"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-vim"></a>8.71. Vim-9.0.1677 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Пакет Vim содержит мощный текстовый редактор. - </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">229 - 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.0/postlfs/editors.html"> - https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/editors.html</a> - за рекомендациями по установке. - </p> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.71.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"' >> 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 -Rv tester .</kbd></pre> - <p> - Теперь запустите тесты от имени пользователя <code class= - "systemitem">tester</code>: - </p> - <pre class="userinput"><kbd class= - "command">su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log</kbd></pre> - <p> - Набор тестов выводит на экран много двоичных данных. Это - может вызвать проблемы с настройками текущего терминала. - Чтобы этого избежать, перенаправьте вывод в файл журнала, как - показано выше. Тест пройден успешно, если в файле журнала по - завершении есть надпись "ALL DONE". - </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.0.1677</code>, что - согласуется с расположением документации остальных пакетов: - </p> - <pre class="userinput"><kbd class= - "command">ln -sv ../vim/vim90/doc /usr/share/doc/vim-9.0.1677</kbd></pre> - <p> - Если в LFS будет установлена система X Window, может - потребоваться перекомпилировать Vim после установки X. Vim - поставляется с графической версией редактора, для которой - требуется установка X и некоторых дополнительных библиотек. - Для получения дополнительной информации об этом процессе - обратитесь к документации по Vim и странице установки Vim в - книге BLFS по адресу <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/vim.html"> - https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/vim.html</a>. - </p> - </div> - <div class="configuration" lang="en"> - <h3 class="sect2"> - <a id="conf-vim" name="conf-vim"></a>8.71.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 > /etc/vimrc << "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 (&term == "xterm") || (&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/vim90/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="en"> - <h3 class="sect2"> - <a id="contents-vim" name="contents-vim"></a>8.71.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="idm13346"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-markupsafe"></a>8.72. MarkupSafe-2.1.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">548 - KB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.72.1. Установка пакета MarkupSafe - </h3> - <p> - Скомпилируйте MarkupSafe с помощью следующей команды: - </p> - <pre class="userinput"><kbd class= - "command">pip3 wheel -w dist --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="en"> - <h3 class="sect2"> - <a id="contents-markupsafe" name= - "contents-markupsafe"></a>8.72.2. Содержимое пакета - MarkupSafe - </h3> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class= - "segbody">/usr/lib/python3.11/site-packages/MarkupSafe-2.1.3.dist-info</span> - </div> - </div> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-jinja2"></a>8.73. Jinja2-3.1.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.4 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.73.1. Установка пакета Jinja2 - </h3> - <p> - Соберите пакет: - </p> - <pre class="userinput"><kbd class= - "command">pip3 wheel -w dist --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="en"> - <h3 class="sect2"> - <a id="contents-jinja2" name="contents-jinja2"></a>8.73.2. - Содержимое пакета Jinja2 - </h3> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class= - "segbody">/usr/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info</span> - </div> - </div> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-udev"></a>8.74. Udev из Systemd-254 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">138 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.74.1. Установка пакета Udev - </h3> - <p> - Udev является частью пакета systemd-254. Используйте файл - systemd-254.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">mkdir -p build -cd build - -meson setup \ - --prefix=/usr \ - --buildtype=release \ - -Dmode=release \ - -Ddev-kvm-mode=0660 \ - -Dlink-udev-shared=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> - </dl> - </div> - <p> - Соберите только компоненты, необходимые для udev: - </p> - <pre class="userinput"><kbd class= - "command">ninja udevadm systemd-hwdb \ - $(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \ - build.ninja | awk '{ print $2 }') \ - $(realpath libudev.so --relative-to .)</kbd></pre> - <p> - Удалите один файл правил udev, требующий полной установки - Systemd: - </p> - <pre class="userinput"><kbd class= - "command">rm rules.d/90-vconsole.rules</kbd></pre> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d -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/{*.rules,README} /usr/lib/udev/rules.d/ -install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/ -install -vm755 $(find src/udev -type f | grep -F -v ".") /usr/lib/udev</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-254.tar.xz \ - --no-same-owner --strip-components=1 \ - -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \ - '*/systemd-'{hwdb,udevd.service}.8 -sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \ - > /usr/share/man/man8/udev-hwdb.8 -sed 's|lib.*udevd|sbin/udevd|' \ - /usr/share/man/man8/systemd-udevd.service.8 \ - > /usr/share/man/man8/udevd.8 -rm /usr/share/man/man8/systemd-*.8</kbd></pre> - </div> - <div class="configuration" lang="en"> - <h3 class="sect2"> - <a id="conf-udev" name="conf-udev"></a>8.74.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="en"> - <h3 class="sect2"> - <a id="contents-udev" name="contents-udev"></a>8.74.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="idm13567"></a>Short Descriptions - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-man-db"></a>8.75. Man-DB-2.11.2 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">40 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.75.1. Установка пакета Man-DB - </h3> - <p> - Подготовьте Man-DB к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">./configure --prefix=/usr \ - --docdir=/usr/share/doc/man-db-2.11.2 \ - --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> - Известно, что один тест с именем <code class= - "filename">man1/lexgrog.1</code> завершился неудачно. - </p> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make install</kbd></pre> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 8.75.2. Не англоязычные страницы руководств в LFS - </h3> - <p> - В следующей таблице приведены наборы символов, в которых - могут быть закодированы страницы руководств пакета Man-DB, - устанавливаемые в директории <code class= - "filename">/usr/share/man/<ll></code>. Кроме этого, - Man-DB правильно определяет, имеют ли справочные страницы, - установленные в этом каталоге, кодировку UTF-8. - </p> - <div class="table"> - <a id="idm13666"></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> - - </td> - <td> - - </td> - </tr> - </tbody> - </table> - </div> - </div><br class="table-break" /> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Страницы руководств на языках, которые не указаны в списке, - не поддерживаются. - </p> - </div> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-man-db" name="contents-man-db"></a>8.75.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.11.2</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm13803"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-procps"></a>8.76. Procps-ng-4.0.3 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">25 MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.76.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.3 \ - --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 check</kbd></pre> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class= - "command">make install</kbd></pre> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-procps" name="contents-procps"></a>8.76.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.3</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm13933"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-util-linux"></a>8.77. Util-linux-2.39.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">310 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.77.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 ADJTIME_PATH=/var/lib/hwclock/adjtime \ - --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 \ - --docdir=/usr/share/doc/util-linux-2.39.1</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 -Rv 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="en"> - <h3 class="sect2"> - <a id="contents-utillinux" name= - "contents-utillinux"></a>8.77.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.1 и - /var/lib/hwclock</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm14099"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><span class= - "command"><strong>irqtop</strong></span></span> - </p> - </td> - <td> - <p> - Отображает информацию о счетчике прерываний ядра в - стиле <code class="filename">top(1)</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class="term"><span class= - "command"><strong>uuidgen</strong></span></span> - </p> - </td> - <td> - <p> - Создает новые идентификаторы (UUID). Каждый новый - UUID - это случайная последовательность, которая, - будет с очень высокой вероятностью (примерно 3,4 х - 10 в 38 степени вариантов) уникальной среди всех - идентификаторов, созданных как на локальной машине, - так и на любых других системах, в прошлом и будущем - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></a><span class= - "term"><code class="filename">libblkid</code></span> - </p> - </td> - <td> - <p> - Содержит подпрограммы для идентификации устройства - и извлечения токена - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libfdisk"></a><span class= - "term"><code class="filename">libfdisk</code></span> - </p> - </td> - <td> - <p> - Содержит подпрограммы для управления таблицами - разделов - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libmount"></a><span class= - "term"><code class="filename">libmount</code></span> - </p> - </td> - <td> - <p> - Содержит подпрограммы для монтирования и - размонтирования блочных устройств - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libsmartcols"></a><span class= - "term"><code class= - "filename">libsmartcols</code></span> - </p> - </td> - <td> - <p> - Содержит подпрограммы для более удобного вывода на - экран информации в табличном виде - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-e2fsprogs"></a>8.78. E2fsprogs-1.47.0 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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.6 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="en"> - <h3 class="sect2"> - 8.78.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="en"> - <h3 class="sect2"> - <a id="conf-e2fsprogs" name="conf-e2fsprogs"></a>8.78.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> - Подробности читайте в справочной странице <code class= - "filename">mke2fs.conf(5)</code>. - </p> - </div> - <div class="content" lang="en"> - <h3 class="sect2"> - <a id="contents-e2fsprogs" name= - "contents-e2fsprogs"></a>8.78.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="idm15003"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a><span class= - "term"><code class= - "filename">libcom_err</code></span> - </p> - </td> - <td> - <p> - Стандартная процедура отображения ошибок - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="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"></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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-sysklogd"></a>8.79. Sysklogd-1.5.1 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <h3 class="sect2"> - 8.79.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="en"> - <h3 class="sect2"> - <a id="conf-sysklogd" name="conf-sysklogd"></a>8.79.2. - Настройка Sysklogd - </h3> - <p> - Создайте новый файл <code class= - "filename">/etc/syslog.conf</code>, выполнив следующую - команду: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/syslog.conf << "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="en"> - <h3 class="sect2"> - <a id="contents-sysklogd" name= - "contents-sysklogd"></a>8.79.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="idm15315"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-sysvinit"></a>8.80. Sysvinit-3.07 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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">4.5 - MB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <h3 class="sect2"> - 8.80.1. Установка пакета Sysvinit - </h3> - <p> - Сначала примените патч, который удаляет несколько программ, - установленных другими пакетами и исправляет предупреждение - компилятора: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../sysvinit-3.07-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="en"> - <h3 class="sect2"> - <a id="contents-sysvinit" name= - "contents-sysvinit"></a>8.80.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="idm15362"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-aboutdebug"></a>8.81. Об отладочных - символах - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-stripping"></a>8.82. Удаление отладочных - символов - </h2> - </div> - </div> - </div> - <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> - Отладочные символы для выбранных библиотек сохраняются в - отдельных файлах. Эта отладочная информация необходима при - выполнении регрессионных тестов, с помощью <a class="ulink" - href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0//general/valgrind.html"> - valgrind</a> или <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0//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. Проблемы с обновлением">Раздел 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-битных системах. Конструкция - ниже выбирает правильное имя для текущей архитектуры, - исключая всё, что заканчивается на <span class= - "quote">«<span class="quote">g</span>»</span>, если - приведенные ниже команды уже были выполнены. - </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 $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.41.so - libsframe.so.1.0.0 - libhistory.so.8.2 - libncursesw.so.6.4 - libm.so.6 - libreadline.so.8.2 - libz.so.1.2.13 - $(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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-system-cleanup"></a>8.83. Очистка - </h2> - </div> - </div> - </div> - <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.0/introduction/la-files.html"> - "О файлах архива Libtool (.la)"</a>. - </p> - <p> - Компилятор, собранный в <a class="xref" href= - "#chapter-temporary-tools" title= - "Глава 6. Кросс-Компиляция временных инструментов">Глава 6</a> - и <a class="xref" href="#chapter-chroot-temporary-tools" title= - "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов"> - Глава 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="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-config"></a>Глава 9. Системные настройки - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-introduction"></a>9.1. Введение - </h2> - </div> - </div> - </div> - <p> - Загрузка системы Linux включает в себя несколько задач. Процесс - должен монтировать как виртуальные, так и реальные файловые - системы, инициализировать устройства, активировать файл - подкачки, проверять целостность файловых систем, монтировать - любые разделы или файл подкачки, устанавливать системные часы, - запускать сеть, запускать требуемые системой службы и выполнять - любые другие необходимые пользователю задачи. Этот процесс - должен быть организован таким образом, чтобы задачи выполнялись - в правильном порядке, но в то же время как можно быстрее. - </p> - <div class="sect2" lang="en"> - <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 — выключение<br /> - 1 — Однопользовательский режим<br /> - 2 — Определяемый пользователем<br /> - 3 — Полный многопользовательский режим<br /> - - 4 — Определяемый пользователем<br /> - 5 — Полный многопользовательский режим с дисплей-менеджером<br /> - - 6 — перезагрузка - </p> - </div> - <p> - Уровень выполнения по умолчанию равен 3 или 5. - </p> - <h4> - <a id="idm15524"></a>Преимущества - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Устоявшаяся, хорошо отлаженная система. - </p> - </li> - <li class="listitem"> - <p> - Легко настраивается. - </p> - </li> - </ul> - </div> - <h4> - <a id="idm15530"></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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-bootscripts"></a>9.2. - LFS-Bootscripts-20230728 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <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="en"> - <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="en"> - <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="idm15567"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-udev"></a>9.3. Взаимодействие с - устройствами и модулями - </h2> - </div> - </div> - </div> - <p> - В <a class="xref" href="#chapter-building-system" title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 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="en"> - <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="en"> - <h3 class="sect2"> - 9.3.2. Реализация Udev - </h3> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm15769"></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"></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"></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, и имеет - псевдоним <span class="quote">«<span class= - "quote">pci:v00001319d00000801sv*sd*bc04sc01i*</span>»</span>. - Для большинства устройств, драйвер шины экспортирует - псевдонимы драйвера, которые будет обрабатывать устройство - через <code class="systemitem">sysfs</code>. Например, файл - <code class= - "filename">/sys/bus/pci/devices/0000:00:0d.0/modalias</code> - может содержать строку <span class="quote">«<span class= - "quote">pci:v00001319d00000801sv00001319sd00001319bc04sc01i00</span>»</span>. - Правила по умолчанию, которые предоставлены 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="idm15813"></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="en"> - <h3 class="sect2"> - 9.3.3. Проблемы с загрузкой модулей и созданием устройств - </h3> - <p> - Существует несколько возможных проблем, связанных с - автоматическим созданием узлов устройств. - </p> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm15820"></a>9.3.3.1. Модуль ядра не - загружается автоматически - </h4> - </div> - </div> - </div> - <p> - Udev загрузит модуль только в том случае, если у него есть - псевдоним, специфичный для шины, и драйвер шины правильно - экспортирует необходимые псевдонимы в <code class= - "systemitem">sysfs</code>. В других случаях следует - организовать загрузку модуля иными способами. Известно, - что, начиная с версии Linux-6.4.12, 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.4.12 это относится к шиной 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="idm15839"></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><filename></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> - зависимости. Обратитесь к документации <code class= - "filename">modprobe.d(5)</code> для изучения синтаксиса и - возможностей <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="idm15861"></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="idm15870"></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="idm15874"></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="idm15880"></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="idm15888"></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. Управление устройствами">Раздел 9.4, «Управление - устройствами»</a> и <a class="xref" href= - "#ch-config-network" title= - "9.5. Настройка сети">Раздел 9.5, «Настройка сети»</a> - для примера. - </p> - </div> - </div> - <div class="sect2" lang="en"> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-symlinks"></a>9.4. Управление - устройствами - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <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="idm15912"></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">Раздел 10.4.4, - «Создание файла конфигурации GRUB»</a>. - </p> - </div> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm15917"></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> - </div> - </div> - <div class="sect2" lang="en"> - <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="en"> - <h3 class="sect2"> - 9.4.3. Работа с дубликатами устройств - </h3> - <p> - Как поясняется в <a class="xref" href="#ch-config-udev" - title="9.3. Взаимодействие с устройствами и модулями">Раздел 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. Настройка сети">Раздел 9.5, «Настройка сети»</a>, - инструкции по настройке звуковых карт можно найти в <a class= - "ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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 > /etc/udev/rules.d/83-duplicate_devs.rules << "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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-network"></a>9.5. Настройка сети - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <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.74. Udev из Systemd-254">Раздел 8.74, «Udev - из Systemd-254»</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 > ifconfig.<em class= -"replaceable"><code>eth0</code></em> << "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> присвоено - значение <span class="quote">«<span class= - "quote">yes</span>»</span>, сценарий загрузки сети System V - вызовет сетевую карту (NIC) в процессе загрузки системы. Если - задано значение, отличное от <span class= - "quote">«<span class="quote">yes</span>»</span> сетевой - адаптер будет проигнорирован сетевым скриптом и не будет - запущен автоматически. Интерфейсы можно запускать или - останавливать вручную с помощью команд <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="en"> - <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 > /etc/resolv.conf << "EOF" -<code class="literal"># Begin /etc/resolv.conf - -domain <em class="replaceable"><code><Ваше доменное имя></code></em> -nameserver <em class= -"replaceable"><code><IP-адрес вашего основного DNS-сервера></code></em> -nameserver <em class= -"replaceable"><code><IP-адрес вашего дополнительного DNS-сервера></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><IP-адрес вашего - основного DNS-сервера></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="en"> - <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><lfs></code></em>" > /etc/hostname</kbd></pre> - <p> - <em class="replaceable"><code><lfs></code></em> - замените на имя вашего компьютера. Не вносите сюда полное - доменное имя(FQDN). Эта информация помещается в файл - <code class="filename">/etc/hosts</code>. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - <a id="ch-config-hosts" name="ch-config-hosts"></a>9.5.4. - Настройка файла /etc/hosts - </h3> - <p> - Укажите IP-адрес, полное доменное имя (FQDN) и возможные - псевдонимы для использования в файле <code class= - "filename">/etc/hosts</code>. Синтаксис строки: - </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. Правильный FQDN - для этого IP адреса может быть lfs.example.org. - </p> - <p> - Даже если сетевая карта не используется, всё равно требуется - указание полного доменного имени. Это необходимо для - правильной работы некоторых программ. - </p> - <p> - Создайте файл <code class="filename">/etc/hosts</code>, - выполнив команду: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/hosts << "EOF" -<code class="literal"># Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 <em class="replaceable"><code><FQDN></code></em> <em class= -"replaceable"><code><HOSTNAME></code></em> -<em class="replaceable"><code><192.168.1.1></code></em> <em class= -"replaceable"><code><FQDN></code></em> <em class= -"replaceable"><code><HOSTNAME></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><192.168.1.1></code></em>, - <em class="replaceable"><code><FQDN></code></em>, и - <em class="replaceable"><code><HOSTNAME></code></em> - должны быть изменены в соответствии с предпочтениями - пользователя или требованиями сети (если имеется IP-адрес - выданный сетевым/системным администратором и машина - подключена к существующей сети). Необязательные параметры - могут быть опущены. - </p> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-usage"></a>9.6. Настройка и - использование загрузочных скриптов System V - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <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. (На самом деле уровней больше, но - они предназначены для особых случаев и обычно не - используются. Подробности смотрите в руководстве <code class= - "filename">init(8)</code>). Каждый из них соответствует - действиям, которые компьютер должен выполнить при запуске и - выключении. Уровень выполнения по умолчанию — 3. Ниже - приведено описание различных уровней в том виде, в каком они - реализованы в LFS: - </p> - <div class="literallayout"> - <p> - 0: выключение компьютера<br /> - 1: однопользовательский режим<br /> - 2: зарезервировано для настройки, в остальном аналогично 3<br /> - - 3: многопользовательский режим с поддержкой сети<br /> - - 4: зарезервировано для настройки, в остальном аналогично 3<br /> - - 5: то же, что и 4, обычно используется для входа в систему с графическим интерфейсом (например, <br /> - - <span class= - "command"><strong>gdm</strong></span> от GNOME или <span class="command"><strong>lxdm</strong></span> от LXDE)<br /> - - 6: перезагрузка компьютера - </p> - </div> - <div class="admon note"> - <h3> - Примечание - </h3> - <p> - Раньше, много лет назад, уровень выполнения 2 обозначался - как "многопользовательский режим без поддержки сети", - тогда, несколько пользователей могли подключаться к системе - через последовательные порты. В сегодняшних условиях это не - имеет смысла, и мы обозначаем этот уровень как - "зарезервировано". - </p> - </div> - </div> - <div class="configuration" lang="en"> - <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 > /etc/inittab << "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"></a>9.6.2.1. Изменение уровней - выполнения - </h4> - </div> - </div> - </div> - <p> - Изменить уровень выполнения можно с помощью команды - <span class="command"><strong>init <em class= - "replaceable"><code><runlevel></code></em></strong></span>, - где <em class= - "replaceable"><code><runlevel></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="en"> - <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 - <device></strong></span>, где <device> - это - абсолютный путь в /dev или /sys, такой как /dev/sr0 или - /sys/class/rtc. - </p> - <p> - Для получения информации о загрузке модуля ядра и udev - смотрите <a class="xref" href="#module-loading" title= - "9.3.2.3. Загрузка модуля">Раздел 9.3.2.3, «Загрузка - модуля»</a>. - </p> - </div> - <div class="sect2" lang="en"> - <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 > /etc/sysconfig/clock << "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="en"> - <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> - допустимые раскладки и экранные шрифты. Прочтите справочные - страницы <code class="filename">loadkeys(1)</code> и - <code class="filename">setfont(8)</code>, чтобы определить - правильные аргументы для этих программ. - </p> - <p> - Файл <code class="filename">/etc/sysconfig/console</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>. - Допустимы уровни от "1" (нет сообщений) до "8". По - умолчанию "7". - </p> - </dd> - <dt> - <span class="term">KEYMAP</span> - </dt> - <dd> - <p> - Эта переменная указывает аргументы для программы - <span class="command"><strong>loadkeys</strong></span>, - обычно это имя загружаемой раскладки, например, - <span class="quote">«<span class= - "quote">it</span>»</span>. Если эта переменная не - установлена, загрузочный скрипт не будет запускать - программу 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>. Она - полезна, если стандартная раскладка вас не совсем - устраивает и необходимо внести небольшую корректировку. - Например, чтобы добавить символ евро в раскладку, - которая его не содержит, присвойте этой переменной - значение <span class="quote">«<span class= - "quote">euro2</span>»</span>. - </p> - </dd> - <dt> - <span class="term">FONT</span> - </dt> - <dd> - <p> - Эта переменная определяет аргументы для программы - <span class="command"><strong>setfont</strong></span>. - Обычно она включает в себя имя шрифта <span class= - "quote">«<span class="quote">-m</span>»</span> и имя - загружаемой таблицы символов. Например, чтобы загрузить - шрифт <span class="quote">«<span class= - "quote">lat1-16</span>»</span> вместе с таблицей - символов <span class="quote">«<span class= - "quote">8859-1</span>»</span> (подходит для США), - установите эту переменную в <span class= - "quote">«<span class="quote">lat1-16 -m - 8859-1</span>»</span>. В режиме UTF-8 ядро использует - таблицу символов для преобразования 8-битных кодов - клавиш в UTF-8, поэтому аргумент параметра "-m" должен - быть установлен на кодировку соответствующих кодов - клавиш в раскладке. - </p> - </dd> - <dt> - <span class="term">UNICODE</span> - </dt> - <dd> - <p> - Присвойте этой переменной значение <span class= - "quote">«<span class="quote">1</span>»</span>, - <span class="quote">«<span class= - "quote">yes</span>»</span> или <span class= - "quote">«<span class="quote">true</span>»</span>, чтобы - переключить консоль в режим 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> - Для не-Unicode настройки необходимы только переменные - KEYMAP и FONT. Например, для польских пользователей - может подойти такой вариант: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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.4.12 правильно интерпретирует "мертвые" клавиши - и слияния, только когда исходные символы имеют 8-битные - коды. Эта особенность не влияет на раскладки для - европейских языков, поскольку в них "сливаются" два - ASCII-символа или добавляются подчеркивания к - неподчеркнутым ASCII-символам. Однако, в режиме UTF-8 - могут быть проблемы, например, для греческого языка, - когда необходимо подчеркнуть символ <span class= - "quote">«<span class="quote">alpha</span>»</span>. - Решением в этой ситуации будет отказ от использования - 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="en"> - <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="en"> - <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="en"> - <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="idm16413"></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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-profile"></a>9.7. Файлы запуска оболочки - Bash - </h2> - </div> - </div> - </div> - <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> - Для получения дополнительной информации смотрите разделы - <span class="emphasis"><em>Загрузочные файлы Bash</em></span> и - <span class="emphasis"><em>Интерактивные оболочки</em></span> - главы <span class="emphasis"><em>Возможности Bash</em></span> - на информационных страницах Bash (<span class= - "command"><strong>info bash</strong></span>). - </p> - <p> - Файлы <code class="filename">/etc/profile</code> и <code class= - "filename">~/.bash_profile</code> считываются при вызове - оболочки как интерактивной оболочки входа в систему. - </p> - <p> - По умолчанию в файле <code class="filename">/etc/profile</code> - задаются некоторые переменные окружения, необходимые для - поддержки вашего языка. Правильная их установка влияет на: - </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><ll></code></em> - двухбуквенным кодом нужного языка (например, <span class= - "quote">«<span class="quote">en</span>»</span>) и <em class= - "replaceable"><code><CC></code></em> двухбуквенным кодом - соответствующей страны (например, <span class= - "quote">«<span class="quote">GB</span>»</span>). <em class= - "replaceable"><code><charmap></code></em> следует - заменить на таблицу символов для выбранной вами локали. Также - могут присутствовать необязательные модификаторы, такие как - <span class="quote">«<span class="quote">@euro</span>»</span>. - </p> - <p> - Список всех языковых стандартов, поддерживаемых Glibc, можно - получить, выполнив следующую команду: - </p> - <pre class="userinput"><kbd class="command">locale -a</kbd></pre> - <p> - Таблицы символов могут иметь несколько синонимов, например, - <span class="quote">«<span class= - "quote">ISO-8859-1</span>»</span> также упоминается как - <span class="quote">«<span class= - "quote">iso8859-1</span>»</span> и <span class= - "quote">«<span class="quote">iso88591</span>»</span>. Некоторые - приложения не могут корректно обрабатывать различные синонимы - (например, требуют чтобы <span class="quote">«<span class= - "quote">UTF-8</span>»</span> записывалось как <span class= - "quote">«<span class="quote">UTF-8</span>»</span>, а не - <span class="quote">«<span class="quote">utf8</span>»</span>), - поэтому безопаснее всего в большинстве случаев выбирать - каноническое имя для конкретной локали. Чтобы определить - каноническое имя, запустите следующую команду, где <em class= - "replaceable"><code><locale name></code></em> - это - вывод, выдаваемый командой <span class="command"><strong>locale - -a</strong></span> для желаемой локали (в нашем примере - <span class="quote">«<span class= - "quote">en_GB.iso88591</span>»</span>). - </p> - <pre class="userinput"><kbd class="command">LC_ALL=<em class= - "replaceable"><code><locale name></code></em> locale charmap</kbd></pre> - <p> - Для локали <span class="quote">«<span class= - "quote">en_GB.iso88591</span>»</span> указанная выше команда - напечатает: - </p> - <pre class="screen"><code class= - "computeroutput">ISO-8859-1</code></pre> - <p> - Окончательная настройка локали будет выглядеть так: - <span class="quote">«<span class= - "quote">en_GB.ISO-8859-1</span>»</span>. Важно, чтобы локаль, - найденная с помощью приведенной выше методики, была проверена - перед её добавлением в файлы запуска Bash: - </p> - <pre class="userinput"><kbd class= - "command">LC_ALL=<locale name> locale language -LC_ALL=<locale name> locale charmap -LC_ALL=<locale name> locale int_curr_symbol -LC_ALL=<locale name> locale int_prefix</kbd></pre> - <p> - Приведенные выше команды должны вывести название языка, - кодировку символов, используемую в локали, местную валюту и - телефонный код страны. Если какая-либо из команд завершается с - сообщением об ошибке, похожим на указанное ниже, это означает, - что ваша локаль либо не была установлена в <a class="xref" - href="#ch-system-glibc" title= - "8.5. Glibc-2.38">Раздел 8.5, «Glibc-2.38»</a>, либо не - поддерживается стандартной установкой 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> - Как только будут определены правильные настройки локали, - создайте файл <code class="filename">/etc/profile</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/profile << "EOF" -<code class="literal"># Begin /etc/profile - -export LANG=<em class= -"replaceable"><code><ll>_<CC>.<charmap><@modifiers></code></em> - -# End /etc/profile</code> -EOF</kbd></pre> - <p> - Локаль <span class="quote">«<span class= - "quote">C</span>»</span> (используемая по умолчанию) и - <span class="quote">«<span class= - "quote">en_US.utf8</span>»</span> (рекомендуемая для - англоязычных пользователей в Соединенных Штатах) это разные - локали. <span class="quote">«<span class= - "quote">C</span>»</span> использует 7-битный набор символов - US-ASCII и обрабатывает байты с установленным старшим битом как - недопустимые символы. Вот почему, например, команда - <span class="command"><strong>ls</strong></span> заменяет их - вопросительными знаками в этой локали. Кроме того, попытка - отправить письмо с такими символами из Mutt или Pine приводит к - отправке сообщений не соответствующих RFC (кодировка в - исходящей почте указана как <span class="quote">«<span class= - "quote">unknown 8-bit</span>»</span>). Таким образом, вы можете - использовать локаль <span class="quote">«<span class= - "quote">C</span>»</span>, только в том случае, если уверены, - что вам никогда не понадобятся 8-битные символы. - </p> - <p> - Некоторые программы не поддерживают локали на основе UTF-8. - Ведется работа по документированию и, по возможности, - устранению таких проблем. Некоторые подробности смотрите по - ссылке: <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/introduction/locale-issues.html"> - https://mirror.linuxfromscratch.ru/blfs/view/12.0/introduction/locale-issues.html</a>. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-inputrc"></a>9.8. Создание файла - /etc/inputrc - </h2> - </div> - </div> - </div> - <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 > /etc/inputrc << "EOF" -<code class="literal"># Begin /etc/inputrc -# Modified by Chris Lynn <roryo@roryo.dynup.net> - -# Разрешить перенос приглашения оболочки на следующую строку -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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-config-shells"></a>9.9. Создание файла - /etc/shells - </h2> - </div> - </div> - </div> - <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 > /etc/shells << "EOF" -<code class="literal"># Begin /etc/shells - -/bin/sh -/bin/bash - -# End /etc/shells</code> -EOF</kbd></pre> - </div> - </div> - <div class="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-bootable"></a>Глава 10. Делаем систему LFS - загрузочной - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-bootable-introduction"></a>10.1. Введение - </h2> - </div> - </div> - </div> - <p> - Пришло время сделать систему LFS загрузочной. В этой главе - обсуждается создание файла <code class= - "filename">/etc/fstab</code>, сборка ядра для новой системы и - установка загрузчика GRUB, чтобы система LFS могла быть выбрана - для загрузки при запуске. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-bootable-fstab"></a>10.2. Создание файла - /etc/fstab - </h2> - </div> - </div> - </div> - <p> - Файл <code class="filename">/etc/fstab</code> используется - некоторыми программами для определения того, какие файловые - системы должны монтироваться по умолчанию, в каком порядке и - какие из них должны быть проверены (на наличие ошибок - целостности) перед монтированием. Создайте новую таблицу - файловых систем следующим образом: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/fstab << "EOF" -<code class="literal"># Begin /etc/fstab - -# file system mount-point type options dump fsck -# order - -/dev/<em class= -"replaceable"><code><xxx></code></em> / <em class= -"replaceable"><code><fff></code></em> defaults 1 1 -/dev/<em class= -"replaceable"><code><yyy></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><xxx></code></em>, - <em class="replaceable"><code><yyy></code></em>, и - <em class="replaceable"><code><fff></code></em> - подходящими для системы значениями, например, <code class= - "filename">sda2</code>, <code class="filename">sda5</code>, и - <code class="systemitem">ext4</code>. Для получения подробной - информации о параметрах в этом файле, смотрите <span class= - "command"><strong>man 5 fstab</strong></span>. - </p> - <p> - Файловым системам операционных систем MS DOS и Windows (таким - как vfat, ntfs, smbfs, cifs, iso9660, udf) требуется - специальная опция utf8, чтобы не-ASCII символы в именах файлов - интерпретировались правильно. Для локалей, отличных от UTF-8, - значение <code class="option">iocharset</code> должно быть - таким же, как набор символов локали и настроено так, чтобы ядро - понимало его. Это будет работать, если соответствующее - определение набора символов (находится в разделе File systems - -> 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.0/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-bootable-kernel"></a>10.3. Linux-6.4.12 - </h2> - </div> - </div> - </div> - <div class="package" lang="en"> - <p> - Этот пакет содержит ядро Linux. - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время - сборки:</strong> <span class="segbody">1.5 - 130.0 SBU - (обычно около 12 SBU)</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">1200 - 8800 - MB (обычно около 1700 MB)</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="en"> - <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. Перезагрузка системы">Раздел 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=<переменная_LANG_хоста> - LC_ALL=</code></em></span> - </dt> - <dd> - <p> - Устанавливает значение локали на то, которое - используется на хосте. Это может понадобиться для - правильного отображения интерфейса menuconfig с помощью - ncurses в текстовой консоли Linux с UTF-8. - </p> - <p> - Если это необходимо, обязательно замените значение - <em class= - "replaceable"><code><переменной_LANG></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 ---> - [ ] <span class= -"blue">C</span>ompile the kernel with warnings as errors [WERROR] - <span class="blue">C</span>PU/Task time and stats accounting ---> - [*] <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] - < > <span class= -"blue">E</span>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS] - [*] <span class= -"blue">C</span>ontrol Group support ---> [CGROUPS] - [*] M<span class= -"blue">e</span>mory controller [MEMCG] - [ ] <span class= -"blue">C</span>onfigure standard kernel features (expert users) ---> [EXPERT] - -<span class="blue">P</span>rocessor type and features ---> - [*] <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 ---> - [*] <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 ---> - <span class="blue">G</span>eneric Driver Options ---> - [ ] <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 ---> - <span class="blue">F</span>rame buffer Devices ---> - <*> <span class= -"blue">S</span>upport for frame buffer devices ---> [FB] - <span class="blue">C</span>onsole display driver support ---> - [*] <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 ---> - [*] <span class= -"blue">S</span>upport x2apic [X86_X2APIC] - -<span class="blue">D</span>evice Drivers ---> - [*] <span class= -"blue">P</span>CI support ---> [PCI] - [*] M<span class= -"blue">e</span>ssage Signaled Interrupts (MSI and MSI-X) [PCI_MSI] - [*] <span class= -"blue">I</span>OMMU Hardware Support ---> [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 ---> - H<span class="blue">i</span>gh Memory Support ---> - (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 ---> - N<span class="blue">V</span>ME Support ---> - <*> 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.0/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.0/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>Framebuffer Console - support</code></em></span> - </dt> - <dd> - <p> - Это параметр необходим для отображения консоли Linux на - устройстве с фреймбуфером. Чтобы ядро могло печатать - отладочные сообщения на ранней стадии загрузки, его не - следует собирать как модуль (если только не будет - использоваться initramfs). И, если <code class= - "option">CONFIG_DRM</code> (Direct Rendering Manager - - Диспетчер прямого рендеринга) включен, скорее всего, - также должен быть включен <code class= - "option">CONFIG_DRM_FBDEV_EMULATION</code> (включить - устаревшую поддержку fbdev для вашего modesetting - драйвера). - </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.4.12</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. Взаимодействие с устройствами и модулями">Раздел 9.3, - «Взаимодействие с устройствами и модулями»</a> и в - документации к ядру <code class= - "filename">linux-6.4.12/Documentation</code>. Кроме этого, - стоит ознакомиться с руководством <code class= - "filename">modprobe.d(5)</code>. - </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.4.12-lfs-12.0</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.4.12</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.4.12</kbd></pre> - <p> - Установите документацию ядра: - </p> - <pre class="userinput"><kbd class= - "command">cp -r Documentation -T /usr/share/doc/linux-6.4.12</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.4.12</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.4.12 API">Раздел 5.4, - «Заголовочные файлы Linux-6.4.12 API»</a>. Поэтому их - <span class="emphasis"><em>никогда</em></span> не следует - заменять на чистые заголовочные файлы ядра или любые другие - подготовленные заголовочные файлы. - </p> - </div> - </div> - <div class="configuration" lang="en"> - <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 > /etc/modprobe.d/usb.conf << "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="en"> - <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.4.12, - vmlinuz-6.4.12-lfs-12.0, и System.map-6.4.12</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class="segbody">/lib/modules, - /usr/share/doc/linux-6.4.12</span> - </div> - </div> - </div> - <div class="variablelist"> - <h4> - <a id="idm16891"></a>Краткое описание - </h4> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="config"></a><span class="term"><code class= - "filename">config-6.4.12</code></span> - </p> - </td> - <td> - <p> - Содержит в себе все параметры конфигурации ядра - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="lfskernel"></a><span class= - "term"><code class= - "filename">vmlinuz-6.4.12-lfs-12.0</code></span> - </p> - </td> - <td> - <p> - Ядро системы Linux. При включении компьютера ядро — - это первая загружаемая часть операционной системы. - Оно обнаруживает и инициализирует все компоненты - аппаратного обеспечения компьютера, делает их - доступными в виде дерева каталогов с файлами для - доступа к ним программ и превращает один процессор - в мультизадачную машину, способную выполнять - множество программ как будто одновременно. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="System.map"></a><span class= - "term"><code class= - "filename">System.map-6.4.12</code></span> - </p> - </td> - <td> - <p> - Список адресов и символов; файл содержит точки - входа и адреса всех функций и структур данных в - ядре - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-bootable-grub"></a>10.4. Использование GRUB для - настройки процесса загрузки - </h2> - </div> - </div> - </div> - <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.0/postlfs/grub-setup.html"> - странице BLFS</a>. - </p> - </div> - <div class="sect2" lang="en"> - <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.0/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="en"> - <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="en"> - <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. Установка базового системного программного обеспечения"> - Глава 8</a>. Если это так, добавьте <code class= - "option">--target i386-pc</code> к приведенной выше - команде. - </p> - </div> - </div> - <div class="sect2" lang="en"> - <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 > /boot/grub/grub.cfg << "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.4.12-lfs-12.0" { - linux /boot/vmlinuz-6.4.12-lfs-12.0 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><UUID файловой системы, в - которой установлено ядро></code></em></code>, и замените - <code class="literal">root=/dev/sda2</code> на <code class= - "literal">root=PARTUUID=<em class= - "replaceable"><code><UUID раздела, в котором собрана - LFS></code></em></code>. - </p> - <p> - Обратите внимание, что UUID раздела и UUID файловой системы - на этом разделе это совершенно разные вещи. Некоторые - онлайн-ресурсы могут предлагать вам использовать - <code class="literal">root=UUID=<em class= - "replaceable"><code><UUID файловой - системы></code></em></code> вместо <code class= - "literal">root=PARTUUID=<em class= - "replaceable"><code><UUID - раздела></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><UUID - раздела></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="chapter" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="chapter-finalizing"></a>Глава 11. Заключение - </h2> - </div> - </div> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-finish-theend"></a>11.1. Заключение - </h2> - </div> - </div> - </div> - <p> - Отлично! Новая система LFS установлена! Желаем успехов в работе - с вашей новой, блестящей, самостоятельно собранной Linux - системой. - </p> - <p> - Может быть хорошей идеей создать файл <code class= - "filename">/etc/lfs-release</code>. Имея этот файл, вам (и нам, - если вам в какой-то момент понадобится обратиться за помощью) - будет проще узнать, какая версия LFS установлена в системе. - Создайте этот файл, выполнив следующую команду: - </p> - <pre class="userinput"><kbd class= - "command">echo 12.0 > /etc/lfs-release</kbd></pre> - <p> - Следующие два файла, содержащие описание установленной системы, - могут использоваться пакетами, устанавливаемыми позже, либо в - бинарном виде, либо путем их сборки. - </p> - <p> - Первый показывает статус вашей новой системы по отношению к - стандарту LSB. Чтобы создать этот файл, выполните: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/lsb-release << "EOF" -DISTRIB_ID="Linux From Scratch" -DISTRIB_RELEASE="12.0" -DISTRIB_CODENAME="<your name here>" -DISTRIB_DESCRIPTION="Linux From Scratch" -EOF</kbd></pre> - <p> - Второй содержит примерно ту же информацию и используется - systemd и некоторыми графическими средами рабочего стола. Чтобы - создать этот файл, выполните: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/os-release << "EOF" -NAME="Linux From Scratch" -VERSION="12.0" -ID=lfs -PRETTY_NAME="Linux From Scratch 12.0" -VERSION_CODENAME="<your name here>" -EOF</kbd></pre> - <p> - Обязательно настройте значения 'DISTRIB_CODENAME' и - 'VERSION_CODENAME', чтобы сделать название вашей новой системы - уникальным. - </p> - </div> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-finish-getcounted"></a>11.2. Вступите в ряды - пользователей LFS - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-finish-reboot"></a>11.3. Перезагрузка системы - </h2> - </div> - </div> - </div> - <p> - Теперь, когда все программное обеспечение установлено, пришло - время перезагрузить ваш компьютер. Однако есть несколько вещей, - которые нужно проверить. Вот некоторые предложения: - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Установить <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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 && umount $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.0</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.0/">книге - 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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ch-finish-whatnow"></a>11.4. Дополнительные - ресурсы - </h2> - </div> - </div> - </div> - <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. Списки рассылки">Глава 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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="afterlfs"></a>11.5. Начало работы после сборки LFS - </h2> - </div> - </div> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 11.5.1. Что делать дальше? - </h3> - <p> - Теперь, когда LFS собрана и у вас есть загружаемая система, - необходимо решить, что же делать дальше? Следующий шаг - - определиться, как использовать систему. Как правило, следует - учитывать две широкие категории: рабочая станция или сервер. - Действительно, эти категории не являются взаимоисключающими. - Приложения, необходимые для каждой категории, можно - объединить в одну систему, но пока давайте рассмотрим их по - отдельности. - </p> - <p> - Сервер — более простая категория. Как правило, это - веб-сервер, такой как <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/apache.html"> - Apache</a>, и сервер баз данных, например, <a class="ulink" - href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/mariadb.html"> - MariaDB</a>. Однако возможны и другие варианты. К этой же - категории относятся операционные системы для встраиваемых - устройств. - </p> - <p> - Рабочая станция же, гораздо сложнее. Обычно для нее требуется - среда рабочего стола, например, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/lxde/lxde.html"> - LXDE</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/xfce/xfce.html"> - XFCE</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/kde/kde.html"> - KDE</a>, или <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/gnome/gnome.html"> - Gnome</a> основанные на базовом <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/x/installing.html"> - графическом окружении</a> и набор графических приложений, - таких как <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/xsoft/firefox.html"> - веб-браузер Firefox</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/xsoft/thunderbird.html"> - почтовый клиент Thunderbird</a>, или <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/xsoft/libreoffice.html"> - пакет офисных приложений LibreOffice</a>. Для этих приложений - требуется множество (может быть несколько сотен, в - зависимости от ваших потребностей) пакетов вспомогательных - приложений и библиотек. - </p> - <p> - В дополнение к вышесказанному, существует набор приложений - для управления системой. Все эти приложения есть в - справочнике BLFS, но не все пакеты необходимы в каждом - конкретном окружении. Например <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/dhcpcd.html"> - клиент dhcpcd</a>, обычно не требуется на серверах или - <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/wireless_tools.html"> - управление параметрами беспроводных сетей</a> - полезно - только для ноутбуков и других портативных систем. - </p> - </div> - <div class="sect2" lang="en"> - <h3 class="sect2"> - 11.5.2. Работа в базовой среде LFS - </h3> - <p> - Когда вы впервые загружаетесь в LFS, у вас есть все - необходимые инструменты для сборки дополнительных пакетов. К - сожалению, набор программ пользовательского окружения - довольно скудный. Есть несколько способов исправить это: - </p> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm17155"></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 > ~/mount-virt.sh << "EOF" -#!/bin/bash - -function mountbind -{ - if ! mountpoint $LFS/$1 >/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 >/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 - mkdir -pv $LFS/$(readlink $LFS/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="idm17171"></a>11.5.2.2. Работа удаленно по ssh - </h4> - </div> - </div> - </div> - <p> - Этот метод также предоставляет полноценную графическую - среду, но сначала требует установки <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/openssh.html"> - sshd</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/wget.html"> - wget</a> в системе LFS, обычно в chroot. Кроме этого - потребуется второй компьютер. Преимущество этого метода в - том, что он прост, поскольку не требует сложной среды - chroot. Он также использует собранное вами ядро LFS для - всех дополнительных пакетов и по-прежнему предоставляет - полную систему для установки пакетов. - </p> - </div> - <div class="sect3"> - <div class="titlepage"> - <div> - <div> - <h4 class="title"> - <a id="idm17176"></a>11.5.2.3. Работа из командной - строки LFS - </h4> - </div> - </div> - </div> - <p> - Этот метот требует установки <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/libtasn1.html"> - libtasn1</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/p11-kit.html"> - p11-kit</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/make-ca.html"> - make-ca</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/wget.html"> - wget</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/gpm.html"> - gpm</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/links.html"> - links</a> (или <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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="part"> - <div class="titlepage"> - <div> - <div> - <h1 class="title"> - <a id="part5"></a>Часть V. Приложения - </h1> - </div> - </div> - </div> - <div class="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="appendixa"></a>Приложение A. Сокращения и условные - обозначения - </h2> - </div> - </div> - </div> - <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="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="appendixb"></a>Приложение B. Благодарности - </h2> - </div> - </div> - </div> - <p> - Мы хотели бы поблагодарить следующих людей и организации за их - вклад в проект Linux From Scratch. - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:gerard@linuxfromscratch.org">Gerard Beekmans</a> - <gerard AT linuxfromscratch D0T org> – Основатель проекта - LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:bdubbs@linuxfromscratch.org">Bruce Dubbs</a> - <bdubbs AT linuxfromscratch D0T org> – Главный редактор LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:jim@linuxfromscratch.org">Jim - Gifford</a> <jim AT linuxfromscratch D0T org> – Второй - руководитель проекта CLFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:pierre@linuxfromscratch.org">Pierre Labastie</a> - <pierre AT linuxfromscratch D0T org> – Редактор BLFS и - руководитель ALFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:dj@linuxfromscratch.org">DJ - Lucas</a> <dj AT linuxfromscratch D0T org> – Редактор - проектов LFS и BLFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:ken@linuxfromscratch.org">Ken - Moffat</a> <ken AT linuxfromscratch D0T org> – Редактор BLFS - </p> - </li> - <li class="listitem"> - <p> - Бесчисленное множество других людей из различных списков - рассылки проектов LFS и BLFS, которые помогали в создании - этой книги, присылая свои предложения, проверяя книгу и - отправляя отчеты об ошибках, инструкции и собственный опыт - установки различных пакетов. - </p> - </li> - </ul> - </div> - <h3> - <a id="idm17611"></a>Переводчики - </h3> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:macana@macana-es.com">Manuel - Canales Esparcia</a> <macana AT macana-es D0T com> – Перевод - проекта LFS на испанский язык - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:johan@linuxfromscratch.org">Johan Lenglet</a> - <johan AT linuxfromscratch D0T org> – Перевод проекта LFS на - французский язык до 2008 г. - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:jmengual@linuxfromscratch.org">Jean-Philippe - Mengual</a> <jmengual AT linuxfromscratch D0T org> – Перевод - проекта LFS на французский язык 2008-2016 гг - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:jlepiller@linuxfromscratch.org">Julien Lepiller</a> - <jlepiller AT linuxfromscratch D0T org> – Перевод проекта - LFS на французский язык с 2017-по настоящее время - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:lizardo@linuxfromscratch.org">Anderson Lizardo</a> - <lizardo AT linuxfromscratch D0T org> – Перевод проекта LFS - на португальский язык до 2022 г. - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:jafesp@gmail.com">Jamenson - Espindula</a> <jafesp AT gmail D0T com> – Перевод проекта - LFS на португальский язык 2022-по настоящее время - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:tr@erdfunkstelle.de">Thomas - Reitelbach</a> <tr AT erdfunkstelle D0T de> – Перевод - проекта LFS на немецкий язык - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:info@linuxfromscratch.org.ru">Anton Maisak</a> - <info AT linuxfromscratch D0T ru> – Перевод проекта LFS на - русский язык 2018-2020 гг - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:helen@linuxfromscratch.org.ru">Elena Shevcova</a> - <info AT linuxfromscratch D0T ru> – Перевод проекта LFS на - русский язык 2018-2020 гг - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:info@linuxfromscratch.ru">Vladimir Pertsev</a> - <info AT linuxfromscratch D0T ru> – Перевод проекта LFS на - русский язык 2022-по настоящее время - </p> - </li> - </ul> - </div> - <h3> - <a id="idm17643"></a>Зеркала проекта - </h3> - <h4> - <a id="idm17644"></a>Североамериканские зеркала - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:scott@osuosl.org">Scott - Kveton</a> <scott AT osuosl D0T org> – зеркало - lfs.oregonstate.edu - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:lost@l-w.net">William - Astle</a> <lost AT l-w D0T net> – зеркало - ca.linuxfromscratch.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:eujon.sellers@gmail.com">Eujon Sellers</a> - <jpolen@rackspace.com> – зеркало lfs.introspeed.com - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:justin@knierim.org">Justin - Knierim</a> <tim@idge.net> – зеркало lfs-matrix.net - </p> - </li> - </ul> - </div> - <h4> - <a id="idm17658"></a>Южноамериканские зеркала - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:manuel@linuxfromscratch.org">Manuel Canales - Esparcia</a> <manuel AT linuxfromscratch D0T org> – зеркало - lfsmirror.lfs-es.info - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:lfalcon@thymbra.com">Luis - Falcon</a> <Luis Falcon> – зеркало torredehanoi.org - </p> - </li> - </ul> - </div> - <h4> - <a id="idm17666"></a>Европейские зеркала - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:guido@primerelay.net">Guido - Passet</a> <guido AT primerelay D0T net> – зеркало - nl.linuxfromscratch.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:baafie@planet.nl">Bastiaan - Jacques</a> <baafie AT planet D0T nl> – зеркало - lfs.pagefault.net - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:sven.cranshoff@lineo.be">Sven - Cranshoff</a> <sven D0T cranshoff AT lineo D0T be> – зеркало - 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:info@aliensoft.org">Sebastian - Faulborn</a> <info AT aliensoft D0T org> – зеркало - lfs.aliensoft.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:stuart@dontuse.ms">Stuart - Fox</a> <stuart AT dontuse D0T ms> – зеркало lfs.dontuse.ms - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:admin@realhost.de">Ralf - Uhlemann</a> <admin AT realhost D0T de> – зеркало - lfs.oss-mirror.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:Antonin.Sprinzl@tuwien.ac.at">Antonin Sprinzl</a> - <Antonin D0T Sprinzl AT tuwien D0T ac D0T at> – зеркало - at.linuxfromscratch.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:fredan-lfs@fredan.org">Fredrik Danerklint</a> - <fredan-lfs AT fredan D0T org> – зеркало - se.linuxfromscratch.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:franck@linuxpourtous.com">Franck</a> - <franck AT linuxpourtous D0T com> – зеркало - lfs.linuxpourtous.com - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:baque@cict.fr">Philippe - Baque</a> <baque AT cict D0T fr> – зеркало lfs.cict.fr - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:kontakt@wankoo.org">Benjamin - Heil</a> <kontakt AT wankoo D0T org> – зеркало - lfs.wankoo.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:info@linuxfromscratch.ru">Vladimir Pertsev</a> - <info AT linuxfromscratch D0T ru> – зеркало - mirror.linuxfromscratch.ru - </p> - </li> - </ul> - </div> - <h4> - <a id="idm17706"></a>Азиатские зеркала - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:satit@wbac.ac.th">Satit - Phermsawang</a> <satit AT wbac D0T ac D0T th> – зеркало - lfs.phayoune.org - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:info@shizu-net.jp">Shizunet - Co.,Ltd.</a> <info AT shizu-net D0T jp> – зеркало - lfs.mirror.shizu-net.jp - </p> - </li> - </ul> - </div> - <h4> - <a id="idm17714"></a>Австралийские зеркала - </h4> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:jason@dstc.edu.au">Jason - Andrade</a> <jason AT dstc D0T edu D0T au> – зеркало - au.linuxfromscratch.org - </p> - </li> - </ul> - </div> - <h3> - <a id="idm17719"></a>Бывшие участники проекта - </h3> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:theladyskye@linuxfromscratch.org">Christine - Barczak</a> <theladyskye AT linuxfromscratch D0T org> – - Редактор книги LFS - </p> - </li> - <li class="listitem"> - <p> - Archaic <archaic@linuxfromscratch.org> – Технический - писатель/редактор LFS, руководитель проекта HLFS, редактор - BLFS, Сопровождающий проекта Советы и патчи - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:matthew@linuxfromscratch.org">Matthew Burgess</a> - <matthew AT linuxfromscratch D0T org> – Руководитель проекта - LFS, технический писатель/редактор LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:nathan@linuxfromscratch.org">Nathan Coulson</a> - <nathan AT linuxfromscratch D0T org> – Сопровождающий - 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:jeroen@linuxfromscratch.org">Jeroen Coumans</a> - <jeroen AT linuxfromscratch D0T org> – Разработчик - веб-сайта, сопровождающий FAQ - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:manuel@linuxfromscratch.org">Manuel Canales - Esparcia</a> <manuel AT linuxfromscratch D0T org> – - Сопровождающий 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:jhuntwork@linuxfromscratch.org">Jeremy Huntwork</a> - <jhuntwork AT linuxfromscratch D0T org> – Технический - писатель LFS, сопровождающий LFS LiveCD - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:bryan@linuxfromscratch.org">Bryan Kadzban</a> - <bryan AT linuxfromscratch D0T org> – Технический писатель - 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:nicholas@linuxfromscratch.org">Nicholas Leippe</a> - <nicholas AT linuxfromscratch D0T org> – Сопровождающий Wiki - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:lizardo@linuxfromscratch.org">Anderson Lizardo</a> - <lizardo AT linuxfromscratch D0T org> – Сопровождающий - движка сайта - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:randy@linuxfromscratch.org">Randy McMurchy</a> - <randy AT linuxfromscratch D0T org> – Руководитель проекта - BLFS, редактор LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:dnicholson@linuxfromscratch.org">Dan Nicholson</a> - <dnicholson AT linuxfromscratch D0T org> – Редактор LFS и - BLFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:alexander@linuxfromscratch.org">Alexander E. - Patrakov</a> <alexander AT linuxfromscratch D0T org> – - Технический писатель LFS, редактор интернационализации LFS, - сопровождающий LFS Live CD - </p> - </li> - <li class="listitem"> - <p> - Simon Perreault - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:scot@linuxfromscratch.org">Scot Mc Pherson</a> - <scot AT linuxfromscratch D0T org> – Сопровождающий шлюза - NNTP для проекта LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:renodr@linuxfromscratch.org">Douglas R. Reno</a> - <renodr AT linuxfromscratch D0T org> – Редактор Systemd - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:ryan@linuxfromscratch.org">Ryan Oliver</a> - <ryan AT linuxfromscratch D0T org> – Один из руководителей - проекта CLFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:gschafer@zip.com.au">Greg - Schafer</a> <gschafer AT zip D0T com D0T au> – Технический - писатель проекта LFS и архитектор методов сборки пакетов - следующего поколения, предназначенных для 64-битной - архитектуры - </p> - </li> - <li class="listitem"> - <p> - Jesse Tie-Ten-Quee – Технический писатель LFS - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:jwrober@linuxfromscratch.org">James Robertson</a> - <jwrober AT linuxfromscratch D0T org> – Сопровождающий - Bugzilla - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:tushar@linuxfromscratch.org">Tushar Teredesai</a> - <tushar AT linuxfromscratch D0T org> – Редактор книги BLFS, - руководитель проекта Советы и Патчи - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href= - "mailto:jeremy@linuxfromscratch.org">Jeremy Utley</a> - <jeremy AT linuxfromscratch D0T org> – Технический писатель - проекта LFS, сопровождающий Bugzilla, сопровождающий - LFS-Bootscripts - </p> - </li> - <li class="listitem"> - <p> - <a class="ulink" href="mailto:zwinkles@gmail.com">Zack - Winkles</a> <zwinkles AT gmail D0T com> – Технический - писатель проекта LFS - </p> - </li> - </ul> - </div> - </div> - <div class="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="appendixc"></a>Приложение C. Зависимости - </h2> - </div> - </div> - </div> - <p> - Каждый пакет в системе LFS для правильной сборки и установки - может ссылаться на один или несколько других пакетов. Некоторые - пакеты могут иметь циклические зависимости, то есть первый пакет - зависит от второго, который в свою очередь, зависит от первого. - Именно по этой причине, указанный порядок сборки пакетов в LFS - очень важен. Цель этой страницы - документировать зависимости - каждого пакета, собранного в LFS - </p> - <p> - Для каждого собираемого пакета существует три, а иногда и до пяти - типов зависимостей, перечисленных ниже. В первом списке - перечислены другие пакеты, которые должны быть доступны для - компиляции и установки рассматриваемого пакета. Во втором - перечислены пакеты, которые должны быть доступны, когда - какие-либо программы или библиотеки из пакета используются во - время выполнения. В третьем списке перечислены пакеты, которые в - дополнение к пакетам из первого списка должны быть доступны для - запуска наборов тестов. Четвертый список зависимостей — это - пакеты, которые требуют, чтобы некий пакет был собран и - установлен по определенному пути, прежде чем они будут собраны и - установлены. В большинстве случаев это связано с тем, что такие - пакеты жестко кодируют пути к двоичным файлам в своих сценариях. - Если сборка выполняется не в том порядке, это может привести к - тому, что пути /tools/bin/[binary] будут размещены внутри - скриптов, установленных в готовой системе, что крайне - нежелательно. - </p> - <p> - Последний список зависимостей - это необязательные пакеты, - которые не рассматриваются в LFS, но могут быть полезны - пользователю. Эти пакеты могут иметь дополнительные как - обязательные, так и необязательные зависимости. Такие зависимости - - рекомендуется разрешать после завершения сборки всей системы - LFS. В некоторых случаях, повторная установка некоторых таких - пакетов рассматривается в BLFS. - </p> - <h3> - <a id="acl-dep"></a>Acl - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="attr-dep"></a>Attr - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Должен быть установлен до:</strong> - <span class="segbody">Acl и Libcap</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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"></a>Autoconf - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/postlfs/emacs.html"> - Emacs</a></span> - </div> - </div> - </div> - <h3> - <a id="automake-dep"></a>Automake - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="bash-dep"></a>Bash - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/x/installing.html"> - Xorg</a></span> - </div> - </div> - </div> - <h3> - <a id="bc-dep"></a>Bc - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="binutils-dep"></a>Binutils - </h3> - <div class="segmentedlist"> - <a id="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, Sed, Texinfo - и Zlib</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="binutils-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="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"></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"></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.0/general/jansson.html"> - Jansson</a></span> - </div> - </div> - </div> - <h3> - <a id="bison-dep"></a>Bison - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/doxygen.html"> - Doxygen</a></span> - </div> - </div> - </div> - <h3> - <a id="bzip2-dep"></a>Bzip2 - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="check-dep"></a>Check - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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></span> - </div> - </div> - </div> - <h3> - <a id="coreutils-dep"></a>Coreutils - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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"></a>DejaGNU - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="diffutils-dep"></a>Diffutils - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="e2fsprogs-dep"></a>E2fsprogs - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="expat-dep"></a>Expat - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="expect-dep"></a>Expect - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/tk.html"> - Tk</a></span> - </div> - </div> - </div> - <h3> - <a id="file-dep"></a>File - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/libseccomp.html"> - libseccomp</a></span> - </div> - </div> - </div> - <h3> - <a id="findutils-dep"></a>Findutils - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="flex-dep"></a>Flex - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="flit-core-dep"></a>Flit-Core - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/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"></a>Gawk - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/libsigsegv.html"> - libsigsegv</a></span> - </div> - </div> - </div> - <h3> - <a id="gcc-dep"></a>GCC - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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"></a>GDBM - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="gettext-dep"></a>Gettext - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="glibc-dep"></a>Glibc - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="gmp-dep"></a>GMP - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="gperf-dep"></a>Gperf - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="grep-dep"></a>Grep - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/pcre2.html"> - PCRE2</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/libsigsegv.html"> - libsigsegv</a></span> - </div> - </div> - </div> - <h3> - <a id="groff-dep"></a>Groff - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Должен быть установлен до:</strong> - <span class="segbody">Man-DB и Perl</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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.0/pst/gs.html"> - ghostscript</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/uchardet.html"> - Uchardet</a></span> - </div> - </div> - </div> - <h3> - <a id="grub-dep"></a>GRUB - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="gzip-dep"></a>Gzip - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="iana-etc-dep"></a>Iana-Etc - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="inetutils-dep"></a>Inetutils - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="intltool-dep"></a>Intltool - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="iproute2-dep"></a>IProute2 - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/server/db.html"> - Berkeley DB</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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.0/basicnet/libmnl.html"> - libmnl</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/libtirpc.html"> - libtirpc</a></span> - </div> - </div> - </div> - <h3> - <a id="kbd-dep"></a>Kbd - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="kmod-dep"></a>Kmod - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="less-dep"></a>Less - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/pcre2.html"> - PCRE2</a> или <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/pcre.html"> - PCRE</a></span> - </div> - </div> - </div> - <h3> - <a id="libcap-dep"></a>Libcap - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/postlfs/linux-pam.html"> - Linux-PAM</a></span> - </div> - </div> - </div> - <h3> - <a id="libelf-dep"></a>Libelf - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="libffi-dep"></a>Libffi - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="libpipeline-dep"></a>Libpipeline - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="libtool-dep"></a>Libtool - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="libxcrypt-dep"></a>Libxcrypt - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="linux-dep"></a>Linux - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/cpio.html"> - cpio</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/llvm.html"> - LLVM</a> (с Clang)</span> - </div> - </div> - </div> - <h3> - <a id="linux-api-headers-dep"></a>Linux API Headers - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="m4-dep"></a>M4 - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/libsigsegv.html"> - libsigsegv</a></span> - </div> - </div> - </div> - <h3> - <a id="make-dep"></a>Make - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/guile.html"> - Guile</a></span> - </div> - </div> - </div> - <h3> - <a id="man-db-dep"></a>Man-DB - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/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"></a>Man-Pages - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="meson-dep"></a>Meson - </h3> - <div class="segmentedlist"> - <a id="meson-depends"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установка зависит от:</strong> - <span class="segbody">Ninja и Python</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="mpc-dep"></a>MPC - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="mpfr-dep"></a>MPFR - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="ncurses-dep"></a>Ncurses - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="ninja-dep"></a>Ninja - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/asciidoc.html"> - Asciidoc</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/doxygen.html"> - Doxygen</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/emacs.html"> - Emacs</a> и <a class="ulink" href= - "https://re2c.org/">re2c</a></span> - </div> - </div> - </div> - <h3> - <a id="openssl-dep"></a>OpenSSL - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="patch-dep"></a>Patch - </h3> - <div class="segmentedlist"> - <a id="patch-depends"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установка зависит от:</strong> - <span class="segbody">Bash, Binutils, Coreutils, GCC, Glibc, - Grep, Make и Sed</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="patch-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="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"></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"></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.0/postlfs/ed.html"> - Ed</a></span> - </div> - </div> - </div> - <h3> - <a id="perl-dep"></a>Perl - </h3> - <div class="segmentedlist"> - <a id="perl-depends"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установка зависит от:</strong> - <span class="segbody">Bash, Binutils, Coreutils, Gawk, GCC, - GDBM, Glibc, Grep, Groff, Libxcrypt, Make, Sed и Zlib</span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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"></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"></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"></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.0/server/db.html"> - Berkeley DB</a></span> - </div> - </div> - </div> - <h3> - <a id="pkgconf-dep"></a>Pkgconf - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Должен быть установлен до:</strong> - <span class="segbody">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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="procps-dep"></a>Procps-ng - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/general/elogind.html"> - elogind</a></span></span> - </div> - </div> - </div> - <h3> - <a id="psmisc-dep"></a>Psmisc - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="python-dep"></a>Python - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/server/db.html"> - Berkeley DB</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/basicnet/libnsl.html"> - libnsl</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/sqlite.html"> - SQLite</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/tk.html"> - Tk</a></span> - </div> - </div> - </div> - <h3> - <a id="readline-dep"></a>Readline - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="sed-dep"></a>Sed - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="shadow-dep"></a>Shadow - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/postlfs/cracklib.html"> - CrackLib</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/linux-pam.html"> - Linux-PAM</a></span> - </div> - </div> - </div> - <h3> - <a id="sysklogd-dep"></a>Sysklogd - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="sysvinit-dep"></a>Sysvinit - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="tar-dep"></a>Tar - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="tcl-dep"></a>Tcl - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="texinfo-dep"></a>Texinfo - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="udev-dep"></a>Udev - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="util-linux-dep"></a>Util-linux - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody"><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.0/postlfs/linux-pam.html"> - Linux-PAM</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/smartmontools.html"> - smartmontools</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/slang.html"> - slang</a></span> - </div> - </div> - </div> - <h3> - <a id="vim-dep"></a>Vim - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></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.0/x/installing.html"> - Xorg</a>, <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/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.0/general/ruby.html"> - Ruby</a> и <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/general/gpm.html"> - GPM</a></span> - </div> - </div> - </div> - <h3> - <a id="wheel-dep"></a>wheel - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Должен быть установлен до:</strong> - <span class="segbody"><span class="phrase">Нет</span></span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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"></a>XML::Parser - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="xz-dep"></a>Xz - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="zlib-dep"></a>Zlib - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Необязательные зависимости:</strong> - <span class="segbody">Нет</span> - </div> - </div> - </div> - <h3> - <a id="zstd-dep"></a>Zstd - </h3> - <div class="segmentedlist"> - <a id="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"></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"></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"></a> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Должен быть установлен до:</strong> - <span class="segbody">GCC, Libelf и <span class= - "phrase">Udev</span></span> - </div> - </div> - </div> - <div class="segmentedlist"> - <a id="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="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="scripts"></a>Приложение D. Скрипты загрузки и - настройки системы-20230728 - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="rc"></a>D.1. /etc/rc.d/init.d/rc - </h2> - </div> - </div> - </div> - <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 ] && 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}" != "" ] && runlevel=${1} - -if [ "${runlevel}" == "" ]; then - echo "Usage: ${0} <runlevel>" >&2 - exit 1 -fi - -previous=${PREVLEVEL} -[ "${previous}" == "" ] && 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 ] && 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>&1 > /dev/null -fi - -# Make lower case -[ "${interactive}" == "I" ] && interactive="i" -[ "${interactive}" != "i" ] && interactive="" - -# Read the state file if it exists from runlevel S -[ -r /run/interactive ] && 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> /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 ] && 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> /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 ] && 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\"" > /run/interactive -else - rm -f /run/interactive 2> /dev/null -fi - -# Copy the boot log on initial boot only -if [ "${previous}" == "N" -a "${runlevel}" != "S" ]; then - cat $BOOTLOG >> /var/log/boot.log - - # Mark the end of boot - echo "--------" >> /var/log/boot.log - - # Remove the temporary file - rm -f $BOOTLOG 2> /dev/null -fi - -# End rc -</pre> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="init-functions"></a>D.2. /lib/lsb/init-functions - </h2> - </div> - </div> - </div> - <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 ] && . /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> /dev/null - - if [ "${?}" -ne "0" ]; then - # Process is dead, continue to next and assume all is well - continue - else - kill "${signal}" "${pid}" 2> /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> /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> /dev/null - sleep 1 - # Check again, and fail if still running - kill -0 "${pid}" 2> /dev/null && 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> /dev/null - fi - else - if [ -e "${pidfile}" ]; then rm -f "${pidfile}" 2> /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> /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" >> ${BOOTLOG} - - return 0 -} - -log_success_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - - echo " OK" >> ${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" >> ${BOOTLOG} - - return 0 -} - -log_failure_msg2() -{ - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" - - echo "FAIL" >> ${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" >> ${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" >> ${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}" >> ${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}" >> ${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} " > /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} " > /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" ] && 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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="mountvirtfs"></a>D.3. /etc/rc.d/init.d/mountvirtfs - </h2> - </div> - </div> - </div> - <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 >/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 >/dev/null; then - log_info_msg2 " ${INFO}/proc" - mount -o nosuid,noexec,nodev /proc || failed=1 - fi - - if ! mountpoint /sys >/dev/null; then - log_info_msg2 " ${INFO}/sys" - mount -o nosuid,noexec,nodev /sys || failed=1 - fi - - if ! mountpoint /dev >/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="modules"></a>D.4. /etc/rc.d/init.d/modules - </h2> - </div> - </div> - </div> - <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} >/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 < /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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="udev"></a>D.5. /etc/rc.d/init.d/udev - </h2> - </div> - </div> - </div> - <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 stop - 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 >/dev/null; fi - - log_success_msg2 - ;; - - *) - echo "Usage ${0} {start}" - exit 1 - ;; -esac - -exit 0 - -# End udev -</pre> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="swap"></a>D.6. /etc/rc.d/init.d/swap - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="setclock"></a>D.7. /etc/rc.d/init.d/setclock - </h2> - </div> - </div> - </div> - <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 ] && . /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} >/dev/null - ;; - - stop) - log_info_msg "Setting hardware clock..." - hwclock --systohc ${CLOCKPARAMS} >/dev/null - evaluate_retval - ;; - - *) - echo "Usage: ${0} {start|stop}" - exit 1 - ;; - -esac - -exit 0 -</pre> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="checkfs"></a>D.8. /etc/rc.d/init.d/checkfs - </h2> - </div> - </div> - </div> - <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 / >/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 stop - 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 >/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 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 stop - 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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="mountfs"></a>D.9. /etc/rc.d/init.d/mountfs - </h2> - </div> - </div> - </div> - <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 / >/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 >/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 >/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 > /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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="udev_retry"></a>D.10. /etc/rc.d/init.d/udev_retry - </h2> - </div> - </div> - </div> - <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" = '*' ] && break - cat $file >> /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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="cleanfs"></a>D.11. /etc/rc.d/init.d/cleanfs - </h2> - </div> - </div> - </div> - <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>&0 < /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) - :> "${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>&9 9>&- - return 0 -} - -case "${1}" in - start) - log_info_msg "Cleaning file systems:" - - if [ "${SKIPTMPCLEAN}" = "" ]; then - log_info_msg2 " /tmp" - cd /tmp && - find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1 - fi - - > /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>/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="console"></a>D.12. /etc/rc.d/init.d/console - </h2> - </div> - </div> - </div> - <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 ] && . /etc/sysconfig/console - -failed=0 - -case "${1}" in - start) - # See if we need to do anything - if [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && - [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] && - ! 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 ] && use_fb=1 || use_fb=0 - - # Figure out the command to set the console into the - # desired mode - is_true "${UNICODE}" && - MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || - MODE_COMMAND="echo -en '\033%@\033(K' && 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} && 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} >/dev/null 2>&1 || - failed=1 - - [ -z "${KEYMAP_CORRECTIONS}" ] || - loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || - failed=1 - - # Convert the keymap from $LEGACY_CHARSET to UTF-8 - [ -z "$LEGACY_CHARSET" ] || - dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="localnet"></a>D.13. /etc/rc.d/init.d/localnet - </h2> - </div> - </div> - </div> - <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 ] && . /etc/sysconfig/network -[ -r /etc/hostname ] && 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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="sysctlscript"></a>D.14. /etc/rc.d/init.d/sysctl - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="sysklogd"></a>D.15. /etc/rc.d/init.d/sysklogd - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="network"></a>D.16. /etc/rc.d/init.d/network - </h2> - </div> - </div> - </div> - <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>/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="sendsignals"></a>D.17. - /etc/rc.d/init.d/sendsignals - </h2> - </div> - </div> - </div> - <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" ] && 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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="rebootscript"></a>D.18. /etc/rc.d/init.d/reboot - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="haltscript"></a>D.19. /etc/rc.d/init.d/halt - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="template"></a>D.20. /etc/rc.d/init.d/template - </h2> - </div> - </div> - </div> - <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 >/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 >/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="modulessys"></a>D.21. /etc/sysconfig/modules - </h2> - </div> - </div> - </div> - <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: -# <module> [<arg1> <arg2> ...] -# -# 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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="createfiles"></a>D.22. /etc/sysconfig/createfiles - </h2> - </div> - </div> - </div> - <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" -# <filename> <type> <permissions> <user> <group> -# if type is equal to "dev" -# <filename> <type> <permissions> <user> <group> <devtype> -# <major> <minor> -# -# <filename> is the name of the file which is to be created -# <type> is either file, dir, or dev. -# file creates a new file -# dir creates a new directory -# dev creates a new device -# <devtype> is either block, char or pipe -# block creates a block device -# char creates a character device -# pipe creates a pipe, this will ignore the <major> and -# <minor> fields -# <major> and <minor> are the major and minor numbers used for -# the device. -######################################################################## - -# End /etc/sysconfig/createfiles -</pre> - </div> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="config-udev-retry"></a>D.23. - /etc/sysconfig/udev-retry - </h2> - </div> - </div> - </div> - <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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ifup"></a>D.24. /sbin/ifup - </h2> - </div> - </div> - </div> - <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 > /dev/null 2>&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" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << 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]+$ ]] && [[ $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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ifdown"></a>D.25. /sbin/ifdown - </h2> - </div> - </div> - </div> - <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" >&2 - echo "${USAGE}" >& 2 - exit 2 ;; - - *) break ;; - esac -done - -if [ -n "$help" ]; then - echo "${VERSTR}" - echo "${USAGE}" - echo - cat << 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} > /dev/null 2>&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>/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ipv4static"></a>D.26. /lib/services/ipv4-static - </h2> - </div> - </div> - </div> - <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>/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>/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>/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="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="ipv4route"></a>D.27. - /lib/services/ipv4-static-route - </h2> - </div> - </div> - </div> - <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="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="rules"></a>Приложение E. Правила настройки Udev - </h2> - </div> - </div> - </div> - <p> - Правила в этом приложении перечислены для удобства. Установка - обычно выполняются с помощью инструкций приведенных в <a class= - "xref" href="#ch-system-udev" title= - "8.74. Udev из Systemd-254">Раздел 8.74, «Udev из - Systemd-254»</a>. - </p> - <div class="wrap" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="lfsrules"></a>E.1. 55-lfs.rules - </h2> - </div> - </div> - </div> - <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="appendix"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="Licenses"></a>Приложение F. Лицензии LFS - </h2> - </div> - </div> - </div> - <p> - Настоящая книга распространяется на условиях лицензии Creative - Commons Attribution-NonCommercial-ShareAlike 2.0 License. - </p> - <p> - Инструкции, предназначенные для использования на компьютере, - могут использоваться отдельно от книги на условиях лицензии MIT. - </p> - <div class="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="CC"></a>F.1. Лицензия Creative Commons - </h2> - </div> - </div> - </div> - <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="sect1" lang="en"> - <div class="titlepage"> - <div> - <div> - <h2 class="title"> - <a id="MIT"></a>F.2. Лицензия MIT - </h2> - </div> - </div> - </div> - <p> - Copyright © 1999-2023 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="idm19716"></a>Предметный указатель - </h1> - </div> - </div> - </div> - <div xmlns:xlink="http://www.w3.org/1999/xlink" 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.1</a></span> - </li> - <li> - <strong class="item">Attr:</strong> <span class= - "indexref"><a href="#ch-system-attr">Attr-2.5.1</a></span> - </li> - <li> - <strong class="item">Autoconf:</strong> <span class= - "indexref"><a href= - "#ch-system-autoconf">Autoconf-2.71</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.15</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-bash">Bash-5.2.15</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Bc:</strong> <span class= - "indexref"><a href="#ch-system-bc">Bc-6.6.0</a></span> - </li> - <li> - <strong class="item">Binutils:</strong> <span class= - "indexref"><a href= - "#ch-system-binutils">Binutils-2.41</a></span> - <ul> - <li> - <strong class="secitem">tools, pass 1:</strong> - <span class="indexref"><a href= - "#ch-tools-binutils-pass1">Binutils-2.41 - Проход - 1</a></span> - </li> - <li> - <strong class="secitem">tools, pass 2:</strong> - <span class="indexref"><a href= - "#ch-tools-binutils-pass2">Binutils-2.41 - Проход - 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.3</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href= - "#ch-tools-coreutils">Coreutils-9.3</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.5.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.2.2</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-gawk">Gawk-5.2.2</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</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href= - "#ch-tools-gettext">Gettext-0.22</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Glibc:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-glibc">Glibc-2.38</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.06</a></span> - </li> - <li> - <strong class="item">Gzip:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-gzip">Gzip-1.12</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Iana-Etc:</strong> <span class= - "indexref"><a href= - "#ch-system-iana-etc">Iana-Etc-20230810</a></span> - </li> - <li> - <strong class="item">Inetutils:</strong> <span class= - "indexref"><a href= - "#ch-system-inetutils">Inetutils-2.4</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.4.0</a></span> - </li> - <li> - <strong class="item">Jinja2:</strong> <span class= - "indexref"><a href="#ch-system-jinja2">Jinja2-3.1.2</a></span> - </li> - <li> - <strong class="item">Kbd:</strong> <span class= - "indexref"><a href="#ch-system-kbd">Kbd-2.6.1</a></span> - </li> - <li> - <strong class="item">Kmod:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</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.189</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.4.12</a></span> - <ul> - <li> - <strong class="secitem">tools, API headers:</strong> - <span class="indexref"><a href= - "#ch-tools-linux-headers">Заголовочные файлы Linux-6.4.12 - 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.11.2</a></span> - </li> - <li> - <strong class="item">Man-pages:</strong> <span class= - "indexref"><a href= - "#ch-system-man-pages">Man-pages-6.05.01</a></span> - </li> - <li> - <strong class="item">MarkupSafe:</strong> <span class= - "indexref"><a href= - "#ch-system-markupsafe">MarkupSafe-2.1.3</a></span> - </li> - <li> - <strong class="item">Meson:</strong> <span class= - "indexref"><a href="#ch-system-meson">Meson-1.2.1</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.0</a></span> - </li> - <li> - <strong class="item">Ncurses:</strong> <span class= - "indexref"><a href="#ch-system-ncurses">Ncurses-6.4</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href= - "#ch-tools-ncurses">Ncurses-6.4</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.1.2</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.0</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-perl">Perl-5.38.0</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Pkgconf:</strong> <span class= - "indexref"><a href= - "#ch-system-pkgconf">Pkgconf-2.0.1</a></span> - </li> - <li> - <strong class="item">Procps-ng:</strong> <span class= - "indexref"><a href= - "#ch-system-procps">Procps-ng-4.0.3</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.11.4</a></span> - <ul> - <li> - <strong class="secitem">temporary:</strong> <span class= - "indexref"><a href= - "#ch-tools-Python">Python-3.11.4</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">Shadow:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.07</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.0.3</a></span> - <ul> - <li> - <strong class="secitem">temporary:</strong> <span class= - "indexref"><a href= - "#ch-tools-texinfo">Texinfo-7.0.3</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Udev:</strong> <span class= - "indexref"><a href="#ch-system-udev">Udev из - Systemd-254</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.1</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href= - "#ch-tools-util-linux">Util-linux-2.39.1</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Vim:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a></span> - </li> - <li> - <strong class="item">wheel:</strong> <span class= - "indexref"><a href="#ch-system-wheel">Wheel-0.41.1</a></span> - </li> - <li> - <strong class="item">XML::Parser:</strong> <span class= - "indexref"><a href= - "#ch-system-xml-parser">XML::Parser-2.46</a></span> - </li> - <li> - <strong class="item">Xz:</strong> <span class= - "indexref"><a href="#ch-system-xz">Xz-5.4.4</a></span> - <ul> - <li> - <strong class="secitem">tools:</strong> <span class= - "indexref"><a href="#ch-tools-xz">Xz-5.4.4</a></span> - </li> - </ul> - </li> - <li> - <strong class="item">Zlib:</strong> <span class= - "indexref"><a href="#ch-system-zlib">Zlib-1.2.13</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.3</a> -- - <a href="#lbracket">Описание</a><br /></span> - </li> - <li> - <strong class="item">2to3:</strong> <span class= - "indexref"><a href="#ch-system-Python">Python-3.11.4</a></span> - </li> - <li> - <strong class="item">accessdb:</strong> <span class= - "indexref"><a href="#ch-system-man-db">Man-DB-2.11.2</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.1</a> -- <a href= - "#addpart">Описание</a><br /></span> - </li> - <li> - <strong class="item">addr2line:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.1</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.11.2</a> -- - <a href="#apropos">Описание</a><br /></span> - </li> - <li> - <strong class="item">ar:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#ar">Описание</a><br /></span> - </li> - <li> - <strong class="item">as:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.1</a> -- <a href= - "#attr">Описание</a><br /></span> - </li> - <li> - <strong class="item">autoconf:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#autoconf">Описание</a><br /></span> - </li> - <li> - <strong class="item">autoheader:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#autoheader">Описание</a><br /></span> - </li> - <li> - <strong class="item">autom4te:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</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</a> -- - <a href="#autopoint">Описание</a><br /></span> - </li> - <li> - <strong class="item">autoreconf:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#autoreconf">Описание</a><br /></span> - </li> - <li> - <strong class="item">autoscan:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#autoscan">Описание</a><br /></span> - </li> - <li> - <strong class="item">autoupdate:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#autoupdate">Описание</a><br /></span> - </li> - <li> - <strong class="item">awk:</strong> <span class= - "indexref"><a href="#ch-system-gawk">Gawk-5.2.2</a> -- <a href= - "#awk">Описание</a><br /></span> - </li> - <li> - <strong class="item">b2sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</a> -- - <a href="#base64">Описание</a><br /></span> - </li> - <li> - <strong class="item">basename:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#basename">Описание</a><br /></span> - </li> - <li> - <strong class="item">basenc:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.15</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.15</a> -- - <a href="#bashbug">Описание</a><br /></span> - </li> - <li> - <strong class="item">bc:</strong> <span class= - "indexref"><a href="#ch-system-bc">Bc-6.6.0</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.1</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.1</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.1</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.1</a> -- <a href= - "#blockdev">Описание</a><br /></span> - </li> - <li> - <strong class="item">bomtool:</strong> <span class= - "indexref"><a href="#ch-system-pkgconf">Pkgconf-2.0.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.07</a> -- - <a href="#bootlogd">Описание</a><br /></span> - </li> - <li> - <strong class="item">bridge:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.41</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.1</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</a> -- - <a href="#captoinfo">Описание</a><br /></span> - </li> - <li> - <strong class="item">cat:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.11.2</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.1</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.1</a> -- <a href= - "#chacl">Описание</a><br /></span> - </li> - <li> - <strong class="item">chage:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.3</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.1</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.13</a> -- - <a href="#chfn">Описание</a><br /></span> - </li> - <li> - <strong class="item">chgpasswd:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#chgpasswd">Описание</a><br /></span> - </li> - <li> - <strong class="item">chgrp:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#chmem">Описание</a><br /></span> - </li> - <li> - <strong class="item">chmod:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#choom">Описание</a><br /></span> - </li> - <li> - <strong class="item">chown:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#chown">Описание</a><br /></span> - </li> - <li> - <strong class="item">chpasswd:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#chpasswd">Описание</a><br /></span> - </li> - <li> - <strong class="item">chroot:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#chrt">Описание</a><br /></span> - </li> - <li> - <strong class="item">chsh:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.1</a> -- <a href= - "#chvt">Описание</a><br /></span> - </li> - <li> - <strong class="item">cksum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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</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.1</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.1</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.1</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.1</a> -- <a href= - "#column">Описание</a><br /></span> - </li> - <li> - <strong class="item">comm:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.0</a> -- - <a href="#corelist">Описание</a><br /></span> - </li> - <li> - <strong class="item">cp:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.0</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.3</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.1</a> -- <a href= - "#ctrlaltdel">Описание</a><br /></span> - </li> - <li> - <strong class="item">ctstat:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.3</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.1.2</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.3</a> -- - <a href="#date">Описание</a><br /></span> - </li> - <li> - <strong class="item">dc:</strong> <span class= - "indexref"><a href="#ch-system-bc">Bc-6.6.0</a> -- <a href= - "#dc">Описание</a><br /></span> - </li> - <li> - <strong class="item">dd:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</a> -- <a href= - "#delpart">Описание</a><br /></span> - </li> - <li> - <strong class="item">depmod:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</a> -- <a href= - "#depmod">Описание</a><br /></span> - </li> - <li> - <strong class="item">df:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</a> -- - <a href="#dir">Описание</a><br /></span> - </li> - <li> - <strong class="item">dircolors:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#dircolors">Описание</a><br /></span> - </li> - <li> - <strong class="item">dirname:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#dmesg">Описание</a><br /></span> - </li> - <li> - <strong class="item">dnsdomainname:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</a> -- - <a href="#dnsdomainname">Описание</a><br /></span> - </li> - <li> - <strong class="item">du:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.3</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.1</a> -- <a href= - "#eject">Описание</a><br /></span> - </li> - <li> - <strong class="item">elfedit:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.0</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.0</a> -- - <a href="#encguess">Описание</a><br /></span> - </li> - <li> - <strong class="item">env:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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</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.0.1677</a> -- - <a href="#ex">Описание</a><br /></span> - </li> - <li> - <strong class="item">expand:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.13</a> -- - <a href="#expiry">Описание</a><br /></span> - </li> - <li> - <strong class="item">expr:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#expr">Описание</a><br /></span> - </li> - <li> - <strong class="item">factor:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#factor">Описание</a><br /></span> - </li> - <li> - <strong class="item">faillog:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.1</a> -- <a href= - "#fallocate">Описание</a><br /></span> - </li> - <li> - <strong class="item">false:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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.1</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.1</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.1</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.1</a> -- <a href= - "#flock">Описание</a><br /></span> - </li> - <li> - <strong class="item">fmt:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#fmt">Описание</a><br /></span> - </li> - <li> - <strong class="item">fold:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</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.1</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.1</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.1</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.1</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.07</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.1</a> -- <a href= - "#fstrim">Описание</a><br /></span> - </li> - <li> - <strong class="item">ftp:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</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.2.2</a> -- <a href= - "#gawk">Описание</a><br /></span> - </li> - <li> - <strong class="item">gawk-5.2.2:</strong> <span class= - "indexref"><a href="#ch-system-gawk">Gawk-5.2.2</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.38</a> -- - <a href="#gencat">Описание</a><br /></span> - </li> - <li> - <strong class="item">genl:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.38</a> -- - <a href="#getconf">Описание</a><br /></span> - </li> - <li> - <strong class="item">getent:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.1</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.1</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.1</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.1</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.13</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</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</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</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.13</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.41</a> -- - <a href="#gprof">Описание</a><br /></span> - </li> - <li> - <strong class="item">gprofng:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.13</a> -- - <a href="#groupadd">Описание</a><br /></span> - </li> - <li> - <strong class="item">groupdel:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#groupdel">Описание</a><br /></span> - </li> - <li> - <strong class="item">groupmems:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#groupmems">Описание</a><br /></span> - </li> - <li> - <strong class="item">groupmod:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#groupmod">Описание</a><br /></span> - </li> - <li> - <strong class="item">groups:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#groups">Описание</a><br /></span> - </li> - <li> - <strong class="item">grpck:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#grpck">Описание</a><br /></span> - </li> - <li> - <strong class="item">grpconv:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#grpconv">Описание</a><br /></span> - </li> - <li> - <strong class="item">grpunconv:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.06</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.12</a> -- <a href= - "#gunzip">Описание</a><br /></span> - </li> - <li> - <strong class="item">gzexe:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#gzexe">Описание</a><br /></span> - </li> - <li> - <strong class="item">gzip:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</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.0</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.0</a> -- - <a href="#h2xs">Описание</a><br /></span> - </li> - <li> - <strong class="item">halt:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</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.1</a> -- <a href= - "#hardlink">Описание</a><br /></span> - </li> - <li> - <strong class="item">head:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#hexdump">Описание</a><br /></span> - </li> - <li> - <strong class="item">hostid:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#hostid">Описание</a><br /></span> - </li> - <li> - <strong class="item">hostname:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</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.1</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.1</a> -- <a href= - "#i386">Описание</a><br /></span> - </li> - <li> - <strong class="item">iconv:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#iconv">Описание</a><br /></span> - </li> - <li> - <strong class="item">iconvconfig:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#iconvconfig">Описание</a><br /></span> - </li> - <li> - <strong class="item">id:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#id">Описание</a><br /></span> - </li> - <li> - <strong class="item">idle3:</strong> <span class= - "indexref"><a href="#ch-system-Python">Python-3.11.4</a></span> - </li> - <li> - <strong class="item">ifconfig:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</a> -- - <a href="#ifconfig">Описание</a><br /></span> - </li> - <li> - <strong class="item">ifnames:</strong> <span class= - "indexref"><a href="#ch-system-autoconf">Autoconf-2.71</a> -- - <a href="#ifnames">Описание</a><br /></span> - </li> - <li> - <strong class="item">ifstat:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.0.3</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</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</a> -- - <a href="#infotocap">Описание</a><br /></span> - </li> - <li> - <strong class="item">init:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</a> -- - <a href="#init-sysv">Описание</a><br /></span> - </li> - <li> - <strong class="item">insmod:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</a> -- <a href= - "#insmod">Описание</a><br /></span> - </li> - <li> - <strong class="item">install:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.0.3</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.0</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.1</a> -- <a href= - "#ionice">Описание</a><br /></span> - </li> - <li> - <strong class="item">ip:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.1</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.1</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.1</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.1</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.1</a> -- <a href= - "#isosize">Описание</a><br /></span> - </li> - <li> - <strong class="item">join:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.0</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.1</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.1</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.1</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.1</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.07</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-30</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.1</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.1</a> -- <a href= - "#lastb">Описание</a><br /></span> - </li> - <li> - <strong class="item">lastlog:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#lastlog">Описание</a><br /></span> - </li> - <li> - <strong class="item">ld:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.41</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.41</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.1</a> -- <a href= - "#ldattach">Описание</a><br /></span> - </li> - <li> - <strong class="item">ldconfig:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#ldconfig">Описание</a><br /></span> - </li> - <li> - <strong class="item">ldd:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#ldd">Описание</a><br /></span> - </li> - <li> - <strong class="item">lddlibc4:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.11.2</a> -- - <a href="#lexgrog">Описание</a><br /></span> - </li> - <li> - <strong class="item">lfskernel-6.4.12:</strong> <span class= - "indexref"><a href="#ch-bootable-kernel">Linux-6.4.12</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.0</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.3</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.1</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.1</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.3</a> -- - <a href="#ln">Описание</a><br /></span> - </li> - <li> - <strong class="item">lnstat:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.1</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.1</a> -- <a href= - "#loadunimap">Описание</a><br /></span> - </li> - <li> - <strong class="item">locale:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#locale">Описание</a><br /></span> - </li> - <li> - <strong class="item">localedef:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.1</a> -- <a href= - "#logger">Описание</a><br /></span> - </li> - <li> - <strong class="item">login:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#login">Описание</a><br /></span> - </li> - <li> - <strong class="item">logname:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#logname">Описание</a><br /></span> - </li> - <li> - <strong class="item">logoutd:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.1</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.1</a> -- <a href= - "#losetup">Описание</a><br /></span> - </li> - <li> - <strong class="item">ls:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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.1</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.1</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.1</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.1</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.1</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.1</a> -- <a href= - "#lsmem">Описание</a><br /></span> - </li> - <li> - <strong class="item">lsmod:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</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.1</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.38</a> -- - <a href="#makedb">Описание</a><br /></span> - </li> - <li> - <strong class="item">makeinfo:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</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.11.2</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.11.2</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.11.2</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.11.2</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.1</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.1</a> -- <a href= - "#mcookie">Описание</a><br /></span> - </li> - <li> - <strong class="item">md5sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#mesg">Описание</a><br /></span> - </li> - <li> - <strong class="item">meson:</strong> <span class= - "indexref"><a href="#ch-system-meson">Meson-1.2.1</a> -- - <a href="#meson">Описание</a><br /></span> - </li> - <li> - <strong class="item">mkdir:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</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.1</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.1</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.1</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.1</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.3</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.1</a> -- <a href= - "#mkswap">Описание</a><br /></span> - </li> - <li> - <strong class="item">mktemp:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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-30</a> -- <a href= - "#modinfo">Описание</a><br /></span> - </li> - <li> - <strong class="item">modprobe:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</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.1</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.1</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.1</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</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</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</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</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</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</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</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</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</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</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</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</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</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</a> -- - <a href="#msguniq">Описание</a><br /></span> - </li> - <li> - <strong class="item">mtrace:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#mtrace">Описание</a><br /></span> - </li> - <li> - <strong class="item">mv:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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</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.13</a> -- - <a href="#newgidmap">Описание</a><br /></span> - </li> - <li> - <strong class="item">newgrp:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#newgrp">Описание</a><br /></span> - </li> - <li> - <strong class="item">newuidmap:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#newuidmap">Описание</a><br /></span> - </li> - <li> - <strong class="item">newusers:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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</a> -- - <a href="#ngettext">Описание</a><br /></span> - </li> - <li> - <strong class="item">nice:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</a> -- - <a href="#nl">Описание</a><br /></span> - </li> - <li> - <strong class="item">nm:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#nm">Описание</a><br /></span> - </li> - <li> - <strong class="item">nohup:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#nohup">Описание</a><br /></span> - </li> - <li> - <strong class="item">nologin:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#nologin">Описание</a><br /></span> - </li> - <li> - <strong class="item">nproc:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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">nscd:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#nscd">Описание</a><br /></span> - </li> - <li> - <strong class="item">nsenter:</strong> <span class= - "indexref"><a href= - "#ch-system-util-linux">Util-linux-2.39.1</a> -- <a href= - "#nsenter">Описание</a><br /></span> - </li> - <li> - <strong class="item">nstat:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.3</a> -- - <a href="#numfmt">Описание</a><br /></span> - </li> - <li> - <strong class="item">objcopy:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#objcopy">Описание</a><br /></span> - </li> - <li> - <strong class="item">objdump:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#objdump">Описание</a><br /></span> - </li> - <li> - <strong class="item">od:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#od">Описание</a><br /></span> - </li> - <li> - <strong class="item">openssl:</strong> <span class= - "indexref"><a href="#ch-system-openssl">OpenSSL-3.1.2</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.1</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.1</a> -- <a href= - "#partx">Описание</a><br /></span> - </li> - <li> - <strong class="item">passwd:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#passwd">Описание</a><br /></span> - </li> - <li> - <strong class="item">paste:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</a> -- - <a href="#pathchk">Описание</a><br /></span> - </li> - <li> - <strong class="item">pcprofiledump:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.0.3</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.0</a> -- - <a href="#perl">Описание</a><br /></span> - </li> - <li> - <strong class="item">perl5.38.0:</strong> <span class= - "indexref"><a href="#ch-system-perl">Perl-5.38.0</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.0</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.0</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.0</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.0</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.3</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.0</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.3</a> -- - <a href="#pidof">Описание</a><br /></span> - </li> - <li> - <strong class="item">ping:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</a> -- - <a href="#ping">Описание</a><br /></span> - </li> - <li> - <strong class="item">ping6:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</a> -- - <a href="#ping6">Описание</a><br /></span> - </li> - <li> - <strong class="item">pinky:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#pinky">Описание</a><br /></span> - </li> - <li> - <strong class="item">pip3:</strong> <span class= - "indexref"><a href="#ch-system-Python">Python-3.11.4</a></span> - </li> - <li> - <strong class="item">pivot_root:</strong> <span class= - "indexref"><a href= - "#ch-system-util-linux">Util-linux-2.39.1</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.0.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.3</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.0</a> -- - <a href="#pl2pm">Описание</a><br /></span> - </li> - <li> - <strong class="item">pldd:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.3</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.0</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.0</a> -- - <a href="#pod2man">Описание</a><br /></span> - </li> - <li> - <strong class="item">pod2texi:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</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.0</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.0</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.0</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.0</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.07</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.3</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.3</a> -- - <a href="#printenv">Описание</a><br /></span> - </li> - <li> - <strong class="item">printf:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.0</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.3</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.1</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.1</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.1</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.1</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.0</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.0</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.0</a> -- - <a href="#ptargrep">Описание</a><br /></span> - </li> - <li> - <strong class="item">ptx:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#ptx">Описание</a><br /></span> - </li> - <li> - <strong class="item">pwck:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#pwck">Описание</a><br /></span> - </li> - <li> - <strong class="item">pwconv:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#pwconv">Описание</a><br /></span> - </li> - <li> - <strong class="item">pwd:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</a> -- - <a href="#pwdx">Описание</a><br /></span> - </li> - <li> - <strong class="item">pwunconv:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#pwunconv">Описание</a><br /></span> - </li> - <li> - <strong class="item">pydoc3:</strong> <span class= - "indexref"><a href="#ch-system-Python">Python-3.11.4</a></span> - </li> - <li> - <strong class="item">python3:</strong> <span class= - "indexref"><a href="#ch-system-Python">Python-3.11.4</a></span> - </li> - <li> - <strong class="item">ranlib:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#ranlib">Описание</a><br /></span> - </li> - <li> - <strong class="item">readelf:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#readelf">Описание</a><br /></span> - </li> - <li> - <strong class="item">readlink:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#readprofile">Описание</a><br /></span> - </li> - <li> - <strong class="item">realpath:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#realpath">Описание</a><br /></span> - </li> - <li> - <strong class="item">reboot:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</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</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.1</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.1</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</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.1</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.1</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.1</a> -- <a href= - "#rfkill">Описание</a><br /></span> - </li> - <li> - <strong class="item">rm:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#rm">Описание</a><br /></span> - </li> - <li> - <strong class="item">rmdir:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#rmdir">Описание</a><br /></span> - </li> - <li> - <strong class="item">rmmod:</strong> <span class= - "indexref"><a href="#ch-system-kmod">Kmod-30</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.4.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.4.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.1</a> -- <a href= - "#rtcwake">Описание</a><br /></span> - </li> - <li> - <strong class="item">rtmon:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.4.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.4.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.3</a> -- - <a href="#runcon">Описание</a><br /></span> - </li> - <li> - <strong class="item">runlevel:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</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.0.1677</a> -- - <a href="#rview">Описание</a><br /></span> - </li> - <li> - <strong class="item">rvim:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</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.1</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.1</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.1</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.3</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.1</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.1</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.1</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.1</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.1</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.1</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.1</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.1</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.1</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.1</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.1</a> -- <a href= - "#sfdisk">Описание</a><br /></span> - </li> - <li> - <strong class="item">sg:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.15</a> -- - <a href="#sh">Описание</a><br /></span> - </li> - <li> - <strong class="item">sha1sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#sha1sum">Описание</a><br /></span> - </li> - <li> - <strong class="item">sha224sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#sha224sum">Описание</a><br /></span> - </li> - <li> - <strong class="item">sha256sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#sha256sum">Описание</a><br /></span> - </li> - <li> - <strong class="item">sha384sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#sha384sum">Описание</a><br /></span> - </li> - <li> - <strong class="item">sha512sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.0</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.1</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.1</a> -- <a href= - "#showkey">Описание</a><br /></span> - </li> - <li> - <strong class="item">shred:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#shred">Описание</a><br /></span> - </li> - <li> - <strong class="item">shuf:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#shuf">Описание</a><br /></span> - </li> - <li> - <strong class="item">shutdown:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</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.41</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.3</a> -- - <a href="#slabtop">Описание</a><br /></span> - </li> - <li> - <strong class="item">sleep:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#sleep">Описание</a><br /></span> - </li> - <li> - <strong class="item">sln:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.3</a> -- - <a href="#sort">Описание</a><br /></span> - </li> - <li> - <strong class="item">sotruss:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.0</a> -- - <a href="#splain">Описание</a><br /></span> - </li> - <li> - <strong class="item">split:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#split">Описание</a><br /></span> - </li> - <li> - <strong class="item">sprof:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#sprof">Описание</a><br /></span> - </li> - <li> - <strong class="item">ss:</strong> <span class= - "indexref"><a href="#ch-system-iproute2">IPRoute2-6.4.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.3</a> -- - <a href="#stat">Описание</a><br /></span> - </li> - <li> - <strong class="item">stdbuf:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#stdbuf">Описание</a><br /></span> - </li> - <li> - <strong class="item">strings:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#strings">Описание</a><br /></span> - </li> - <li> - <strong class="item">strip:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</a> -- - <a href="#strip">Описание</a><br /></span> - </li> - <li> - <strong class="item">stty:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#stty">Описание</a><br /></span> - </li> - <li> - <strong class="item">su:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.1</a> -- <a href= - "#sulogin">Описание</a><br /></span> - </li> - <li> - <strong class="item">sum:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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.1</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.1</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.3</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.3</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</a> -- - <a href="#tabs">Описание</a><br /></span> - </li> - <li> - <strong class="item">tac:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#tac">Описание</a><br /></span> - </li> - <li> - <strong class="item">tail:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#tail">Описание</a><br /></span> - </li> - <li> - <strong class="item">talk:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</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.1</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.4.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.3</a> -- - <a href="#tee">Описание</a><br /></span> - </li> - <li> - <strong class="item">telinit:</strong> <span class= - "indexref"><a href="#ch-system-sysvinit">Sysvinit-3.07</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.4</a> -- - <a href="#telnet">Описание</a><br /></span> - </li> - <li> - <strong class="item">test:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#test">Описание</a><br /></span> - </li> - <li> - <strong class="item">texi2dvi:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</a> -- - <a href="#texi2dvi">Описание</a><br /></span> - </li> - <li> - <strong class="item">texi2pdf:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</a> -- - <a href="#texi2pdf">Описание</a><br /></span> - </li> - <li> - <strong class="item">texi2any:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</a> -- - <a href="#texi2any">Описание</a><br /></span> - </li> - <li> - <strong class="item">texindex:</strong> <span class= - "indexref"><a href="#ch-system-texinfo">Texinfo-7.0.3</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.4</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</a> -- - <a href="#tic">Описание</a><br /></span> - </li> - <li> - <strong class="item">timeout:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.3</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</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.3</a> -- - <a href="#top">Описание</a><br /></span> - </li> - <li> - <strong class="item">touch:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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</a> -- - <a href="#tput">Описание</a><br /></span> - </li> - <li> - <strong class="item">tr:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#tr">Описание</a><br /></span> - </li> - <li> - <strong class="item">traceroute:</strong> <span class= - "indexref"><a href="#ch-system-inetutils">Inetutils-2.4</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.3</a> -- - <a href="#true">Описание</a><br /></span> - </li> - <li> - <strong class="item">truncate:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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</a> -- - <a href="#tset">Описание</a><br /></span> - </li> - <li> - <strong class="item">tsort:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#tsort">Описание</a><br /></span> - </li> - <li> - <strong class="item">tty:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.38</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.1</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-254</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-254</a> -- - <a href="#udevadm">Описание</a><br /></span> - </li> - <li> - <strong class="item">udevd:</strong> <span class= - "indexref"><a href="#ch-system-udev">Udev из Systemd-254</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.1</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.1</a> -- <a href= - "#umount">Описание</a><br /></span> - </li> - <li> - <strong class="item">uname:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</a> -- <a href= - "#uname26">Описание</a><br /></span> - </li> - <li> - <strong class="item">uncompress:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#uncompress">Описание</a><br /></span> - </li> - <li> - <strong class="item">unexpand:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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.3</a> -- - <a href="#uniq">Описание</a><br /></span> - </li> - <li> - <strong class="item">unlink:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.4</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.1</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.4</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.3</a> -- - <a href="#uptime">Описание</a><br /></span> - </li> - <li> - <strong class="item">useradd:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#useradd">Описание</a><br /></span> - </li> - <li> - <strong class="item">userdel:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#userdel">Описание</a><br /></span> - </li> - <li> - <strong class="item">usermod:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#usermod">Описание</a><br /></span> - </li> - <li> - <strong class="item">users:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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.1</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.1</a> -- <a href= - "#uuidparse">Описание</a><br /></span> - </li> - <li> - <strong class="item">vdir:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#vdir">Описание</a><br /></span> - </li> - <li> - <strong class="item">vi:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a> -- - <a href="#vi">Описание</a><br /></span> - </li> - <li> - <strong class="item">view:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a> -- - <a href="#view">Описание</a><br /></span> - </li> - <li> - <strong class="item">vigr:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</a> -- - <a href="#vigr">Описание</a><br /></span> - </li> - <li> - <strong class="item">vim:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a> -- - <a href="#vim">Описание</a><br /></span> - </li> - <li> - <strong class="item">vimdiff:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a> -- - <a href="#vimdiff">Описание</a><br /></span> - </li> - <li> - <strong class="item">vimtutor:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</a> -- - <a href="#vimtutor">Описание</a><br /></span> - </li> - <li> - <strong class="item">vipw:</strong> <span class= - "indexref"><a href="#ch-system-shadow">Shadow-4.13</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.3</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.3</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.1</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.3</a> -- - <a href="#watch">Описание</a><br /></span> - </li> - <li> - <strong class="item">wc:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.11.2</a> -- - <a href="#whatis">Описание</a><br /></span> - </li> - <li> - <strong class="item">wheel:</strong> <span class= - "indexref"><a href="#ch-system-wheel">Wheel-0.41.1</a></span> - </li> - <li> - <strong class="item">whereis:</strong> <span class= - "indexref"><a href= - "#ch-system-util-linux">Util-linux-2.39.1</a> -- <a href= - "#whereis">Описание</a><br /></span> - </li> - <li> - <strong class="item">who:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</a> -- - <a href="#who">Описание</a><br /></span> - </li> - <li> - <strong class="item">whoami:</strong> <span class= - "indexref"><a href="#ch-system-coreutils">Coreutils-9.3</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.1</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.1</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</a> -- - <a href="#xgettext">Описание</a><br /></span> - </li> - <li> - <strong class="item">xmlwf:</strong> <span class= - "indexref"><a href="#ch-system-expat">Expat-2.5.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.0</a> -- - <a href="#xsubpp">Описание</a><br /></span> - </li> - <li> - <strong class="item">xtrace:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#xtrace">Описание</a><br /></span> - </li> - <li> - <strong class="item">xxd:</strong> <span class= - "indexref"><a href="#ch-system-vim">Vim-9.0.1677</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.4</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.3</a> -- - <a href="#yes">Описание</a><br /></span> - </li> - <li> - <strong class="item">zcat:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zcat">Описание</a><br /></span> - </li> - <li> - <strong class="item">zcmp:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zcmp">Описание</a><br /></span> - </li> - <li> - <strong class="item">zdiff:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zdiff">Описание</a><br /></span> - </li> - <li> - <strong class="item">zdump:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#zdump">Описание</a><br /></span> - </li> - <li> - <strong class="item">zegrep:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zegrep">Описание</a><br /></span> - </li> - <li> - <strong class="item">zfgrep:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zfgrep">Описание</a><br /></span> - </li> - <li> - <strong class="item">zforce:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zforce">Описание</a><br /></span> - </li> - <li> - <strong class="item">zgrep:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zgrep">Описание</a><br /></span> - </li> - <li> - <strong class="item">zic:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.0</a> -- - <a href="#zipdetails">Описание</a><br /></span> - </li> - <li> - <strong class="item">zless:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zless">Описание</a><br /></span> - </li> - <li> - <strong class="item">zmore:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</a> -- <a href= - "#zmore">Описание</a><br /></span> - </li> - <li> - <strong class="item">znew:</strong> <span class= - "indexref"><a href="#ch-system-gzip">Gzip-1.12</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.1</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.46</a> - -- <a href="#Expat">Описание</a><br /></span> - </li> - <li> - <strong class="item">ld-2.38.so:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.1</a> -- <a href= - "#libacl">Описание</a><br /></span> - </li> - <li> - <strong class="item">libanl:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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</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.1</a> -- <a href= - "#libattr">Описание</a><br /></span> - </li> - <li> - <strong class="item">libbfd:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.1</a> -- <a href= - "#libblkid">Описание</a><br /></span> - </li> - <li> - <strong class="item">libBrokenLocale:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.38</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.1.2</a> -- - <a href="#libcrypto">Описание</a><br /></span> - </li> - <li> - <strong class="item">libctf:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.41</a> -- - <a href="#libctf-nobfd">Описание</a><br /></span> - </li> - <li> - <strong class="item">libcursesw:</strong> <span class= - "indexref"><a href="#ch-system-ncurses">Ncurses-6.4</a> -- - <a href="#libcursesw">Описание</a><br /></span> - </li> - <li> - <strong class="item">libc_malloc_debug:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.38</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.189</a> -- <a href= - "#libelf">Описание</a><br /></span> - </li> - <li> - <strong class="item">libexpat:</strong> <span class= - "indexref"><a href="#ch-system-expat">Expat-2.5.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.1</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</a> -- - <a href="#libformw">Описание</a><br /></span> - </li> - <li> - <strong class="item">libg:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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</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</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</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.41</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-30</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.4</a> -- <a href= - "#liblzma">Описание</a><br /></span> - </li> - <li> - <strong class="item">libm:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.11.2</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.11.2</a> -- - <a href="#libmandb">Описание</a><br /></span> - </li> - <li> - <strong class="item">libmcheck:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#libmcheck">Описание</a><br /></span> - </li> - <li> - <strong class="item">libmemusage:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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</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.1</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.0</a> -- <a href= - "#libmpfr">Описание</a><br /></span> - </li> - <li> - <strong class="item">libmvec:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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</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</a> -- - <a href="#libncursesw">Описание</a><br /></span> - </li> - <li> - <strong class="item">libnsl:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#libnsl">Описание</a><br /></span> - </li> - <li> - <strong class="item">libnss_*:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#libnss">Описание</a><br /></span> - </li> - <li> - <strong class="item">libopcodes:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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</a> -- - <a href="#libpanelw">Описание</a><br /></span> - </li> - <li> - <strong class="item">libpcprofile:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.0.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.3</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.38</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.38</a> -- - <a href="#libresolv">Описание</a><br /></span> - </li> - <li> - <strong class="item">librt:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</a> -- - <a href="#librt">Описание</a><br /></span> - </li> - <li> - <strong class="item">libsframe:</strong> <span class= - "indexref"><a href="#ch-system-binutils">Binutils-2.41</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.1</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.1.2</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.3</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.13</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</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.38</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-254</a> -- - <a href="#libudev">Описание</a><br /></span> - </li> - <li> - <strong class="item">libutil:</strong> <span class= - "indexref"><a href="#ch-system-glibc">Glibc-2.38</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.1</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.2.13</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</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.41</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.4.12:</strong> <span class= - "indexref"><a href="#ch-bootable-kernel">Linux-6.4.12</a> -- - <a href="#config">Описание</a><br /></span> - </li> - <li> - <strong class="item">/boot/System.map-6.4.12:</strong> - <span class="indexref"><a href= - "#ch-bootable-kernel">Linux-6.4.12</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-profile">Файлы запуска оболочки - Bash</a></span> - </li> - <li> - <strong class="item">/etc/protocols:</strong> <span class= - "indexref"><a href= - "#ch-system-iana-etc">Iana-Etc-20230810</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-20230810</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-254</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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.4.12 - 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.05.01</a> - -- <a href="#man-pages">Описание</a><br /></span> - </li> - </ul> - </div> - </div> - </div> - </body> -</html> |