From c4d43142181a45b849a15cf8ec5ebe61cea33897 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 10 Jan 2024 16:57:29 +0300 Subject: LFS 12 mirror --- lfs-12.0-sysv/chapter08/Python.html | 394 ++++++ lfs-12.0-sysv/chapter08/aboutdebug.html | 136 ++ lfs-12.0-sysv/chapter08/acl.html | 215 ++++ lfs-12.0-sysv/chapter08/attr.html | 214 ++++ lfs-12.0-sysv/chapter08/autoconf.html | 310 +++++ lfs-12.0-sysv/chapter08/automake.html | 231 ++++ lfs-12.0-sysv/chapter08/bash.html | 265 ++++ lfs-12.0-sysv/chapter08/bc.html | 214 ++++ lfs-12.0-sysv/chapter08/binutils.html | 656 ++++++++++ lfs-12.0-sysv/chapter08/bison.html | 203 +++ lfs-12.0-sysv/chapter08/bzip2.html | 394 ++++++ lfs-12.0-sysv/chapter08/chapter08.html | 337 +++++ lfs-12.0-sysv/chapter08/check.html | 180 +++ lfs-12.0-sysv/chapter08/cleanup.html | 119 ++ lfs-12.0-sysv/chapter08/coreutils.html | 1792 +++++++++++++++++++++++++++ lfs-12.0-sysv/chapter08/dejagnu.html | 184 +++ lfs-12.0-sysv/chapter08/diffutils.html | 201 +++ lfs-12.0-sysv/chapter08/e2fsprogs.html | 775 ++++++++++++ lfs-12.0-sysv/chapter08/expat.html | 187 +++ lfs-12.0-sysv/chapter08/expect.html | 256 ++++ lfs-12.0-sysv/chapter08/file.html | 180 +++ lfs-12.0-sysv/chapter08/findutils.html | 238 ++++ lfs-12.0-sysv/chapter08/flex.html | 230 ++++ lfs-12.0-sysv/chapter08/flit-core.html | 186 +++ lfs-12.0-sysv/chapter08/gawk.html | 244 ++++ lfs-12.0-sysv/chapter08/gcc.html | 911 ++++++++++++++ lfs-12.0-sysv/chapter08/gdbm.html | 243 ++++ lfs-12.0-sysv/chapter08/gettext.html | 594 +++++++++ lfs-12.0-sysv/chapter08/glibc.html | 1229 ++++++++++++++++++ lfs-12.0-sysv/chapter08/gmp.html | 268 ++++ lfs-12.0-sysv/chapter08/gperf.html | 163 +++ lfs-12.0-sysv/chapter08/grep.html | 195 +++ lfs-12.0-sysv/chapter08/groff.html | 897 ++++++++++++++ lfs-12.0-sysv/chapter08/grub.html | 602 +++++++++ lfs-12.0-sysv/chapter08/gzip.html | 365 ++++++ lfs-12.0-sysv/chapter08/iana-etc.html | 163 +++ lfs-12.0-sysv/chapter08/inetutils.html | 363 ++++++ lfs-12.0-sysv/chapter08/intltool.html | 245 ++++ lfs-12.0-sysv/chapter08/introduction.html | 174 +++ lfs-12.0-sysv/chapter08/iproute2.html | 436 +++++++ lfs-12.0-sysv/chapter08/jinja2.html | 129 ++ lfs-12.0-sysv/chapter08/kbd.html | 586 +++++++++ lfs-12.0-sysv/chapter08/kmod.html | 315 +++++ lfs-12.0-sysv/chapter08/less.html | 209 ++++ lfs-12.0-sysv/chapter08/libcap.html | 259 ++++ lfs-12.0-sysv/chapter08/libelf.html | 169 +++ lfs-12.0-sysv/chapter08/libffi.html | 211 ++++ lfs-12.0-sysv/chapter08/libpipeline.html | 158 +++ lfs-12.0-sysv/chapter08/libtool.html | 223 ++++ lfs-12.0-sysv/chapter08/libxcrypt.html | 225 ++++ lfs-12.0-sysv/chapter08/m4.html | 168 +++ lfs-12.0-sysv/chapter08/make.html | 161 +++ lfs-12.0-sysv/chapter08/man-db.html | 765 ++++++++++++ lfs-12.0-sysv/chapter08/man-pages.html | 156 +++ lfs-12.0-sysv/chapter08/markupsafe.html | 128 ++ lfs-12.0-sysv/chapter08/meson.html | 192 +++ lfs-12.0-sysv/chapter08/mpc.html | 164 +++ lfs-12.0-sysv/chapter08/mpfr.html | 183 +++ lfs-12.0-sysv/chapter08/ncurses.html | 554 +++++++++ lfs-12.0-sysv/chapter08/ninja.html | 206 +++ lfs-12.0-sysv/chapter08/openssl.html | 300 +++++ lfs-12.0-sysv/chapter08/patch.html | 165 +++ lfs-12.0-sysv/chapter08/perl.html | 725 +++++++++++ lfs-12.0-sysv/chapter08/pkgconf.html | 204 +++ lfs-12.0-sysv/chapter08/pkgmgt.html | 528 ++++++++ lfs-12.0-sysv/chapter08/procps-ng.html | 412 ++++++ lfs-12.0-sysv/chapter08/psmisc.html | 248 ++++ lfs-12.0-sysv/chapter08/readline.html | 238 ++++ lfs-12.0-sysv/chapter08/sed.html | 163 +++ lfs-12.0-sysv/chapter08/shadow.html | 945 ++++++++++++++ lfs-12.0-sysv/chapter08/stripping.html | 223 ++++ lfs-12.0-sysv/chapter08/sysklogd.html | 208 ++++ lfs-12.0-sysv/chapter08/sysvinit.html | 313 +++++ lfs-12.0-sysv/chapter08/tar.html | 209 ++++ lfs-12.0-sysv/chapter08/tcl.html | 271 ++++ lfs-12.0-sysv/chapter08/texinfo.html | 334 +++++ lfs-12.0-sysv/chapter08/udev.html | 366 ++++++ lfs-12.0-sysv/chapter08/util-linux.html | 1928 +++++++++++++++++++++++++++++ lfs-12.0-sysv/chapter08/vim.html | 448 +++++++ lfs-12.0-sysv/chapter08/wheel.html | 158 +++ lfs-12.0-sysv/chapter08/xml-parser.html | 159 +++ lfs-12.0-sysv/chapter08/xz.html | 531 ++++++++ lfs-12.0-sysv/chapter08/zlib.html | 162 +++ lfs-12.0-sysv/chapter08/zstd.html | 224 ++++ 84 files changed, 29812 insertions(+) create mode 100644 lfs-12.0-sysv/chapter08/Python.html create mode 100644 lfs-12.0-sysv/chapter08/aboutdebug.html create mode 100644 lfs-12.0-sysv/chapter08/acl.html create mode 100644 lfs-12.0-sysv/chapter08/attr.html create mode 100644 lfs-12.0-sysv/chapter08/autoconf.html create mode 100644 lfs-12.0-sysv/chapter08/automake.html create mode 100644 lfs-12.0-sysv/chapter08/bash.html create mode 100644 lfs-12.0-sysv/chapter08/bc.html create mode 100644 lfs-12.0-sysv/chapter08/binutils.html create mode 100644 lfs-12.0-sysv/chapter08/bison.html create mode 100644 lfs-12.0-sysv/chapter08/bzip2.html create mode 100644 lfs-12.0-sysv/chapter08/chapter08.html create mode 100644 lfs-12.0-sysv/chapter08/check.html create mode 100644 lfs-12.0-sysv/chapter08/cleanup.html create mode 100644 lfs-12.0-sysv/chapter08/coreutils.html create mode 100644 lfs-12.0-sysv/chapter08/dejagnu.html create mode 100644 lfs-12.0-sysv/chapter08/diffutils.html create mode 100644 lfs-12.0-sysv/chapter08/e2fsprogs.html create mode 100644 lfs-12.0-sysv/chapter08/expat.html create mode 100644 lfs-12.0-sysv/chapter08/expect.html create mode 100644 lfs-12.0-sysv/chapter08/file.html create mode 100644 lfs-12.0-sysv/chapter08/findutils.html create mode 100644 lfs-12.0-sysv/chapter08/flex.html create mode 100644 lfs-12.0-sysv/chapter08/flit-core.html create mode 100644 lfs-12.0-sysv/chapter08/gawk.html create mode 100644 lfs-12.0-sysv/chapter08/gcc.html create mode 100644 lfs-12.0-sysv/chapter08/gdbm.html create mode 100644 lfs-12.0-sysv/chapter08/gettext.html create mode 100644 lfs-12.0-sysv/chapter08/glibc.html create mode 100644 lfs-12.0-sysv/chapter08/gmp.html create mode 100644 lfs-12.0-sysv/chapter08/gperf.html create mode 100644 lfs-12.0-sysv/chapter08/grep.html create mode 100644 lfs-12.0-sysv/chapter08/groff.html create mode 100644 lfs-12.0-sysv/chapter08/grub.html create mode 100644 lfs-12.0-sysv/chapter08/gzip.html create mode 100644 lfs-12.0-sysv/chapter08/iana-etc.html create mode 100644 lfs-12.0-sysv/chapter08/inetutils.html create mode 100644 lfs-12.0-sysv/chapter08/intltool.html create mode 100644 lfs-12.0-sysv/chapter08/introduction.html create mode 100644 lfs-12.0-sysv/chapter08/iproute2.html create mode 100644 lfs-12.0-sysv/chapter08/jinja2.html create mode 100644 lfs-12.0-sysv/chapter08/kbd.html create mode 100644 lfs-12.0-sysv/chapter08/kmod.html create mode 100644 lfs-12.0-sysv/chapter08/less.html create mode 100644 lfs-12.0-sysv/chapter08/libcap.html create mode 100644 lfs-12.0-sysv/chapter08/libelf.html create mode 100644 lfs-12.0-sysv/chapter08/libffi.html create mode 100644 lfs-12.0-sysv/chapter08/libpipeline.html create mode 100644 lfs-12.0-sysv/chapter08/libtool.html create mode 100644 lfs-12.0-sysv/chapter08/libxcrypt.html create mode 100644 lfs-12.0-sysv/chapter08/m4.html create mode 100644 lfs-12.0-sysv/chapter08/make.html create mode 100644 lfs-12.0-sysv/chapter08/man-db.html create mode 100644 lfs-12.0-sysv/chapter08/man-pages.html create mode 100644 lfs-12.0-sysv/chapter08/markupsafe.html create mode 100644 lfs-12.0-sysv/chapter08/meson.html create mode 100644 lfs-12.0-sysv/chapter08/mpc.html create mode 100644 lfs-12.0-sysv/chapter08/mpfr.html create mode 100644 lfs-12.0-sysv/chapter08/ncurses.html create mode 100644 lfs-12.0-sysv/chapter08/ninja.html create mode 100644 lfs-12.0-sysv/chapter08/openssl.html create mode 100644 lfs-12.0-sysv/chapter08/patch.html create mode 100644 lfs-12.0-sysv/chapter08/perl.html create mode 100644 lfs-12.0-sysv/chapter08/pkgconf.html create mode 100644 lfs-12.0-sysv/chapter08/pkgmgt.html create mode 100644 lfs-12.0-sysv/chapter08/procps-ng.html create mode 100644 lfs-12.0-sysv/chapter08/psmisc.html create mode 100644 lfs-12.0-sysv/chapter08/readline.html create mode 100644 lfs-12.0-sysv/chapter08/sed.html create mode 100644 lfs-12.0-sysv/chapter08/shadow.html create mode 100644 lfs-12.0-sysv/chapter08/stripping.html create mode 100644 lfs-12.0-sysv/chapter08/sysklogd.html create mode 100644 lfs-12.0-sysv/chapter08/sysvinit.html create mode 100644 lfs-12.0-sysv/chapter08/tar.html create mode 100644 lfs-12.0-sysv/chapter08/tcl.html create mode 100644 lfs-12.0-sysv/chapter08/texinfo.html create mode 100644 lfs-12.0-sysv/chapter08/udev.html create mode 100644 lfs-12.0-sysv/chapter08/util-linux.html create mode 100644 lfs-12.0-sysv/chapter08/vim.html create mode 100644 lfs-12.0-sysv/chapter08/wheel.html create mode 100644 lfs-12.0-sysv/chapter08/xml-parser.html create mode 100644 lfs-12.0-sysv/chapter08/xz.html create mode 100644 lfs-12.0-sysv/chapter08/zlib.html create mode 100644 lfs-12.0-sysv/chapter08/zstd.html (limited to 'lfs-12.0-sysv/chapter08') diff --git a/lfs-12.0-sysv/chapter08/Python.html b/lfs-12.0-sysv/chapter08/Python.html new file mode 100644 index 0000000..097343b --- /dev/null +++ b/lfs-12.0-sysv/chapter08/Python.html @@ -0,0 +1,394 @@ + + + + + + 8.51. Python-3.11.4 + + + + + + + + +
+

+ 8.51. + Python-3.11.4 +

+
+

+ Пакет Python 3 содержит среду разработчика Python. Его можно + использовать для объектно-ориентированного программирования, + написания скриптов, прототипирования больших программ и разработка + целых приложений. Python — это интерпретируемый язык + программирования. +

+
+
+
+ Приблизительное время сборки: + 1.9 SBU +
+
+ Требуемое дисковое + пространство: 370 MB +
+
+
+
+
+

+ 8.51.1. Установка пакета Python 3 +

+

+ Подготовьте Python к компиляции: +

+
./configure --prefix=/usr        \
+            --enable-shared      \
+            --with-system-expat  \
+            --with-system-ffi    \
+            --enable-optimizations
+
+

+ Значение параметров настройки: +

+
+
+ --with-system-expat +
+
+

+ Этот параметр выполняет линковку с системной версией + Expat. +

+
+
+ --with-system-ffi +
+
+

+ Этот параметр выполняет линковку с системной версией + libffi.so. +

+
+
+ --enable-optimizations +
+
+

+ Этот параметр позволяет выполнить обширные, но отнимающие + много времени, действия по оптимизации. Интерпретатор + собирается дважды; тесты, выполненные при первой сборке, + используются для улучшения финальной версии. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Запускать тесты на этом этапе не рекомендуется. Известно, что тесты + зависают на неопределенный срок в неполной среде LFS. При желании + тесты можно запустить повторно в конце этой главы или при + переустановке Python 3 в BLFS. Чтобы запустить тесты, выполните + команду make test. +

+

+ Установите пакет: +

+
make install
+

+ В некоторых местах книги, мы используем команду pip3 для установки программ и + модулей Python 3 от имени пользователя root. Это противоречит рекомендации + разработчиков Python: устанавливать пакеты в виртуальную среду или + домашний каталог обычного пользователя (путем запуска pip3 от имени этого + пользователя). Поэтому всякий раз при использовании pip3 от имени пользователя + root появляется многострочное + предупреждение. +

+

+ Основная причина этой рекомендации — избежать конфликта с системным + менеджером пакетов (например, dpkg), но в LFS нет + общесистемного менеджера пакетов, так что это не проблема. Кроме + того, pip3 будет + пытаться проверять наличие новой версии при каждом запуске. + Поскольку разрешение доменных имен в среде chroot LFS еще не + настроено, он не сможет проверить наличие новой версии и выдаст + предупреждение. +

+

+ Как только мы загрузим систему LFS и настроим сетевое подключение, + pip3 выдаст + предупреждение, сообщающее пользователю о необходимости обновить + его с помощью предварительно собранного whl-файла в PyPI (всякий + раз, когда будет доступна новая версия). Но LFS считает + pip3 частью Python3, + поэтому его не следует обновлять отдельно. Кроме того, обновление + из whl-файла не соответствует цели проекта — собрать систему Linux + из исходного кода, поэтому предупреждение о новой версии + pip3 следует + игнорировать. По желанию, вы можете отключить все предупреждение, + создав следующий файл конфигурации: +

+
cat > /etc/pip.conf << EOF
+[global]
+root-user-action = ignore
+disable-pip-version-check = true
+EOF
+
+
+ [Важно] +

+ Важно +

+

+ В LFS и BLFS мы собираем и устанавливаем модули Python с помощью + команды pip3. + Убедитесь, что команда pip3 + install в обеих книгах запускаются от имени + пользователя root (если только + она не для виртуальной среды Python). Запуск pip3 install от имени + пользователя без полномочий root + может показаться нормальным, но это приведет к тому, что + установленный модуль будет недоступен для других пользователей. +

+

+ Команда pip3 + install по умолчанию не приведёт к автоматической + переустановке уже установленного модуля. Чтобы использовать + команду pip3 + install для обновления модуля (например, с + meson-0.61.3 до meson-0.62.0), добавьте параметр --upgrade в командную строку. Если + по какой-то причине необходимо понизить версию модуля или + переустановить ту же версию, используйте параметр --force-reinstall --no-deps. +

+
+

+ По желанию установите предварительно отформатированную + документацию: +

+
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
+
+

+ Значение команд установки документации: +

+
+
+ --no-same-owner + и --no-same-permissions +
+
+

+ Проверяет, что установленные файлы имеют корректные права и + владельца файлов. Использование tar без этих параметров приведет к + установке файлов с правами пользователя создавшего пакет. +

+
+
+
+
+
+

+ 8.51.2. + Содержимое пакета Python 3 +

+
+
+
+ Установленные программы: + 2to3, idle3, pip3, pydoc3, python3 и + python3-config +
+
+ Установленные библиотеки: + libpython3.11.so и libpython3.so +
+
+ Созданные каталоги: + /usr/include/python3.11, /usr/lib/python3 + и /usr/share/doc/python-3.11.4 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ 2to3 +

+
+

+ программа на Python, + которая читает файлы написанные на Python 2.x, применяет к ним серию + изменений и переводит их в валидный код Python 3.x. +

+
+

+ idle3 +

+
+

+ скрипт-обертка, который открывает графический редактор с + поддержкой Python. Для + запуска этого скрипта, перед установкой Python необходимо + установить Tk, чтобы + модуль Tkinter Python был собран. +

+
+

+ pip3 +

+
+

+ Установщик пакетов для Python. Вы можете использовать pip + для установки пакетов из каталога PyPI (Python Package + Index) и других источников. +

+
+

+ pydoc3 +

+
+

+ инструмент документации Python +

+
+

+ python3 +

+
+

+ это интерпретатор для Python, интерпретируемый, + интерактивный, объектно-ориентированный язык + программирования +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/aboutdebug.html b/lfs-12.0-sysv/chapter08/aboutdebug.html new file mode 100644 index 0000000..2a1cdd1 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/aboutdebug.html @@ -0,0 +1,136 @@ + + + + + + 8.81. Об отладочных символах + + + + + + + + +
+

+ 8.81. Об + отладочных символах +

+

+ Большинство программ и библиотек по умолчанию компилируются с + отладочными символами (gcc с параметром -g). Это означает, что при отладке + программы или библиотеки, которые были скомпилированы с + использованием отладочной информации, отладчик может предоставить не + только адреса памяти, но и имена подпрограмм и переменных. +

+

+ Включение отладочных символов значительно увеличивает размер + программы или библиотеки. Ниже приведена информация по объему + пространства, занимаемого отладочными символами: +

+
+
    +
  • +

    + Двоичный файл bash с отладочными символами: + 1200 KB +

    +
  • +
  • +

    + Двоичный файл bash без отладочных символов: + 480 KB (на 60% меньше) +

    +
  • +
  • +

    + Файлы Glibc и GCC (/lib и + /usr/lib) с отладочными + символами: 87 MB +

    +
  • +
  • +

    + Файлы Glibc и GCC без отладочных символов: 16 MB (на 82% + меньше) +

    +
  • +
+
+

+ Размеры могут варьироваться в зависимости от используемого + компилятора и библиотеки Си, но программа, в которой были удалены + отладочные символы, обычно примерно на 50-80% меньше, чем ее аналог с + ними. Поскольку большинство пользователей никогда не будут + использовать отладчик в своем программном обеспечении, удаление + отладочных символов может освободить много места на диске. В + следующем разделе показано, как удалить все отладочные символы из + программ и библиотек. +

+
+ + + diff --git a/lfs-12.0-sysv/chapter08/acl.html b/lfs-12.0-sysv/chapter08/acl.html new file mode 100644 index 0000000..c3fafa5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/acl.html @@ -0,0 +1,215 @@ + + + + + + 8.23. Acl-2.3.1 + + + + + + + + +
+

+ 8.23. Acl-2.3.1 +

+
+

+ Пакет Acl содержит утилиты для администрирования списков контроля + доступа, которые используются для определения расширенных + дискреционных прав доступа к файлам и каталогам. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 6.1 MB +
+
+
+
+
+

+ 8.23.1. Установка пакета Acl +

+

+ Подготовьте Acl к компиляции: +

+
./configure --prefix=/usr         \
+            --disable-static      \
+            --docdir=/usr/share/doc/acl-2.3.1
+

+ Скомпилируйте пакет: +

+
make
+

+ Тесты Acl необходимо запускать в файловой системе, поддерживающей + списки контроля доступа, после сборки пакета Coreutils с использованием библиотек Acl. По + желанию вернитесь к этому пакету и запустите make check после того, как будет + собран пакет Coreutils. +

+

+ Установите пакет: +

+
make install
+
+
+

+ 8.23.2. Содержимое + пакета Acl +

+
+
+
+ Установленные программы: + chacl, getfacl, и setfacl +
+
+ Установленные библиотеки: + libacl.so +
+
+ Созданные каталоги: + /usr/include/acl и + /usr/share/doc/acl-2.3.1 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ chacl +

+
+

+ Изменяет список контроля доступа файла или каталога +

+
+

+ getfacl +

+
+

+ Получает списки контроля доступа файла +

+
+

+ setfacl +

+
+

+ Устанавливает списки контроля доступа к файлам +

+
+

+ libacl +

+
+

+ Содержит библиотечные функции для управления списками + контроля доступа. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/attr.html b/lfs-12.0-sysv/chapter08/attr.html new file mode 100644 index 0000000..fe73baf --- /dev/null +++ b/lfs-12.0-sysv/chapter08/attr.html @@ -0,0 +1,214 @@ + + + + + + 8.22. Attr-2.5.1 + + + + + + + + +
+

+ 8.22. Attr-2.5.1 +

+
+

+ Пакет Attr содержит утилиты для управления расширенными атрибутами + объектов файловой системы. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 4.1 MB +
+
+
+
+
+

+ 8.22.1. Установка пакета Attr +

+

+ Подготовьте Attr к компиляции: +

+
./configure --prefix=/usr     \
+            --disable-static  \
+            --sysconfdir=/etc \
+            --docdir=/usr/share/doc/attr-2.5.1
+

+ Скомпилируйте пакет: +

+
make
+

+ Тесты необходимо запускать в файловой системе, которая поддерживает + расширенные атрибуты, например, ext2, ext3 или ext4. Чтобы + протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.22.2. Содержимое + пакета Attr +

+
+
+
+ Установленные программы: + attr, getfattr, и setfattr +
+
+ Установленные библиотеки: + libattr.so +
+
+ Созданные каталоги: + /usr/include/attr и + /usr/share/doc/attr-2.5.1 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ attr +

+
+

+ Расширяет атрибуты объектов файловой системы +

+
+

+ getfattr +

+
+

+ Получает расширенные атрибуты объектов файловой системы +

+
+

+ setfattr +

+
+

+ Устанавливает расширенные атрибуты объектов файловой + системы +

+
+

+ libattr +

+
+

+ Содержит библиотечные функции для управления расширенными + атрибутами. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/autoconf.html b/lfs-12.0-sysv/chapter08/autoconf.html new file mode 100644 index 0000000..f346be4 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/autoconf.html @@ -0,0 +1,310 @@ + + + + + + 8.45. Autoconf-2.71 + + + + + + + + +
+

+ 8.45. + Autoconf-2.71 +

+
+

+ Пакет Autoconf содержит программы для создания сценариев оболочки, + которые могут автоматически настраивать исходный код. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU (около 6.0 SBU с + тестами) +
+
+ Требуемое дисковое + пространство: 24 MB +
+
+
+
+
+

+ 8.45.1. Установка пакета Autoconf +

+

+ Во-первых, исправьте несколько проблем с тестами, обнаруженными в + bash-5.2 и более поздних версиях: +

+
sed -e 's/SECONDS|/&SHLVL|/'               \
+    -e '/BASH_ARGV=/a\        /^SHLVL=/ d' \
+    -i.orig tests/local.at
+

+ Подготовьте Autoconf к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+
+ [Примечание] +

+ Примечание +

+

+ Время тестирования autoconf можно значительно сократить на + многоядерных системах. Для этого добавьте TESTSUITEFLAGS=-j<N> к + строке выше. Использование аргумента -j4 может сократить время + тестирования более чем на 60 процентов. +

+
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.45.2. + Содержимое пакета Autoconf +

+
+
+
+ Установленные программы: + autoconf, autoheader, autom4te, + autoreconf, autoscan, autoupdate, и ifnames +
+
+ Созданные каталоги: + /usr/share/autoconf +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ autoconf +

+
+

+ Генерирует сценарии оболочки, которые автоматически + настраивают пакеты исходного кода программного + обеспечения для адаптации ко многим типам Unix-подобных + систем; создаваемые сценарии независимы—для их запуска не + требуется программа autoconf. +

+
+

+ autoheader +

+
+

+ Инструмент для создания файлов шаблонов операторов C + #define для + использования в configure +

+
+

+ autom4te +

+
+

+ Обертка для макропроцессора M4 +

+
+

+ autoreconf +

+
+

+ Автоматически запускает autoconf, autoheader, + aclocal, + automake, + gettextize + и libtoolize в правильном + порядке, чтобы сэкономить время, при внесении изменений в + файлы шаблонов autoconf и automake. +

+
+

+ autoscan +

+
+

+ Помогает создать файл configure.in для пакета программного + обеспечения; проверяет исходные файлы в дереве каталогов, + ищет в них распространенные проблемы с переносимостью и + создает файл configure.scan, который является + предварительным для configure.in. +

+
+

+ autoupdate +

+
+

+ Изменяет файл configure.in, + вызывающий макросы autoconf по их старым + именам для использования текущих имен макросов +

+
+

+ ifnames +

+
+

+ Помогает при написании файла configure.in для пакета; выводит + идентификаторы, которые использует пакет в условных + выражениях препроцессора C. (Если пакет уже был настроен + для некоторой переносимости, эта программа может помочь + определить, что нужно проверить сценарию configure. Он также + может заполнить пробелы в файле configure.in, сгенерированном командой + autoscan.) +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/automake.html b/lfs-12.0-sysv/chapter08/automake.html new file mode 100644 index 0000000..58fe7b9 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/automake.html @@ -0,0 +1,231 @@ + + + + + + 8.46. Automake-1.16.5 + + + + + + + + +
+

+ 8.46. + Automake-1.16.5 +

+
+

+ Пакет Automake содержит программы генерации Makefile для + использования с Autoconf. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU (около 7.0 SBU с + тестами) +
+
+ Требуемое дисковое + пространство: 114 MB +
+
+
+
+
+

+ 8.46.1. Установка пакета Automake +

+

+ Подготовьте Automake к компиляции: +

+
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
+

+ Скомпилируйте пакет: +

+
make
+

+ Использование опции make -j4 ускоряет тесты даже в системах с одним + процессором из-за внутренних задержек в отдельных тестах. Чтобы + протестировать пакет, выполните: +

+
make -j4 check
+

+ Известно, что тест t/subobj.sh не проходит. +

+

+ Установите пакет: +

+
make install
+
+
+

+ 8.46.2. + Содержимое пакета Automake +

+
+
+
+ Установленные программы: + aclocal, aclocal-1.16 (жестко связан с + aclocal), automake, и automake-1.16 (жестко связан с + automake) +
+
+ Созданные каталоги: + /usr/share/aclocal-1.16, + /usr/share/automake-1.16, и + /usr/share/doc/automake-1.16.5 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ aclocal +

+
+

+ Генерирует файлы aclocal.m4 + на основе содержимого файла configure.in +

+
+

+ aclocal-1.16 +

+
+

+ Жесткая ссылка на aclocal +

+
+

+ automake +

+
+

+ Инструмент для автоматического создания Makefile.in из файлов Makefile.am [Чтобы создать все файлы + Makefile.in запустите эту + программу в каталоге верхнего уровня. Сканируя файл + configure.in, он + автоматически находит все подходящие файлы Makefile.am и создает соответствующий + Makefile.in.] +

+
+

+ automake-1.16 +

+
+

+ Жесткая ссылка на automake +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/bash.html b/lfs-12.0-sysv/chapter08/bash.html new file mode 100644 index 0000000..6a67454 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/bash.html @@ -0,0 +1,265 @@ + + + + + + 8.35. Bash-5.2.15 + + + + + + + + +
+

+ 8.35. Bash-5.2.15 +

+
+

+ Пакет Bash содержит Bourne-Again Shell. +

+
+
+
+ Приблизительное время сборки: + 1.1 SBU +
+
+ Требуемое дисковое + пространство: 52 MB +
+
+
+
+
+

+ 8.35.1. Установка пакета Bash +

+

+ Подготовьте Bash к компиляции: +

+
./configure --prefix=/usr             \
+            --without-bash-malloc     \
+            --with-installed-readline \
+            --docdir=/usr/share/doc/bash-5.2.15
+
+

+ Значение нового параметра настройки: +

+
+
+ --with-installed-readline +
+
+

+ Этот параметр указывает Bash использовать библиотеку + readline, которая уже + установлена в системе, а не собственную версию readline. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Перейдите к разделу «Установка пакета», если не планируете + запускать тесты. +

+

+ Перед запуском тестов, убедитесь, что пользователь tester может писать в каталог с исходниками: +

+
chown -Rv tester .
+

+ Набор тестов пакета предназначен для запуска пользователем без + полномочий root, которому принадлежит терминал, подключенный к + стандартному вводу. Чтобы удовлетворить это требование, создайте + новый псевдотерминал с помощью Expect и запустите тесты от имени пользователя + tester: +

+
su -s /usr/bin/expect tester << EOF
+set timeout -1
+spawn make tests
+expect eof
+lassign [wait] _ _ _ value
+exit $value
+EOF
+

+ Набор тестов использует diff для определения разницы + между выводом тестового сценария и ожидаемым результатом. Любой + вывод diff (с + префиксом < и >) указывает на сбой теста, если нет + сообщение о том, что различия можно проигнорировать. Известно, что + один тест с именем run-builtins не + работает на некоторых хост-дистрибутивах, указывая на различия в + первой строке выходных данных. +

+

+ Установите пакет: +

+
make install
+

+ Запустите только что скомпилированную программу bash (заменив ту, которая + выполняется в данный момент): +

+
exec /usr/bin/bash --login
+
+
+

+ 8.35.2. Содержимое + пакета Bash +

+
+
+
+ Установленные программы: + bash, bashbug и sh (ссылка на + bash) +
+
+ Созданные каталоги: + /usr/include/bash, /usr/lib/bash, and + /usr/share/doc/bash-5.2.15 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ bash +

+
+

+ Широко распространенный командный интерпретатор. + Выполняет различные дополнения и подстановки в переданной + командной строке перед её выполнением, что делает этот + интерпретатор мощным инструментом +

+
+

+ bashbug +

+
+

+ Скрипт, помогающий пользователю составлять и отправлять + по почте отчеты об ошибках bash +

+
+

+ sh +

+
+

+ Симлинк на программу bash; при вызове + sh, + bash + пытается максимально точно имитировать поведение + sh, при + этом также соответствуя стандарту POSIX. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/bc.html b/lfs-12.0-sysv/chapter08/bc.html new file mode 100644 index 0000000..429ce7d --- /dev/null +++ b/lfs-12.0-sysv/chapter08/bc.html @@ -0,0 +1,214 @@ + + + + + + 8.13. Bc-6.6.0 + + + + + + + + +
+

+ 8.13. Bc-6.6.0 +

+
+

+ Пакет Bc содержит язык для обработки чисел произвольной точности. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 7.7 MB +
+
+
+
+
+

+ 8.13.1. Установка пакета Bc +

+

+ Подготовьте Bc к компиляции: +

+
CC=gcc ./configure --prefix=/usr -G -O3 -r
+
+

+ Значение параметров настройки: +

+
+
+ CC=gcc +
+
+

+ Этот параметр определяет используемый компилятор +

+
+
+ -G +
+
+

+ Пропускает часть тестов, которые не будут работать, пока не + будет установлена программа bc. +

+
+
+ -O3 +
+
+

+ Указывает используемый уровень оптимизации. +

+
+
+ -r +
+
+

+ Включает использование Readline для улучшения функции + редактирования строк в bc. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать bc, запустите: +

+
make test
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.13.2. Содержимое + пакета Bc +

+
+
+
+ Установленные программы: + bc и dc +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ bc +

+
+

+ Калькулятор командной строки +

+
+

+ dc +

+
+

+ Калькулятор командной строки с обратной польской нотацией +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/binutils.html b/lfs-12.0-sysv/chapter08/binutils.html new file mode 100644 index 0000000..7248a33 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/binutils.html @@ -0,0 +1,656 @@ + + + + + + 8.18. Binutils-2.41 + + + + + + + + +
+

+ 8.18. + Binutils-2.41 +

+
+

+ Пакет Binutils содержит компоновщик, ассемблер и другие инструменты + для работы с объектными файлами. +

+
+
+
+ Приблизительное время сборки: + 2.2 SBU +
+
+ Требуемое дисковое + пространство: 2.7 GB +
+
+
+
+
+

+ 8.18.1. Установка пакета Binutils +

+

+ Документация Binutils рекомендует выполнять компиляцию в отдельном + каталоге: +

+
mkdir -v build
+cd       build
+

+ Подготовьте Binutils к компиляции: +

+
../configure --prefix=/usr       \
+             --sysconfdir=/etc   \
+             --enable-gold       \
+             --enable-ld=default \
+             --enable-plugins    \
+             --enable-shared     \
+             --disable-werror    \
+             --enable-64-bit-bfd \
+             --with-system-zlib
+
+

+ Значение параметров настройки: +

+
+
+ --enable-gold +
+
+

+ Собирает компоновщик gold и устанавливает его как ld.gold + (вместе с компоновщиком по умолчанию). +

+
+
+ --enable-ld=default +
+
+

+ Собирает оригинальный компоновщик bfd и устанавливает его как + ld (компоновщик по умолчанию) и как ld.bfd +

+
+
+ --enable-plugins +
+
+

+ Включает поддержку плагинов для компоновщика. +

+
+
+ --enable-64-bit-bfd +
+
+

+ Включает 64-разрядную поддержку (на хостах с ограниченным + размерам слов). Может не понадобится в 64-разрядных системах, + но вреда от этого не будет. +

+
+
+ --with-system-zlib +
+
+

+ Использовать установленную библиотеку zlib вместо сборки + собственной. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make tooldir=/usr
+
+

+ Значение параметра make: +

+
+
+ tooldir=/usr +
+
+

+ Обычно для tooldir (каталога, в котором будут расположены + исполняемые файлы) установлено значение $(exec_prefix)/$(target_alias). Например, + машины x86_64 преобразуют это значение в /usr/x86_64-unknown-linux-gnu. Поскольку + это пользовательская система, то целевой каталог в + /usr не требуется. Параметр + $(exec_prefix)/$(target_alias) + использовался, если бы система применялась для + кросс-компиляции (например, при компиляции пакета на + компьютере Intel, который генерирует код, который может быть + выполнен на компьютерах PowerPC). +

+
+
+
+
+ [Важно] +

+ Важно +

+

+ Набор тестов для Binutils в этом разделе считается критически + важным. Ни в коем случае не пропускайте его. +

+
+

+ Выполните тестирование: +

+
make -k check
+

+ Чтобы получить список неудачных тестов, запустите: +

+
grep '^FAIL:' $(find -name '*.log')
+

+ Двенадцать тестов завершаются неудачно в наборе тестов gold, когда + GCC собирается с параметрами --enable-default-pie и --enable-default-ssp. +

+

+ Также известно, что завершаются неудачно три теста в пакете + gprofng. +

+

+ Установите пакет: +

+
make tooldir=/usr install
+

+ Удалите бесполезные статические библиотеки: +

+
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a
+
+
+

+ 8.18.2. + Содержимое пакета Binutils +

+
+
+
+ Установленные программы: + addr2line, ar, as, c++filt, dwp, elfedit, + gprof, gprofng, ld, ld.bfd, ld.gold, nm, objcopy, objdump, + ranlib, readelf, size, strings и strip +
+
+ Установленные библиотеки: + libbfd.so, libctf.so, libctf-nobfd.so, + libgprofng.so, libopcodes.so и libsframe.so +
+
+ Созданные каталоги: + /usr/lib/ldscripts +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ addr2line +

+
+

+ Переводит адреса программ в имена файлов и номера строк; + учитывая адрес и имя исполняемого файла, использует + отладочную информацию в исполняемом файле, для + определения файла исходного кода и номера строки, + ассоциированной с адресом +

+
+

+ ar +

+
+

+ Создаёт, изменяет и распаковывает архивы +

+
+

+ as +

+
+

+ Ассемблер, который собирает результат работы gcc в объектные файлы +

+
+

+ c++filt +

+
+

+ Используется компоновщиком для исправления символов C++ и + Java и предотвращения конфликтов перегруженных функций. +

+
+

+ dwp +

+
+

+ Утилита для упаковки DWARF +

+
+

+ elfedit +

+
+

+ Обновляет ELF заголовки в ELF файлах +

+
+

+ gprof +

+
+

+ Отображает в графическом виде информацию о профилировании +

+
+

+ gprofng +

+
+

+ Собирает и анализирует данные о производительности +

+
+

+ ld +

+
+

+ Компоновщик, который объединяет несколько объектных и + архивных файлов в один файл, перемещая их данные и + связывая символическими ссылками +

+
+

+ ld.gold +

+
+

+ Урезанная версия ld, которая поддерживает только формат + объектных файлов elf +

+
+

+ ld.bfd +

+
+

+ Жесткая ссылка на ld +

+
+

+ nm +

+
+

+ Выводит список символов, используемых в данном объектном + файле +

+
+

+ objcopy +

+
+

+ Преобразует один тип объектного файла в другой +

+
+

+ objdump +

+
+

+ Отображает информацию о данном объектном файле; можно + указать параметры, определяющие, какая конкретно + информация будет отображаться. Отображаемая информация + полезна для программистов, которые работают над + инструментами, используемыми при компиляции +

+
+

+ ranlib +

+
+

+ Создает индекс содержимого архива и сохраняет его в + архиве; в индексе перечислены все символы, определенные в + перемещаемых объектных файлах, содержащихся в архиве +

+
+

+ readelf +

+
+

+ Отображает информацию о двоичных файлах типа ELF +

+
+

+ size +

+
+

+ Отображает размеры секций и общий размер указанных + объектных файлов +

+
+

+ strings +

+
+

+ Выводит для каждого указанного файла последовательности + печатаемых символов, которые имеют по крайней мере + указанную длину (по умолчанию четыре); для объектных + файлов по умолчанию печатаются только строки из секций + инициализации и загрузки, в то время как для других + файлов он сканирует весь файл. +

+
+

+ strip +

+
+

+ Удаляет символы из объектных файлов +

+
+

+ libbfd +

+
+

+ Библиотека дескрипторов двоичных файлов +

+
+

+ libctf +

+
+

+ Библиотека отладки формата Compat ANSI-C Type +

+
+

+ libctf-nobfd +

+
+

+ Вариант libctf, не использующий функциональность libbfd. +

+
+

+ libgprofng +

+
+

+ Библиотека, содержащая большинство подпрограмм, + используемых gprofng +

+
+

+ libopcodes +

+
+

+ Библиотека для работы с опкодами—«читаемыми» + версиями инструкций для процессора. Используется для + сборки таких утилит как objdump +

+
+

+ libsframe +

+
+

+ Библиотека для поддержки обратной онлайн-трассировки с + использованием простого декодера разделов .sframe. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/bison.html b/lfs-12.0-sysv/chapter08/bison.html new file mode 100644 index 0000000..cab98f5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/bison.html @@ -0,0 +1,203 @@ + + + + + + 8.33. Bison-3.8.2 + + + + + + + + +
+

+ 8.33. Bison-3.8.2 +

+
+

+ Пакет Bison содержит генератор синтаксического анализа. +

+
+
+
+ Приблизительное время сборки: + 2.2 SBU +
+
+ Требуемое дисковое + пространство: 62 MB +
+
+
+
+
+

+ 8.33.1. Установка пакета Bison +

+

+ Подготовьте Bison к компиляции: +

+
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
+

+ Скомпилируйте пакет: +

+
make
+

+ Для тестирования пакета (около 5,5 SBU), выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.33.2. Содержимое + пакета Bison +

+
+
+
+ Установленные программы: + bison и yacc +
+
+ Установленные библиотеки: + liby.a +
+
+ Созданные каталоги: + /usr/share/bison +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ bison +

+
+

+ Генерирует из набора правил программу для анализа + структуры текстовых файлов; Bison является заменой Yacc + (Yet Another Compiler Compiler) +

+
+

+ yacc +

+
+

+ Обертка для bison, предназначенная + для программ, которые до сих пор вызывают yacc вместо + bison; он + вызывает bison с параметром + -y +

+
+

+ liby +

+
+

+ Библиотека Yacc, содержащая реализации Yacc-совместимых + функций yyerror и + main; обычно эта библиотека + не очень нужна, но требуется POSIX +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/bzip2.html b/lfs-12.0-sysv/chapter08/bzip2.html new file mode 100644 index 0000000..f9f84a5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/bzip2.html @@ -0,0 +1,394 @@ + + + + + + 8.7. Bzip2-1.0.8 + + + + + + + + +
+

+ 8.7. Bzip2-1.0.8 +

+
+

+ Пакет Bzip2 содержит программы для сжатия и распаковки файлов. + Сжатие текстовых файлов с помощью bzip2 даёт больший процент + сжатия, чем традиционный gzip. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 7.2 MB +
+
+
+
+
+

+ 8.7.1. Установка пакета Bzip2 +

+

+ Примените патч, который установит документацию для этого пакета: +

+
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
+

+ Следующая команда гарантирует установку символических ссылок с + относительным путём: +

+
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
+

+ Убедитесь, что справочные страницы установлены в правильном месте: +

+
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
+

+ Подготовьте Bzip2 к компиляции: +

+
make -f Makefile-libbz2_so
+make clean
+
+

+ Значение параметра make: +

+
+
+ -f + Makefile-libbz2_so +
+
+

+ Этот параметр позволяет выполнить сборку, с использованием + другого Makefile, в данном + случае Makefile-libbz2_so, + который создает динамическую библиотеку libbz2.so и связывает с ней Bzip2. +

+
+
+
+

+ Скомпилируйте и протестируйте пакет: +

+
make
+

+ Установите пакет: +

+
make PREFIX=/usr install
+

+ Установите библиотеку: +

+
cp -av libbz2.so.* /usr/lib
+ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
+

+ Установите общий бинарный файл bzip2 в каталог /usr/bin, и замените две копии bzip2 символическими ссылками: +

+
cp -v bzip2-shared /usr/bin/bzip2
+for i in /usr/bin/{bzcat,bunzip2}; do
+  ln -sfv bzip2 $i
+done
+

+ Удалите ненужную статическую библиотеку: +

+
rm -fv /usr/lib/libbz2.a
+
+
+

+ 8.7.2. Содержимое + пакета Bzip2 +

+
+
+
+ Установленные программы: + bunzip2 (ссылка на bzip2), bzcat (ссылка + на bzip2), bzcmp (ссылка на bzdiff), bzdiff, bzegrep (ссылка на + bzgrep), bzfgrep (ссылка на bzgrep), bzgrep, bzip2, + bzip2recover, bzless (ссылка на bzmore) и bzmore +
+
+ Установленные библиотеки: + libbz2.so +
+
+ Созданные каталоги: + /usr/share/doc/bzip2-1.0.8 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ bunzip2 +

+
+

+ Распаковывает bzip-файлы +

+
+

+ bzcat +

+
+

+ Распаковывает в поток стандартного вывода +

+
+

+ bzcmp +

+
+

+ Запускает программу cmp для bzip файлов +

+
+

+ bzdiff +

+
+

+ Запускает программу diff для bzip файлов +

+
+

+ bzegrep +

+
+

+ Запускает программу egrep для bzip файлов +

+
+

+ bzfgrep +

+
+

+ Запускает программу fgrep для bzip файлов +

+
+

+ bzgrep +

+
+

+ Запускает программу grep для bzip файлов +

+
+

+ bzip2 +

+
+

+ Сжимает файлы, используя алгоритм сжатия текста с блочной + сортировкой Барроуза — Уилера и кодирование Хафмана; + степень сжатия лучше, чем у более традиционных + архиваторов, использующих алгоритмы «Lempel-Ziv», + например gzip +

+
+

+ bzip2recover +

+
+

+ Пытается восстанавливать данные из поврежденных архивов +

+
+

+ bzless +

+
+

+ Запускает программу less для bzip файлов +

+
+

+ bzmore +

+
+

+ Запускает программу more для bzip файлов +

+
+

+ libbz2 +

+
+

+ Библиотека, реализующая сжатие данных без потерь с + использованием алгоритма Барроуза-Уилера. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/chapter08.html b/lfs-12.0-sysv/chapter08/chapter08.html new file mode 100644 index 0000000..0783d75 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/chapter08.html @@ -0,0 +1,337 @@ + + + + + + Глава 8. Установка базового системного программного обеспечения + + + + + + + + +
+

+ 8. + Установка базового системного программного обеспечения +

+
+

+ Содержание +

+ +
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/check.html b/lfs-12.0-sysv/chapter08/check.html new file mode 100644 index 0000000..eb4705d --- /dev/null +++ b/lfs-12.0-sysv/chapter08/check.html @@ -0,0 +1,180 @@ + + + + + + 8.57. Check-0.15.2 + + + + + + + + +
+

+ 8.57. Check-0.15.2 +

+
+

+ Check - это фреймворк модульного тестирования для языка C. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU (около 1.6 SBU с тестами) +
+
+ Требуемое дисковое + пространство: 12 MB +
+
+
+
+
+

+ 8.57.1. Установка пакета Check +

+

+ Подготовить Check к компиляции: +

+
./configure --prefix=/usr --disable-static
+

+ Соберите пакет: +

+
make
+

+ Когда компиляция будет завершена, запустите набор тестов: +

+
make check
+

+ Установите пакет: +

+
make docdir=/usr/share/doc/check-0.15.2 install
+
+
+

+ 8.57.2. Содержимое + пакета Check +

+
+
+
+ Установленные программы: + checkmk +
+
+ Установленные библиотеки: + libcheck.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ checkmk +

+
+

+ Сценарий Awk для генерации unit-тестов C, для + использования с платформой модульного тестирования Check. +

+
+

+ libcheck.so +

+
+

+ Содержит функции, позволяющие вызывать Check из программы + тестирования. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/cleanup.html b/lfs-12.0-sysv/chapter08/cleanup.html new file mode 100644 index 0000000..483de0c --- /dev/null +++ b/lfs-12.0-sysv/chapter08/cleanup.html @@ -0,0 +1,119 @@ + + + + + + 8.83. Очистка + + + + + + + + +
+

+ 8.83. Очистка +

+

+ Наконец, удалите некоторые лишние файлы, оставшиеся после запуска + тестов: +

+
rm -rf /tmp/*
+

+ Также в каталогах /usr/lib и /usr/libexec также есть несколько файлов + с расширением .la. Это файлы «архива libtool». Как было сказано ранее, в + современной системе Linux файлы .la libtool необходимы только для + libltdl. Предполагается, что libltdl не будет загружать библиотеки в + LFS, кроме этого известно, что некоторые файлы .la могут нарушить + сборку пакетов BLFS. Удалите эти файлы сейчас: +

+
find /usr/lib /usr/libexec -name \*.la -delete
+

+ Дополнительные сведения об архивных файлах libtool см. в разделе BLFS + + "О файлах архива Libtool (.la)". +

+

+ Компилятор, собранный в Глава 6 и + + Глава 7 все еще установлен, но больше не нужен. Удалите его + с помощью команды: +

+
find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
+

+ Наконец, удалите временную учетную запись пользователя 'tester', + созданную в начале предыдущей главы. +

+
userdel -r tester
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/coreutils.html b/lfs-12.0-sysv/chapter08/coreutils.html new file mode 100644 index 0000000..ec3deef --- /dev/null +++ b/lfs-12.0-sysv/chapter08/coreutils.html @@ -0,0 +1,1792 @@ + + + + + + 8.56. Coreutils-9.3 + + + + + + + + +
+

+ 8.56. + Coreutils-9.3 +

+
+

+ Пакет Coreutils содержит основные утилиты, необходимые каждой + операционной системе. +

+
+
+
+ Приблизительное время сборки: + 0.9 SBU +
+
+ Требуемое дисковое + пространство: 165 MB +
+
+
+
+
+

+ 8.56.1. Установка пакета Coreutils +

+

+ Стандарт POSIX требует, чтобы программы пакета Coreutils правильно + распознавали символы даже в случае, если используются многобайтовые + локали. Следующий патч исправляет несоответствие этому требованию, + а также другие ошибки, касающиеся интернационализации: +

+
patch -Np1 -i ../coreutils-9.3-i18n-1.patch
+
+ [Примечание] +

+ Примечание +

+

+ В этом патче было обнаружено много ошибок. Сообщая о новых + ошибках разработчикам Coreutils, сначала проверьте, + воспроизводятся ли эти ошибки без этого исправления. +

+
+

+ Теперь подготовьте Coreutils к компиляции: +

+
autoreconf -fiv
+FORCE_UNSAFE_CONFIGURE=1 ./configure \
+            --prefix=/usr            \
+            --enable-no-install-program=kill,uptime
+
+

+ Значение параметров настройки: +

+
+
+ autoreconf +
+
+

+ Патч для интернационализации изменил систему сборки пакета, + поэтому файлы конфигурации необходимо сгенерировать заново. +

+
+
+ FORCE_UNSAFE_CONFIGURE=1 +
+
+

+ Эта переменная среды позволяет собрать пакет от имени + пользователя root. +

+
+
+ --enable-no-install-program=kill,uptime +
+
+

+ Назначение этого параметра — запретить Coreutils + устанавливать программы, которые будут установлены другими + пакетами. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Если вы не планируете запускать набор тестов, перейдите к разделу + «Установка + пакета». +

+

+ Теперь набор тестов готов к запуску. Сначала запустите тесты, + предназначенные для запуска от имени пользователя root: +

+
make NON_ROOT_USERNAME=tester check-root
+

+ Мы собираемся выполнить остальные тесты от имени пользователя + tester. Некоторые тесты требуют, + чтобы пользователь был членом более чем одной группы. Чтобы эти + тесты не были пропущены, добавьте временную группу и включите в неё + пользователя tester: +

+
groupadd -g 102 dummy -U tester
+

+ Исправьте некоторые разрешения, чтобы пользователь без полномочий + root мог компилировать и запускать + тесты: +

+
chown -Rv tester . 
+

+ Теперь запустите тесты: +

+
su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
+

+ Тест test-getlogin может завершиться ошибкой в среде chroot LFS. +

+

+ Удалить временную группу: +

+
groupdel dummy
+

+ Установите пакет: +

+
make install
+

+ Переместите программы туда, где они должны быть в соответствие со + спецификациями FHS: +

+
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
+
+
+

+ 8.56.2. + Содержимое пакета Coreutils +

+
+
+
+ Установленные программы: + [, 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 +
+
+ Установленные библиотеки: + libstdbuf.so (in + /usr/libexec/coreutils) +
+
+ Созданные каталоги: + /usr/libexec/coreutils +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ [ +

+
+

+ Это команда /usr/bin/[, которая является синонимом + команды test +

+
+

+ base32 +

+
+

+ Кодирует и декодирует данные в соответствии со + спецификацией base32 (RFC 4648) +

+
+

+ base64 +

+
+

+ Кодирует и декодирует данные в соответствии со + спецификацией base64 (RFC 4648) +

+
+

+ b2sum +

+
+

+ Выводит или проверяет контрольные суммы BLAKE2 + (512-битные) +

+
+

+ basename +

+
+

+ Удаляет любой путь и заданный суффикс из имени файла +

+
+

+ basenc +

+
+

+ Кодирует или декодирует данные с использованием различных + алгоритмов +

+
+

+ cat +

+
+

+ Присоединяет файлы к стандартному выходному потоку +

+
+

+ chcon +

+
+

+ Изменяет контекст безопасности для файлов и каталогов +

+
+

+ chgrp +

+
+

+ Изменяет владельцев группы для файлов и директорий +

+
+

+ chmod +

+
+

+ Изменяет разрешения каждого файла на заданный режим; + режим может быть либо символьным представлением вносимых + изменений, либо восьмеричным числом, представляющим новые + разрешения. +

+
+

+ chown +

+
+

+ Изменяет принадлежность файлов и директорий пользователю + и/или группе +

+
+

+ chroot +

+
+

+ Запускает команду с указанным каталогом в качестве + корневого каталога / +

+
+

+ cksum +

+
+

+ Выводит контрольную сумму Cyclic Redundancy Check (CRC) и + количество байтов для каждого указанного файла. +

+
+

+ comm +

+
+

+ Сравнивает два отсортированных файла, выводя в три + столбца уникальные и общие строки. +

+
+

+ cp +

+
+

+ Копирует файлы +

+
+

+ csplit +

+
+

+ Разбивает заданный файл на несколько новых файлов, + разделяя их в соответствии с заданными шаблонами или + номерами строк и выводя количество байтов для каждого + нового файла. +

+
+

+ cut +

+
+

+ Выдает участки строк, выбирая части в соответствии с + заданными полями или позициями +

+
+

+ date +

+
+

+ Отображает текущее дату и время в заданном формате или + устанавливает системные дату и время +

+
+

+ dd +

+
+

+ Копирует файл, используя заданный размер блока и + количество, при необходимости выполняя преобразования на + нем. +

+
+

+ df +

+
+

+ Сообщает объем доступного (и используемого) дискового + пространства во всех смонтированных файловых системах или + только в файловых системах, содержащих выбранные файлы. +

+
+

+ dir +

+
+

+ Выводит содержимое заданного каталога (так же, как + команда ls) +

+
+

+ dircolors +

+
+

+ Выводит команды для установки переменной среды + LS_COLOR для изменения + цветовой схемы, используемой ls. +

+
+

+ dirname +

+
+

+ Извлекает часть(части) каталога из заданного(заданных) + имени(имён) +

+
+

+ du +

+
+

+ Сообщает объем дискового пространства, используемого + текущим каталогом, каждым из заданных каталогов (включая + все подкаталоги) или каждым из заданных файлов. +

+
+

+ echo +

+
+

+ Отображает указанные строки +

+
+

+ env +

+
+

+ Запускает команду в модифицированной среде окружения +

+
+

+ expand +

+
+

+ Конвертирует символы табуляции в пробелы +

+
+

+ expr +

+
+

+ Вычисляет выражения +

+
+

+ factor +

+
+

+ Выводит простые множители указанных целых чисел +

+
+

+ false +

+
+

+ Ничего не делает, указывает на неудачу; всегда + завершается с кодом состояния, указывающим на сбой +

+
+

+ fmt +

+
+

+ Форматирует абзацы в указанных файлах +

+
+

+ fold +

+
+

+ Выполняет перенос строк в указанных файлах +

+
+

+ groups +

+
+

+ Сообщает о принадлежности пользователя к группам +

+
+

+ head +

+
+

+ Выводит первые десять строк (или заданное количество + строк) каждого заданного файла. +

+
+

+ hostid +

+
+

+ Выводит числовой идентификатор хоста (в шестнадцатеричном + формате) +

+
+

+ id +

+
+

+ Выводит действующий идентификатор пользователя, + идентификатор группы и принадлежность к группам для + текущего или для указанного пользователя +

+
+

+ install +

+
+

+ Копирует файлы, одновременно устанавливая для них права + доступа, и, если возможно, устанавливая для них владельца + и группу +

+
+

+ join +

+
+

+ Объединяет строки, которые имеют идентичные объединяемые + поля в двух различных файлах +

+
+

+ link +

+
+

+ Создает жесткую ссылку (с указанным именем) на файл +

+
+

+ ln +

+
+

+ Создает жесткие или мягкие (символические) ссылки между + файлами +

+
+

+ logname +

+
+

+ Сообщает имя входа текущего пользователя +

+
+

+ ls +

+
+

+ Выводит список содержимого для каждого заданного каталога +

+
+

+ md5sum +

+
+

+ Выводит или проверяет контрольные суммы Message Digest 5 + (MD5) +

+
+

+ mkdir +

+
+

+ Создает директории с указанными именами +

+
+

+ mkfifo +

+
+

+ Создает "именованный канал" "первым пришел — первым ушел" + (FIFO), в нотации UNIX с заданными именами +

+
+

+ mknod +

+
+

+ Создает узлы устройств с заданными именами; узел + устройства представляет собой специальный символьный + файл, специальный файл блока или FIFO. +

+
+

+ mktemp +

+
+

+ Создает временные файлы безопасным способом; используется + в скриптах +

+
+

+ mv +

+
+

+ Перемещает или переименовывает файлы или каталоги +

+
+

+ nice +

+
+

+ Запускает программу с измененным приоритетом исполнения +

+
+

+ nl +

+
+

+ Нумерует строки в указанных файлах +

+
+

+ nohup +

+
+

+ Запускает команду, невосприимчивую к зависаниям, а ее + вывод перенаправляется в файл журнала +

+
+

+ nproc +

+
+

+ Выводит количество дочерних процессов, доступных для + процесса. +

+
+

+ numfmt +

+
+

+ Преобразует числа в или из удобочитаемых строк +

+
+

+ od +

+
+

+ Вывод дампа файла в восьмеричном и других форматах +

+
+

+ paste +

+
+

+ Объединяет указанные файлы, последовательно соединяя + соответствующие строки рядом друг с другом, разделенные + символами табуляции. +

+
+

+ pathchk +

+
+

+ Проверяет, являются ли имена файлов допустимыми или + переносимыми +

+
+

+ pinky +

+
+

+ Легковесный клиент типа finger; выдает некоторую + информацию о заданных пользователях +

+
+

+ pr +

+
+

+ Разбивает файлы для печати на страницы и столбцы +

+
+

+ printenv +

+
+

+ Выдает значения переменных окружения +

+
+

+ printf +

+
+

+ Выводит аргументы в соответствии с заданным форматом, + подобно функции C printf. +

+
+

+ ptx +

+
+

+ Создает перестановочный индекс по содержимому указанных + файлов с каждым ключевым словом в своем контексте +

+
+

+ pwd +

+
+

+ Сообщает имя текущего рабочего каталога +

+
+

+ readlink +

+
+

+ Выдает значение указанной символической ссылки +

+
+

+ realpath +

+
+

+ Возвращает приведенное к обычному виду полное имя файла +

+
+

+ rm +

+
+

+ Удаляет файлы или каталоги +

+
+

+ rmdir +

+
+

+ Удаляет каталоги, если они пусты +

+
+

+ runcon +

+
+

+ Запускает команду с указанным контекстом безопасности +

+
+

+ seq +

+
+

+ Выдает последовательность чисел из указанного диапазона с + указанным значением приращения +

+
+

+ sha1sum +

+
+

+ Выводит или проверяет контрольные суммы 160-битного + алгоритма безопасного хеширования 1 (SHA1) +

+
+

+ sha224sum +

+
+

+ Выводит или проверяет контрольные суммы 224-битного + алгоритма безопасного хеширования +

+
+

+ sha256sum +

+
+

+ Выводит или проверяет контрольные суммы 256-битного + алгоритма безопасного хеширования +

+
+

+ sha384sum +

+
+

+ Выводит или проверяет контрольные суммы 384-битного + алгоритма безопасного хеширования +

+
+

+ sha512sum +

+
+

+ Выводит или проверяет контрольные суммы 512-битного + алгоритма безопасного хеширования +

+
+

+ shred +

+
+

+ Многократно перезаписывает заданные файлы сложными + шаблонами, что затрудняет восстановление данных. +

+
+

+ shuf +

+
+

+ Перемешивает строки текста +

+
+

+ sleep +

+
+

+ Делает паузу на заданный промежуток времени +

+
+

+ sort +

+
+

+ Сортирует строки в указанных файлах +

+
+

+ split +

+
+

+ Разбивает заданный файл на несколько частей в + соответствии с указанным размером или количеством строк +

+
+

+ stat +

+
+

+ Отображает статус файла или файловой системы +

+
+

+ stdbuf +

+
+

+ Запускает команды с измененными операциями буферизации + для своих стандартных потоков. +

+
+

+ stty +

+
+

+ Устанавливает или сообщает настройки терминала +

+
+

+ sum +

+
+

+ Выводит контрольную сумму и количество блоков для каждого + заданного файла +

+
+

+ sync +

+
+

+ Сбрасывает буферы файловой системы; он принудительно + записывает измененные блоки на диск и обновляет суперблок +

+
+

+ tac +

+
+

+ Конкатенация содержимого указанных файлов в обратном + порядке +

+
+

+ tail +

+
+

+ Выводит последние десять строк (или заданное количество + строк) каждого указанного файла +

+
+

+ tee +

+
+

+ Считывает данные со стандартного потока ввода, записывает + как в стандартный вывод, так и в указанные файлы +

+
+

+ test +

+
+

+ Сравнивает значения и проверяет типы файловs +

+
+

+ timeout +

+
+

+ Запускает команду с ограничением по времени +

+
+

+ touch +

+
+

+ Изменяет временные метки файлов, устанавливая время + доступа и модификации данных файлов на текущее время; + несуществующие файлы создаются с нулевой длиной +

+
+

+ tr +

+
+

+ Переводит, сжимает и удаляет заданные символы из + стандартного потока +

+
+

+ true +

+
+

+ Ничего не делает, указывает на успешное выполнение + операции; он всегда завершается с кодом состояния, + указывающим на успех +

+
+

+ truncate +

+
+

+ Сжимает или расширяет файл до указанного размера +

+
+

+ tsort +

+
+

+ Выполняет топологическую сортировку; записывает полностью + упорядоченный список в соответствии с частичным + упорядочением в данном файле +

+
+

+ tty +

+
+

+ Сообщает имя файла терминала, подключенного к + стандартному вводу. +

+
+

+ uname +

+
+

+ Сообщает системную информацию +

+
+

+ unexpand +

+
+

+ Преобразует пробелы в табуляции +

+
+

+ uniq +

+
+

+ Удаляет все повторяющиеся копии уже имеющихся строк, + кроме одной +

+
+

+ unlink +

+
+

+ Удаляет указанный файл +

+
+

+ users +

+
+

+ Сообщает имена пользователей, вошедших в систему в данный + момент +

+
+

+ vdir +

+
+

+ То же, что ls + -l +

+
+

+ wc +

+
+

+ Сообщает количество строк, слов и байт для каждого + заданного файла, а также общее количество строк, если + указано более одного файла +

+
+

+ who +

+
+

+ Сообщает, кто вошел в систему +

+
+

+ whoami +

+
+

+ Сообщает имя пользователя, соответствующее идентификатору + текущего пользователя +

+
+

+ yes +

+
+

+ Повторно выводит «y» или указанную строку, до тех + пор, пока команда не будет завершена с помощью kill +

+
+

+ libstdbuf +

+
+

+ Библиотека, используемая командой stdbuf +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/dejagnu.html b/lfs-12.0-sysv/chapter08/dejagnu.html new file mode 100644 index 0000000..3830993 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/dejagnu.html @@ -0,0 +1,184 @@ + + + + + + 8.17. DejaGNU-1.6.3 + + + + + + + + +
+

+ 8.17. + DejaGNU-1.6.3 +

+
+

+ Пакет DejaGnu содержит фреймворк + для запуска наборов тестов на инструментах GNU. Он написан на + expect, который в + свою очередь использует Tcl + (командный язык инструментов). +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 6.9 MB +
+
+
+
+
+

+ 8.17.1. Установка пакета DejaGNU +

+

+ Разработчики рекомендуют собирать DejaGNU в отдельном каталоге: +

+
mkdir -v build
+cd       build
+

+ Подготовьте DejaGNU к компиляции: +

+
../configure --prefix=/usr
+makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
+makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
+

+ Соберите и установите пакет: +

+
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
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+
+
+

+ 8.17.2. + Содержимое пакета DejaGNU +

+
+
+
+ Установленные программы: + dejagnu и runtest +
+
+
+
+

+ Short Descriptions +

+ + + + + + + + + + + + + + + +
+

+ dejagnu +

+
+

+ Вспомогательная программа запуска команд DejaGNU +

+
+

+ runtest +

+
+

+ Скрипт-обертка, который находит соответствующую оболочку + expect, и + запускает DejaGnu +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/diffutils.html b/lfs-12.0-sysv/chapter08/diffutils.html new file mode 100644 index 0000000..184a441 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/diffutils.html @@ -0,0 +1,201 @@ + + + + + + 8.58. Diffutils-3.10 + + + + + + + + +
+

+ 8.58. + Diffutils-3.10 +

+
+

+ Пакет Diffutils содержит программы, которые показывают различия + между файлами или каталогами. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 36 MB +
+
+
+
+
+

+ 8.58.1. Установка пакета Diffutils +

+

+ Подготовьте Diffutils к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестровать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.58.2. + Содержимое пакета Diffutils +

+
+
+
+ Установленные программы: + cmp, diff, diff3, и sdiff +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ cmp +

+
+

+ Сравнивает побайтно два файла и сообщает о любых + различиях +

+
+

+ diff +

+
+

+ Сравнивает два файла или каталога и сообщает, какие + строки отличаются +

+
+

+ diff3 +

+
+

+ Сравнивает три файла построчно +

+
+

+ sdiff +

+
+

+ Объединяет два файла и интерактивно выводит результат +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/e2fsprogs.html b/lfs-12.0-sysv/chapter08/e2fsprogs.html new file mode 100644 index 0000000..f3ce360 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/e2fsprogs.html @@ -0,0 +1,775 @@ + + + + + + 8.78. E2fsprogs-1.47.0 + + + + + + + + +
+

+ 8.78. + E2fsprogs-1.47.0 +

+
+

+ Пакет E2fsprogs содержит утилиты для работы с файловой системой + ext2. Также он поддерживает + журналируемые файловые системы ext3 + и ext4. +

+
+
+
+ Приблизительное время сборки: + 2.4 SBU на жестком диске, 0.6 SBU на SSD + диске +
+
+ Требуемое дисковое + пространство: 95 MB +
+
+
+
+
+

+ 8.78.1. Установка пакета E2fsprogs +

+

+ В документации к E2fsprogs рекомендуется выполнять сборку в + подкаталоге папки с исходниками: +

+
mkdir -v build
+cd       build
+

+ Подготовьте E2fsprogs к компиляции: +

+
../configure --prefix=/usr           \
+             --sysconfdir=/etc       \
+             --enable-elf-shlibs     \
+             --disable-libblkid      \
+             --disable-libuuid       \
+             --disable-uuidd         \
+             --disable-fsck
+
+

+ Значение параметров настройки: +

+
+
+ --enable-elf-shlibs +
+
+

+ Параметр создает общие библиотеки, которые используют + некоторые программы в этом пакете. +

+
+
+ --disable-* +
+
+

+ Эти параметры предотвращают сборку и установку библиотек + libuuid и libblkid, демона uuidd, и обертку для fsck, поскольку util-linux + устанавливает более свежие версии. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы запустить тесты, выполните: +

+
make check
+

+ Известно, что один тест, с именем m_assume_storage_prezeroed, завершается ошибкой. +

+

+ Установите пакет: +

+
make install
+

+ Удалите ненужные статические библиотеки: +

+
rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
+

+ Этот пакет устанавливает сжатый файл .info но не обновляет общесистемный файл + dir. Разархивируйте этот файл, а + затем обновите системный файл dir, + используя следующие команды: +

+
gunzip -v /usr/share/info/libext2fs.info.gz
+install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
+

+ По желанию, создайте и установите дополнительную документацию, + выполнив следующие команды: +

+
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
+
+
+

+ 8.78.2. Настройка + E2fsprogs +

+

+ Файл /etc/mke2fs.conf содержит + значения по умолчанию для различных параметров командной строки + mke2fs. Вы можете + отредактировать файл, чтобы значения по умолчанию соответствовали + вашим потребностям. Например, некоторые утилиты (не в LFS или BLFS) + не могут распознать файловую систему ext4 с включенным параметром metadata_csum_seed. Если вам нужна такая утилита, вы + можете удалить параметр из списка по умолчанию для ext4 с помощью команды: +

+
sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf
+

+ Подробности читайте в справочной странице mke2fs.conf(5). +

+
+
+

+ 8.78.3. + Содержимое пакета E2fsprogs +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + libcom_err.so, libe2p.so, libext2fs.so, и + libss.so +
+
+ Созданные каталоги: + /usr/include/e2p, /usr/include/et, + /usr/include/ext2fs, /usr/include/ss, /usr/lib/e2fsprogs, + /usr/share/et и /usr/share/ss +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ badblocks +

+
+

+ Выполняет поиск поврежденных блоков на устройстве (обычно + на разделе диска) +

+
+

+ chattr +

+
+

+ Изменяет атрибуты файлов в файловых системах ext{234} +

+
+

+ compile_et +

+
+

+ Компилятор таблицы ошибок; конвертирует таблицу имен + кодов ошибок и сообщений в файл исходного кода на языке С + с тем, чтобы ее можно было использовать с библиотекой + com_err +

+
+

+ debugfs +

+
+

+ Отладчик файловой системы; его можно использовать для + проверки и изменения состояния файловых систем + ext{234} +

+
+

+ dumpe2fs +

+
+

+ Выводит информацию о суперблоке и группе блоков для + файловой системы, присутствующей на указанном устройстве. +

+
+

+ e2freefrag +

+
+

+ Сообщает информацию о фрагментации свободного + пространства +

+
+

+ e2fsck +

+
+

+ Используется для проверки и, при необходимости, + восстановления файловых систем ext{234} +

+
+

+ e2image +

+
+

+ Используется для сохранения важных данных файловых систем + ext{234} в файл +

+
+

+ e2label +

+
+

+ Отображает или изменяет метку файловой системы в файловой + системе ext{234} на + данном устройстве. +

+
+

+ e2mmpstatus +

+
+

+ Проверяет состояние MMP (Multiple Mount Protection - + защита от множественного монтирования) файловой системы + ext4 +

+
+

+ e2scrub +

+
+

+ Проверяет содержимое смонтированной файловой системы + ext{234} +

+
+

+ e2scrub_all +

+
+

+ Проверяет все смонтированные файловые системы + ext{234} на наличие + ошибок +

+
+

+ e2undo +

+
+

+ Воспроизводит журнал отмены (undo_log) для файловой + системы ext{234}, + обнаруженной на устройстве. [Это можно использовать для + отмены неудачной операции программой E2fsprogs.] +

+
+

+ e4crypt +

+
+

+ Утилита шифрования файловой системы Ext4 +

+
+

+ e4defrag +

+
+

+ Онлайн дефрагментатор для файловой системы ext4 +

+
+

+ filefrag +

+
+

+ Сообщает о том, насколько сильно может быть + фрагментирован конкретный файл +

+
+

+ fsck.ext2 +

+
+

+ По умолчанию проверяет файловые системы ext2 и является жесткой ссылкой на + e2fsck +

+
+

+ fsck.ext3 +

+
+

+ По умолчанию проверяет файловые системы ext3 и является жесткой ссылкой на + e2fsck +

+
+

+ fsck.ext4 +

+
+

+ По умолчанию проверяет файловые системы ext4 и является жесткой ссылкой на + e2fsck +

+
+

+ logsave +

+
+

+ Сохраняет вывод команды в файл журнала +

+
+

+ lsattr +

+
+

+ Перечисляет атрибуты файлов во второй расширенной + файловой системе. +

+
+

+ mk_cmds +

+
+

+ Преобразует таблицу имен команд и справочных сообщений в + исходный файл C, подходящий для использования с + библиотекой подсистемы libss +

+
+

+ mke2fs +

+
+

+ Создает файловую систему ext{234} на указанном устройстве +

+
+

+ mkfs.ext2 +

+
+

+ По умолчанию создает файловую систему ext2 и является жесткой ссылкой на + mke2fs +

+
+

+ mkfs.ext3 +

+
+

+ По умолчанию создает файловую систему ext3 и является жесткой ссылкой на + mke2fs +

+
+

+ mkfs.ext4 +

+
+

+ По умолчанию создает файловую систему ext4 и является жесткой ссылкой на + mke2fs +

+
+

+ mklost+found +

+
+

+ Используется для создания каталога lost+found в файловой системе + ext{234}; предварительно + выделяет дисковые блоки для этого каталога, чтобы + облегчить задачу e2fsck +

+
+

+ resize2fs +

+
+

+ Может использоваться для увеличения или уменьшения + файловой системы ext{234} +

+
+

+ tune2fs +

+
+

+ Позволяет настроить параметры для файловой системы + ext{234} +

+
+

+ libcom_err +

+
+

+ Стандартная процедура отображения ошибок +

+
+

+ libe2p +

+
+

+ Используется dumpe2fs, chattr, и lsattr +

+
+

+ libext2fs +

+
+

+ Содержит подпрограммы, позволяющие программам + пользовательского уровня управлять файловой системой + ext{234} +

+
+

+ libss +

+
+

+ Используется debugfs +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/expat.html b/lfs-12.0-sysv/chapter08/expat.html new file mode 100644 index 0000000..b4d6692 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/expat.html @@ -0,0 +1,187 @@ + + + + + + 8.39. Expat-2.5.0 + + + + + + + + +
+

+ 8.39. Expat-2.5.0 +

+
+

+ Пакет Expat содержит потоковую библиотеку C для синтаксического + анализа XML +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 12 MB +
+
+
+
+
+

+ 8.39.1. Установка пакета Expat +

+

+ Подготовьте Expat к компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --docdir=/usr/share/doc/expat-2.5.0
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+

+ По желанию установите документацию: +

+
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.5.0
+
+
+

+ 8.39.2. Содержимое + пакета Expat +

+
+
+
+ Установленные программы: + xmlwf +
+
+ Установленные библиотеки: + libexpat.so +
+
+ Созданные каталоги: + /usr/share/doc/expat-2.5.0 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ xmlwf +

+
+

+ Утилита проверки правильности формирования XML документов +

+
+

+ libexpat +

+
+

+ Содержит функции API для синтаксического анализа XML +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/expect.html b/lfs-12.0-sysv/chapter08/expect.html new file mode 100644 index 0000000..f6d3b18 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/expect.html @@ -0,0 +1,256 @@ + + + + + + 8.16. Expect-5.45.4 + + + + + + + + +
+

+ 8.16. + Expect-5.45.4 +

+
+

+ Пакет Expect содержит инструменты + для автоматизации работы интерактивных приложений, таких как + telnet, ftp, passwd, fsck, rlogin и tip, с помощью скриптовых + диалогов и макросов. Кроме того Expect полезен для тестирования перечисленных + выше приложений, а также для решения сложных задач взаимодействия с + другими средствами. Фреймворк DejaGnu написан на языке Expect. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 3.9 MB +
+
+
+
+
+

+ 8.16.1. Установка пакета Expect +

+

+ Подготовьте Expect к компиляции: +

+
./configure --prefix=/usr           \
+            --with-tcl=/usr/lib     \
+            --enable-shared         \
+            --mandir=/usr/share/man \
+            --with-tclinclude=/usr/include
+
+

+ Значение параметров настройки: +

+
+
+ --with-tcl=/usr/lib +
+
+

+ Этот параметр необходим для указания configure где находится + скрипт tclConfig.sh. +

+
+
+ --with-tclinclude=/usr/include +
+
+

+ Этот параметр явно указывает Expect, где искать внутренние + заголовки Tcl. +

+
+
+
+

+ Соберите пакет: +

+
make
+
+ [Важно] +

+ Важно +

+

+ Набор тестов для Expect считается критически важным. Не + пропускайте его ни при каких обстоятельствах. +

+
+

+ Чтобы протестировать пакет, выполните: +

+
make test
+

+ Если какой-либо тест завершается неудачей с сообщением «The + system has no more ptys. Ask your system administrator to create + more», это означает, что вы неправильно + смонтировали файловую систему devpts. Вам необходимо выйти из среды chroot, + ещё раз прочитать Раздел 7.3, + «Подготовка виртуальных файловых систем ядра» и убедиться, что + файловая система devpts (и другие + файловые системы виртуального ядра) смонтированы правильно. Затем + повторно войдите в среду chroot, следуя инструкции Раздел 7.4, «Вход в окружение + Chroot». Эту проблему необходимо решить, прежде чем вы + продолжите. +

+

+ Установите пакет: +

+
make install
+ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
+
+
+

+ 8.16.2. + Содержимое пакета Expect +

+
+
+
+ Установленные программы: + expect +
+
+ Установленные библиотеки: + libexpect5.45.4.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ expect +

+
+

+ Взаимодействует с другими интерактивными программами в + соответствии со сценарием +

+
+

+ libexpect-5.45.4.so +

+
+

+ Содержит функции, которые позволяют использовать Expect в + качестве расширения Tcl или непосредственно из C или C++ + (без Tcl). +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/file.html b/lfs-12.0-sysv/chapter08/file.html new file mode 100644 index 0000000..2043dfc --- /dev/null +++ b/lfs-12.0-sysv/chapter08/file.html @@ -0,0 +1,180 @@ + + + + + + 8.10. File-5.45 + + + + + + + + +
+

+ 8.10. File-5.45 +

+
+

+ Пакет File содержит утилиту для определения типа указанного файла + или файлов +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 17 MB +
+
+
+
+
+

+ 8.10.1. Установка пакета File +

+

+ Подготовьте File к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.10.2. Содержимое + пакета File +

+
+
+
+ Установленные программы: + file +
+
+ Установленные библиотеки: + libmagic.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ file +

+
+

+ Пытается классифицировать каждый указанный файл; он + делает это, выполняя серию тестов—тесты файловой системы, + тесты магических чисел и языковые тесты. +

+
+

+ libmagic +

+
+

+ Содержит функции распознавания магических чисел + используемые программой file +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/findutils.html b/lfs-12.0-sysv/chapter08/findutils.html new file mode 100644 index 0000000..97925ba --- /dev/null +++ b/lfs-12.0-sysv/chapter08/findutils.html @@ -0,0 +1,238 @@ + + + + + + 8.60. Findutils-4.9.0 + + + + + + + + +
+

+ 8.60. + Findutils-4.9.0 +

+
+

+ Пакет Findutils содержит программы для поиска файлов. Эти программы + предназначены для поиска по всем файлам в дереве каталогов, а также + для создания, обслуживания и поиска в базе данных (часто быстрее, + чем рекурсивный поиск, но ненадежно, если база данных давно не + обновлялась).Findutils также предоставляет программу xargs, которую можно использовать + для запуска указанной команды для каждого файла, выбранного при + поиске. +

+
+
+
+ Приблизительное время сборки: + 0.4 SBU +
+
+ Требуемое дисковое + пространство: 51 MB +
+
+
+
+
+

+ 8.60.1. Установка пакета Findutils +

+

+ Подготовьте Findutils к компиляции: +

+
./configure --prefix=/usr --localstatedir=/var/lib/locate
+
+

+ Значение параметров настройки: +

+
+
+ --localstatedir +
+
+

+ Этот параметр перемещает базу данных команды locate в /var/lib/locate, что соответствует + расположению, совместимому со стандартом FHS. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
chown -Rv tester .
+su tester -c "PATH=$PATH make check"
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.60.2. + Содержимое пакета Findutils +

+
+
+
+ Installed programs: + Установленные программы +
+
+ Созданные каталоги: + /var/lib/locate +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ find +

+
+

+ Выполняет поиск в заданных каталогах файлов, + соответствующих критериям +

+
+

+ locate +

+
+

+ Выполняет поиск по базе данных имен файлов и сообщает об + именах, которые содержат заданную строку или + соответствуют заданному шаблону. +

+
+

+ updatedb +

+
+

+ Обновляет базу данных locate; сканирует всю + файловую систему (включая другие файловые системы, + которые в настоящее время смонтированы, если не указано + иное) и записывает найденные имена файлов в базу данных +

+
+

+ xargs +

+
+

+ Может использоваться для применения заданной команды к + списку файлов +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/flex.html b/lfs-12.0-sysv/chapter08/flex.html new file mode 100644 index 0000000..8fb7abc --- /dev/null +++ b/lfs-12.0-sysv/chapter08/flex.html @@ -0,0 +1,230 @@ + + + + + + 8.14. Flex-2.6.4 + + + + + + + + +
+

+ 8.14. Flex-2.6.4 +

+
+

+ Пакет Flex содержит инструмент для генерации программ, распознающих + заданные шаблоны в тексте +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 33 MB +
+
+
+
+
+

+ 8.14.1. Установка пакета Flex +

+

+ Подготовьте Flex к компиляции: +

+
./configure --prefix=/usr \
+            --docdir=/usr/share/doc/flex-2.6.4 \
+            --disable-static
+

+ Скомпилируйте пакет: +

+
make
+

+ Для тестирования пакета (около 0,5 SBU) выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+

+ Некоторые программы пока не знают о flex и пытаются запустить его + предшественника - lex. Чтобы обеспечить их + работоспособность, создайте символическую ссылку lex, которая запускает + flex в режиме эмуляции lex, а также создайте + символическую ссылку на справочную страницу lex: +

+
ln -sv flex   /usr/bin/lex
+ln -sv flex.1 /usr/share/man/man1/lex.1
+
+
+

+ 8.14.2. Содержимое + пакета Flex +

+
+
+
+ Установленные программы: + flex, flex++ (ссылка на flex), и lex + (ссылка на flex) +
+
+ Установленные библиотеки: + libfl.so +
+
+ Созданные каталоги: + /usr/share/doc/flex-2.6.4 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ flex +

+
+

+ Инструмент для создания программ, распознающих текст по + шаблону; это позволяет гибко указывать правила поиска + паттернов, устраняя необходимость разработки + специализированной программы. +

+
+

+ flex++ +

+
+

+ Расширение flex используется для генерации кода и классов + C++. Является символической ссылкой на flex +

+
+

+ lex +

+
+

+ Символическая ссылка, запускает flex в режиме эмуляции + lex +

+
+

+ libfl +

+
+

+ Библиотека flex +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/flit-core.html b/lfs-12.0-sysv/chapter08/flit-core.html new file mode 100644 index 0000000..37255ac --- /dev/null +++ b/lfs-12.0-sysv/chapter08/flit-core.html @@ -0,0 +1,186 @@ + + + + + + 8.52. Flit-Core-3.9.0 + + + + + + + + +
+

+ 8.52. + Flit-Core-3.9.0 +

+
+

+ Flit-core — это часть Flit, предназначенная для сборки дистрибутива + (инструмента для упаковки простых модулей Python). +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 1.7 MB +
+
+
+
+
+

+ 8.52.1. Установка пакета Flit-Core +

+

+ Соберите пакет: +

+
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+

+ Установите пакет: +

+
pip3 install --no-index --no-user --find-links dist flit_core
+
+

+ Значение параметров конфигурации и команд pip3: +

+
+
+ wheel +
+
+

+ Эта команда создает архив wheel для этого пакета. +

+
+
+ -w + dist +
+
+

+ Указывает pip поместить созданный архив в каталог + dist. +

+
+
+ install +
+
+

+ Эта команда устанавливает пакет. +

+
+
+ --no-build-isolation, --no-deps и --no-index +
+
+

+ Эти параметры предотвращают получение файлов из + онлайн-репозитория пакетов (PyPI). Если пакеты установлены в + правильном порядке, то нет необходимости загружать какие-либо + файлы; эти параметры усиливают безопасность в случае ошибки + пользователя. +

+
+
+ --find-links + dist +
+
+

+ Указывает pip искать архивы wheel в каталоге dist. +

+
+
+
+
+
+

+ 8.52.2. + Содержимое пакета Flit-Core +

+
+
+
+ Созданные каталоги: + /usr/lib/python3.11/site-packages/flit_core и + /usr/lib/python3.11/site-packages/flit_core-3.9.0.dist-info +
+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gawk.html b/lfs-12.0-sysv/chapter08/gawk.html new file mode 100644 index 0000000..6d2f089 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gawk.html @@ -0,0 +1,244 @@ + + + + + + 8.59. Gawk-5.2.2 + + + + + + + + +
+

+ 8.59. Gawk-5.2.2 +

+
+

+ Пакет Gawk содержит программы для работы с текстовыми файлами. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 46 MB +
+
+
+
+
+

+ 8.59.1. Установка пакета Gawk +

+

+ Во-первых, отредактируйте Makefile, чтобы некоторые ненужные файлы + не были установлены +

+
sed -i 's/extras//' Makefile.in
+

+ Подготовьте Gawk к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
chown -Rv tester .
+su tester -c "PATH=$PATH make check"
+

+ Установите пакет: +

+
make LN='ln -f' install
+
+

+ Значение переопределенной переменной make: +

+
+
+ LN='ln -f' +
+
+

+ Эта переменная гарантирует, что предыдущая жесткая ссылка, + установленная в Раздел 6.9, «Gawk-5.2.2», + будет обновлена здесь. +

+
+
+
+

+ В процессе установки уже создан awk в виде символической ссылки + на gawk, создайте + также символическую ссылку на справочную страницу: +

+
ln -sv gawk.1 /usr/share/man/man1/awk.1
+

+ По желанию, установите документацию: +

+
mkdir -pv                                   /usr/share/doc/gawk-5.2.2
+cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.2.2
+
+
+

+ 8.59.2. Содержимое + пакета Gawk +

+
+
+
+ Установленные программы: + awk (ссылка на gawk), gawk и + gawk-5.2.2 +
+
+ Установленные библиотеки: + 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) +
+
+ Созданные каталоги: + /usr/lib/gawk, /usr/libexec/awk, + /usr/share/awk и /usr/share/doc/gawk-5.2.2 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ awk +

+
+

+ Ссылка на gawk +

+
+

+ gawk +

+
+

+ Программа для работы с текстовыми файлами; это GNU + реализация awk +

+
+

+ gawk-5.2.2 +

+
+

+ Жесткая ссылка на gawk +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gcc.html b/lfs-12.0-sysv/chapter08/gcc.html new file mode 100644 index 0000000..02ff6ce --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gcc.html @@ -0,0 +1,911 @@ + + + + + + 8.27. GCC-13.2.0 + + + + + + + + +
+

+ 8.27. GCC-13.2.0 +

+
+

+ Пакет GCC содержит коллекцию компиляторов GNU, которая включает + компиляторы C и C++. +

+
+
+
+ Приблизительное время сборки: + 42 SBU (с тестами) +
+
+ Требуемое дисковое + пространство: 5.5 GB +
+
+
+
+
+

+ 8.27.1. Установка пакета GCC +

+

+ При сборке на x86_64 измените имя каталога по умолчанию для + 64-битных библиотек на «lib»: +

+
case $(uname -m) in
+  x86_64)
+    sed -e '/m64=/s/lib64/lib/' \
+        -i.orig gcc/config/i386/t-linux64
+  ;;
+esac
+

+ Документация GCC рекомендует собирать GCC в отдельном каталоге: +

+
mkdir -v build
+cd       build
+

+ Подготовьте GCC к компиляции: +

+
../configure --prefix=/usr            \
+             LD=ld                    \
+             --enable-languages=c,c++ \
+             --enable-default-pie     \
+             --enable-default-ssp     \
+             --disable-multilib       \
+             --disable-bootstrap      \
+             --disable-fixincludes    \
+             --with-system-zlib
+

+ GCC поддерживает семь различных языков программирования, но + предварительные условия для большинства из них еще не выполнены. + См. страницу + BLFS Book GCC для получения инструкций о том, как собрать все + языки, поддерживаемые GCC +

+
+

+ Значение новых параметров настройки: +

+
+
+ LD=ld +
+
+

+ Этот параметр указывает скрипту configure использовать ld, + установленный программой Binutils, собранной ранее в этой + главе, а не кросс версию, которая использовалась бы в + противном случае. +

+
+
+ --disable-fixincludes +
+
+

+ По умолчанию во время установки GCC некоторые системные + заголовки будут «исправлены» для использования с GCC. + Это не обязательно для современной системы Linux и + потенциально опасно, если пакет будет переустановлен после + установки GCC. Этот параметр не позволяет GCC «исправлять» + заголовки. +

+
+
+ --with-system-zlib +
+
+

+ Этот параметр указывает GCC ссылаться на установленную в + системе копию библиотеки Zlib, а не на собственную внутреннюю + копию. +

+
+
+
+
+ [Примечание] +

+ Примечание +

+

+ PIE (позиционно-независимые исполняемые файлы) — это двоичные + программы, которые можно загружать в любое место памяти. Без PIE + функция безопасности под названием ASLR (рандомизация размещения + адресного пространства) может применяться к общим библиотекам, но + не к самим исполняемым файлам. Включение PIE позволяет + использовать ASLR для исполняемых файлов в дополнение к общим + библиотекам и смягчает некоторые атаки, основанные на + фиксированных адресах конфиденциального кода или данных в + исполняемых файлах. +

+

+ SSP (Stack Smashing Protection - защита от разрушения стека) — + это метод, гарантирующий, что стек параметров не будет поврежден. + Повреждение стека может, например, изменить адрес возврата + подпрограммы, тем самым передав управление какому-то опасному + коду (существующему в программе или общих библиотеках или + каким-то образом внедренному злоумышленником). +

+
+

+ Скомпилируйте пакет: +

+
make
+
+ [Важно] +

+ Важно +

+

+ В этом разделе набор тестов для GCC считается важным, но занимает + много времени. Начинающим сборщикам не рекомендуется пропускать + его. Время выполнения тестов можно значительно сократить, добавив + -jx в приведенную ниже команду make + -k check, где x - количество ядер процессора в + вашей системе. +

+
+

+ Известно, что один набор тестов GCC переполняет стек по умолчанию, + поэтому увеличьте размер стека перед запуском тестов: +

+
ulimit -s 32768
+

+ Выполните тестирование под непривилегированным пользователем, но не + останавливайтесь на ошибках: +

+
chown -Rv tester .
+su tester -c "PATH=$PATH make -k check"
+

+ Чтобы получить сводку результатов набора тестов, выполните: +

+
../contrib/test_summary
+

+ Чтобы отфильтровать только итоговую сводку, передайте вывод через + pipe grep -A7 Summ. +

+

+ Результаты можно сравнить с результатами, размещенными на https://mirror.linuxfromscratch.ru/lfs/build-logs/12.0/ + и https://gcc.gnu.org/ml/gcc-testresults/. +

+

+ Известно, что два теста с именами copy.cc и pr56837.c + завершаются ошибкой. Кроме того, известно, что несколько тестов в + каталоге vect завершаются неудачно, + если оборудование не поддерживает AVX. +

+

+ Известно, что в Glibc-2.38, тесты анализатора с именами + data-model-4.c и conftest-1.c завершаются неудачно. Известно, что + в тестах asan, несколько тестов в asan_test.C завершаются неудачно. Известно, что + тест с именем interception-malloc-test-1.C завершился ошибкой. +

+

+ Не всегда удается избежать неожиданных сбоев. Разработчики GCC + обычно знают об этих проблемах, но еще не решили их. Если + результаты теста не сильно отличаются от результатов по указанному + выше URL-адресу, можно продолжать. +

+

+ Установите пакет: +

+
make install
+

+ Каталог сборки GCC теперь принадлежит пользователю tester, и владелец каталога заголовочных файлов + (и его содержимого) указан неверно. Измените владельца на + пользователя и группу root: +

+
chown -v -R root:root \
+    /usr/lib/gcc/$(gcc -dumpmachine)/13.2.0/include{,-fixed}
+

+ Создайте символическую ссылку, требуемую FHS + по "историческим" причинам. +

+
ln -svr /usr/bin/cpp /usr/lib
+

+ Многие пакеты используют имя cc для вызова компилятора языка + Си. Мы уже создали cc + как символическую ссылку в GCC-Проход 2, теперь создайте + символическую ссылку на его справочную страницу: +

+
ln -sv gcc.1 /usr/share/man/man1/cc.1
+

+ Добавьте символическую ссылку совместимости, чтобы включить сборку + программ с оптимизацией времени компоновки (LTO): +

+
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/13.2.0/liblto_plugin.so \
+        /usr/lib/bfd-plugins/
+

+ Теперь, когда наш окончательный набор инструментов готов, важно еще + раз убедиться, что компиляция и компоновка будут работать так, как + ожидалось. Мы сделаем это, выполнив проверку работоспособности: +

+
echo 'int main(){}' > dummy.c
+cc dummy.c -v -Wl,--verbose &> dummy.log
+readelf -l a.out | grep ': /lib'
+

+ Ошибок быть не должно, и вывод последней команды будет (с учетом + платформо-зависимых различий в имени динамического компоновщика): +

+
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
+

+ Теперь убедитесь, что мы настроили использование правильных + стартовых файлов: +

+
grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log
+

+ Вывод последней команды должен быть: +

+
/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
+

+ В зависимости от архитектуры вашего компьютера вышеуказанные + параметры могут незначительно отличаться. Разница будет заключаться + в имени каталога после /usr/lib/gcc. + Здесь важно обратить внимание на то, что gcc нашел все три файла + crt*.o в каталоге /usr/lib. +

+

+ Убедитесь, что компилятор ищет правильные заголовочные файлы: +

+
grep -B4 '^ /usr/include' dummy.log
+

+ Эта команда должна вернуть следующий вывод: +

+
#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
+

+ Опять же, имя каталога может отличаться от указанного выше, в + зависимости от архитектуры вашей системы. +

+

+ Затем убедитесь, что новый компоновщик использует правильные пути + поиска: +

+
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
+

+ Ссылки на пути, содержащие компоненты с '-linux-gnu', следует + игнорировать, но в противном случае вывод последней команды должен + быть таким: +

+
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");
+

+ 32-разрядная система может использовать несколько других каталогов. + Например, вот вывод с компьютера i686: +

+
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");
+

+ Затем убедитесь, что мы используем правильную libc: +

+
grep "/lib.*/libc.so.6 " dummy.log
+

+ Вывод последней команды должен быть: +

+
attempt to open /usr/lib/libc.so.6 succeeded
+

+ Убедитесь, что GCC использует правильный динамический компоновщик: +

+
grep found dummy.log
+

+ Вывод последней команды должен быть (с учетом различий в имени + динамического компоновщика, зависящих от платформы): +

+
found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2
+

+ Если вывод выглядит не так, как показано выше, или вообще не + получен, значит, где-то серьезная ошибка. Изучите и повторите шаги, + чтобы выяснить, в чем проблема, и исправьте ее. Любые проблемы + должны быть решены, прежде чем вы продолжите процесс. +

+

+ Как только все заработает правильно, удалите тестовые файлы: +

+
rm -v dummy.c a.out dummy.log
+

+ Наконец, переместите файл: +

+
mkdir -pv /usr/share/gdb/auto-load/usr/lib
+mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
+
+
+

+ 8.27.2. Содержимое + пакета GCC +

+
+
+
+ Установленные программы: + c++, cc (link to gcc), cpp, g++, gcc, + gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump, gcov-tool, и + lto-dump +
+
+ Установленные библиотеки: + 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} +
+
+ Созданные каталоги: + /usr/include/c++, /usr/lib/gcc, + /usr/libexec/gcc и /usr/share/gcc-13.2.0 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ c++ +

+
+

+ Компилятор С++ +

+
+

+ cc +

+
+

+ Компилятор C +

+
+

+ cpp +

+
+

+ Препроцессор C; он используется компилятором для + расширения инструкций #include, #define и подобные + директивы в исходных файлах +

+
+

+ g++ +

+
+

+ Компилятор C++ +

+
+

+ gcc +

+
+

+ Компилятор C +

+
+

+ gcc-ar +

+
+

+ Обертка над ar, добавляющая плагин + в командную строку. Эта программа используется только для + добавления "оптимизации времени компоновки" и бесполезна + с параметрами сборки по умолчанию. +

+
+

+ gcc-nm +

+
+

+ Обертка над nm, добавляющая плагин + в командную строку. Эта программа используется только для + добавления "оптимизации времени компоновки" и бесполезна + с параметрами сборки по умолчанию. +

+
+

+ gcc-ranlib +

+
+

+ Обертка над ranlib, добавляющая + плагин в командную строку. Эта программа используется + только для добавления "оптимизации времени компоновки" и + бесполезна с параметрами сборки по умолчанию. +

+
+

+ gcov +

+
+

+ Инструмент тестирования; он используется для анализа + программ, чтобы определить, где оптимизация будет иметь + наибольший эффект. +

+
+

+ gcov-dump +

+
+

+ Автономный инструмент для дампа профилей gcda and gcno +

+
+

+ gcov-tool +

+
+

+ Автономный инструмент обработки профиля gcda +

+
+

+ lto-dump +

+
+

+ Инструмент для создания дампа объектных файлов, созданных + GCC с включенным LTO. +

+
+

+ libasan +

+
+

+ Библиотека времени выполнения Address Sanitizer +

+
+

+ libatomic +

+
+

+ Встроенная библиотека времени выполнения GCC atomic +

+
+

+ libcc1 +

+
+

+ Библиотека предварительной обработки C +

+
+

+ libgcc +

+
+

+ Содержит средства поддержки времени исполнения для + gcc +

+
+

+ libgcov +

+
+

+ Эта библиотека компонуется с программой, когда в GCC + включено профилирование +

+
+

+ libgomp +

+
+

+ GNU реализация интерфейса OpenMP API мультиплатформенного + параллельного программирования для языков C/C++ и Fortran + с общим доступом к памяти +

+
+

+ libhwasan +

+
+

+ Библиотека времени выполнения Hardware-Assisted Address + Sanitizer (аппаратной очистки адресов) +

+
+

+ libitm +

+
+

+ Библиотека транзакционной памяти GNU +

+
+

+ liblsan +

+
+

+ Библиотека времени выполнения Leak Sanitizer (средств + защиты от утечек) +

+
+

+ liblto_plugin +

+
+

+ Плагин GCC LTO позволяет Binutils обрабатывать объектные + файлы, созданные GCC с включенным LTO. +

+
+

+ libquadmath +

+
+

+ API математической библиотеки GCC Quad Precision +

+
+

+ libssp +

+
+

+ Содержит подпрограммы, поддерживающие функциональность + защиты стека GCC. Обычно они не используются, потому что + Glibc также предоставляет эти подпрограммы. +

+
+

+ libstdc++ +

+
+

+ Стандартная библиотека C++ +

+
+

+ libstdc++exp +

+
+

+ Экспериментальная библиотека контрактов C++ +

+
+

+ libstdc++fs +

+
+

+ Библиотека файловой системы ISO/IEC TS 18822:2015 +

+
+

+ libsupc++ +

+
+

+ Предоставляет вспомогательные процедуры для языка + программирования C++ +

+
+

+ libtsan +

+
+

+ Библиотека времени выполнения Thread Sanitizer (средств + очистки потоков) +

+
+

+ libubsan +

+
+

+ Библиотека времени выполнения Undefined Behavior + Sanitizer (средств очистки неопределенного поведения) +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gdbm.html b/lfs-12.0-sysv/chapter08/gdbm.html new file mode 100644 index 0000000..36cdcdd --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gdbm.html @@ -0,0 +1,243 @@ + + + + + + 8.37. GDBM-1.23 + + + + + + + + +
+

+ 8.37. GDBM-1.23 +

+
+

+ Пакет GDBM содержит менеджер баз данных GNU. Это библиотека функций + базы данных, использующая расширяемое хеширование и работающая + аналогично стандартной СУБД UNIX. Библиотека предоставляет + примитивы для хранения пар ключ/значение, поиска и извлечения + данных по его ключу и удаления ключа вместе с его данными. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 13 MB +
+
+
+
+
+

+ 8.37.1. Установка пакета GDBM +

+

+ Подготовьте GDBM к компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --enable-libgdbm-compat
+
+

+ Значение параметра configure: +

+
+
+ --enable-libgdbm-compat +
+
+

+ Этот параметр включает сборку библиотеки совместимости + libgdbm. Некоторым пакетам за пределами LFS могут + потребоваться более старые подпрограммы DBM, которые он + предоставляет. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.37.2. Содержимое + пакета GDBM +

+
+
+
+ Установленные программы: + gdbm_dump, gdbm_load, и gdbmtool +
+
+ Установленные библиотеки: + libgdbm.so и libgdbm_compat.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ gdbm_dump +

+
+

+ Сохраняет дамп базы данных GDBM в файл +

+
+

+ gdbm_load +

+
+

+ Восстанавливает базу данных GDBM из дампа. +

+
+

+ gdbmtool +

+
+

+ Проверяет и изменяет базу данных GDBM +

+
+

+ libgdbm +

+
+

+ Содержит функции для управления хэшированной базой данных +

+
+

+ libgdbm_compat +

+
+

+ Библиотека совместимости, содержащая более старые функции + DBM +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gettext.html b/lfs-12.0-sysv/chapter08/gettext.html new file mode 100644 index 0000000..82282cd --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gettext.html @@ -0,0 +1,594 @@ + + + + + + 8.32. Gettext-0.22 + + + + + + + + +
+

+ 8.32. + Gettext-0.22 +

+
+

+ Пакет Gettext содержит утилиты для интернационализации и + локализации. Они позволяют компилировать программы с поддержкой NLS + (Native Language Support), позволяя им выводить сообщения на родном + языке пользователя. +

+
+
+
+ Приблизительное время сборки: + 1.4 SBU +
+
+ Требуемое дисковое + пространство: 250 MB +
+
+
+
+
+

+ 8.32.1. Установка пакета Gettext +

+

+ Подготовьте Gettext для компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --docdir=/usr/share/doc/gettext-0.22
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет (это занимает много времени, около 3 + SBU), выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+chmod -v 0755 /usr/lib/preloadable_libintl.so
+
+
+

+ 8.32.2. + Содержимое пакета Gettext +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + libasprintf.so, libgettextlib.so, + libgettextpo.so, libgettextsrc.so, libtextstyle.so и + preloadable_libintl.so +
+
+ Созданные каталоги: + /usr/lib/gettext, + /usr/share/doc/gettext-0.22, /usr/share/gettext и + /usr/share/gettext-0.22 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ autopoint +

+
+

+ Копирует файлы стандартной инфраструктуры Gettext в пакет + с исходным кодом +

+
+

+ envsubst +

+
+

+ Подставляет переменные окружения в строки, используемые + командной оболочкой +

+
+

+ gettext +

+
+

+ Переводит сообщение с естественного языка на язык + пользователя, осуществляя для этого поиск уже сделанного + перевода в каталоге сообщений +

+
+

+ gettext.sh +

+
+

+ В основном служит библиотекой функций оболочки для + gettext. +

+
+

+ gettextize +

+
+

+ Копирует все стандартные файлы Gettext в указанный + каталог верхнего уровня пакета, чтобы начать его + интернационализацию. +

+
+

+ msgattrib +

+
+

+ Фильтрует сообщения каталога переводов в соответствии с + их атрибутами и управляет атрибутами +

+
+

+ msgcat +

+
+

+ Объединяет указанные файлы .po +

+
+

+ msgcmp +

+
+

+ Сравнивает два файла .po, + чтобы проверить, что оба содержат один и тот же набор + строк msgid +

+
+

+ msgcomm +

+
+

+ Находит сообщения, которые являются общими для указанных + файлов .po +

+
+

+ msgconv +

+
+

+ Преобразует каталог переводов в другую кодировку символов +

+
+

+ msgen +

+
+

+ Создает каталог переводов на английский язык +

+
+

+ msgexec +

+
+

+ Применяет команду ко всем переводам каталога переводов +

+
+

+ msgfilter +

+
+

+ Применяет фильтр ко всем переводам каталога переводов +

+
+

+ msgfmt +

+
+

+ Генерирует каталог двоичных сообщений из каталога + переводов +

+
+

+ msggrep +

+
+

+ Извлекает все сообщения каталога переводов, которые + соответствуют заданному шаблону или принадлежат + нескольким указанным исходным файлам +

+
+

+ msginit +

+
+

+ Создает новый файл .po, + инициализируя метаинформацию значениями из среды + пользователя. +

+
+

+ msgmerge +

+
+

+ Объединяет два необработанных перевода в один файл +

+
+

+ msgunfmt +

+
+

+ Декомпилирует каталог двоичных сообщений в необработанный + текст перевода +

+
+

+ msguniq +

+
+

+ Объединяет дублирующиеся переводы в каталоге переводов +

+
+

+ ngettext +

+
+

+ Отображает перевод текстового сообщения на родной язык, + грамматическая форма которого зависит от числа. +

+
+

+ recode-sr-latin +

+
+

+ Перекодирует сербский текст с кириллицы на латиницу. +

+
+

+ xgettext +

+
+

+ Извлекает переводимые строки сообщений из заданных + исходных файлов для создания первого шаблона перевода. +

+
+

+ libasprintf +

+
+

+ Определяет класс autosprintf, который делает + подпрограммы вывода в формате C пригодными для + использования в программах на C++ для использования со + строками <string> и потоками + <iostream> +

+
+

+ libgettextlib +

+
+

+ Содержит общие подпрограммы, используемые различными + программами Gettext; они не предназначены для общего + использования +

+
+

+ libgettextpo +

+
+

+ Используется для написания специализированных программ, + обрабатывающих файлы .po; + эта библиотека используется, когда стандартных + приложений, поставляемых с Gettext (таких как + msgcomm, + msgcmp, + msgattrib, + и msgen), + недостаточно. +

+
+

+ libgettextsrc +

+
+

+ Предоставляет общие подпрограммы, используемые различными + программами Gettext; они не предназначены для общего + использования +

+
+

+ libtextstyle +

+
+

+ Библиотека стилей текста +

+
+

+ preloadable_libintl +

+
+

+ Библиотека, предназначенная для использования LD_PRELOAD, + которая помогает libintl + записывать в журнал непереведённые сообщения +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/glibc.html b/lfs-12.0-sysv/chapter08/glibc.html new file mode 100644 index 0000000..c0a7dbb --- /dev/null +++ b/lfs-12.0-sysv/chapter08/glibc.html @@ -0,0 +1,1229 @@ + + + + + + 8.5. Glibc-2.38 + + + + + + + + +
+

+ 8.5. Glibc-2.38 +

+
+

+ Пакет Glibc содержит основную библиотеку C. Эта библиотека + предоставляет основные процедуры для выделения памяти, поиска в + каталогах, открытия и закрытия файлов, чтения и записи файлов, + обработки строк, сопоставления с образцом, арифметики и так далее +

+
+
+
+ Приблизительное время сборки: + 11 SBU +
+
+ Требуемое дисковое + пространство: 3.0 GB +
+
+
+
+
+

+ 8.5.1. Установка пакета Glibc +

+

+ Некоторые программы Glibc используют не совместимый с FHS каталог + /var/db для хранения своих данных во + время выполнения. Примените следующий патч, чтобы эти программы + хранили свои данные в каталогах, совместимых с FHS: +

+
patch -Np1 -i ../glibc-2.38-fhs-1.patch
+

+ Теперь исправьте регрессию, из-за которой функция posix_memalign() + в некоторых условиях работала очень медленно: +

+
patch -Np1 -i ../glibc-2.38-memalign_fix-1.patch
+

+ Документация Glibc рекомендует выполнять компиляцию в отдельном + каталоге: +

+
mkdir -v build
+cd       build
+

+ Убедитесь, что утилиты ldconfig и sln будут установлены в + /usr/sbin: +

+
echo "rootsbindir=/usr/sbin" > configparms
+

+ Подготовьте Glibc к компиляции: +

+
../configure --prefix=/usr                            \
+             --disable-werror                         \
+             --enable-kernel=4.14                     \
+             --enable-stack-protector=strong          \
+             --with-headers=/usr/include              \
+             libc_cv_slibdir=/usr/lib
+
+

+ Значение параметров настройки: +

+
+
+ --disable-werror +
+
+

+ Отключает параметр -Werror, передаваемый GCC. Это необходимо + для запуска набора тестов. +

+
+
+ --enable-kernel=4.14 +
+
+

+ Этот параметр сообщает системе сборки, что Glibc может + использоваться с ядрами старше 4.14. Это значение + используется для создание обходных путей на случай, если + системный вызов, представленный в более поздней версии, + нельзя будет использовать. +

+
+
+ --enable-stack-protector=strong +
+
+

+ Этот параметр повышает безопасность системы за счет + добавления дополнительного кода для проверки переполнения + буфера. +

+
+
+ --with-headers=/usr/include +
+
+

+ Сообщает системе сборки местоположение заголовочных файлов + API ядра +

+
+
+ libc_cv_slibdir=/usr/lib +
+
+

+ Эта переменная устанавливает правильную библиотеку для всей + системы. Мы не хотим, чтобы использовалась lib64 +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+
+ [Важно] +

+ Важно +

+

+ В этом разделе набор тестов для Glibc считается критически + важным. Ни в коем случае не пропускайте его. +

+
+

+ Как правило, несколько тестов не проходят. Ошибки тестирования, + перечисленные ниже, можно игнорировать. +

+
make check
+

+ Вы можете увидеть, что ряд тестов завершились неудачей. Набор + тестов Glibc в некоторой степени зависит от хост-системы. Несколько + ошибок из более чем 5000 тестов можно игнорировать. Список наиболее + распространенных проблем последних версий LFS: +

+
+
    +
  • +

    + Известно, что io/tst-lchmod не работает в среде + chroot LFS. +

    +
  • +
  • +

    + Известно что тест stdlib/tst-arc4random-thread + завершается неудачей, если ядро хоста относительно старое. +

    +
  • +
  • +

    + Некоторые тесты, например, nss/tst-nss-files-hosts-multi не + работают на относительно медленных системах из-за внутреннего + тайм-аута. +

    +
  • +
  • +

    + Кроме того, некоторые тесты могут завершиться неудачно при + использовании относительно старой модели процессора или + версии ядра хоста. +

    +
  • +
+
+

+ На этапе установки Glibc будет жаловаться на отсутствие файла + /etc/ld.so.conf, хотя это безобидное + сообщение, предотвратить его появление можно с помощью команды: +

+
touch /etc/ld.so.conf
+

+ Исправьте Makefile, чтобы пропустить устаревшую проверку + работоспособности, которая завершается неудачей в современной + конфигурации Glibc: +

+
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
+

+ Установите пакет: +

+
make install
+

+ Исправьте жестко заданный путь к исполняемому загрузчику в скрипте + ldd: +

+
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
+

+ Установите файл настроек и создайте рабочий каталог nscd: +

+
cp -v ../nscd/nscd.conf /etc/nscd.conf
+mkdir -pv /var/cache/nscd
+

+ Затем установите локали, которые дадут возможность системе отвечать + на разных языках. Ни одна из локалей не требуется системе, но если + некоторые из них отсутствуют, то наборы тестов ряда пакетов будут + пропускать важные тестовые сценарии. +

+

+ Отдельные локали можно установить с помощью программы localedef. Например, вторая + команда localedef + приведенная ниже, объединяет определение независимой от набора + символов локали /usr/share/i18n/locales/cs_CZ с набором символов + /usr/share/i18n/charmaps/UTF-8.gz и + добавляет результат в файл /usr/lib/locale/locale-archive. Следующие + инструкции установят минимальный набор локалей, необходимый для + оптимального охвата тестов +

+
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
+

+ Кроме того, установите локаль для вашей страны, языка и набора + символов. +

+

+ В качестве альтернативы, установите сразу все локали перечисленные + в файле glibc-2.38/localedata/SUPPORTED (он включает все + локали из списка выше и многие другие), выполнив команду: +

+
make localedata/install-locales
+

+ Затем используйте команду localedef для создания и + установки локалей, не перечисленных в файле glibc-2.38/localedata/SUPPORTED, когда они вам + понадобятся. Например, для некоторых тестов в этой главе + потребуются следующие две локали: +

+
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
+
+ [Примечание] +

+ Примечание +

+

+ Glibc теперь использует libidn2 для разрешения + интернационализированных доменных имен. Если такая функция + необходима, то инструкцию по установке libidn2 можно найти на + странице + BLFS libidn2. +

+
+
+
+

+ 8.5.2. Настройка Glibc +

+
+

+ 8.5.2.1. Добавление nsswitch.conf +

+

+ Необходимо создать файл /etc/nsswitch.conf, потому что настроенный по + умолчанию Glibc плохо работает в сетевой среде. +

+

+ Создайте новый фай /etc/nsswitch.conf, выполнив следующие + действия: +

+
cat > /etc/nsswitch.conf << "EOF"
+# 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
+EOF
+
+
+

+ 8.5.2.2. Добавление данных о часовом поясе +

+

+ Установите и настройте часовой пояс следующим образом: +

+
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
+
+

+ Значение команд zic: +

+
+
+ zic -L + /dev/null ... +
+
+

+ Создаёт часовые пояса posix без секунд координации. Обычно + их помещают как в zoneinfo + так и в zoneinfo/posix. + Часовые пояса POSIX должны быть прописаны в zoneinfo, иначе различные тесты будут + сообщать об ошибках. На встраиваемых системах с небольшим + диском, где часовые пояса никогда не будут обновляться, + можно сэкономить примерно 1.9 MB не используя каталог + posix, однако некоторые + приложения или наборы тестов могут вызывать сбои. +

+
+
+ zic -L + leapseconds ... +
+
+

+ Создаёт правильные часовые пояса с секундами координации. + На встраиваемых системах с небольшим диском, где часовые + пояса никогда не будут обновляться, а правильность времени + неважна, можно выиграть примерно 1.9 MB, исключив каталог + right. +

+
+
+ zic ... -p + ... +
+
+

+ Создаёт файл posixrules. + Используется New York, потому что POSIX требует + соответствия правил летнего времени с правилами США. +

+
+
+
+

+ Один из способов определить местный часовой пояс — запустить + следующий скрипт: +

+
tzselect
+

+ После нескольких вопросов о местоположении скрипт выдаст + наименование часового пояса (например America/Edmonton). В файле + /usr/share/zoneinfo перечислены и + другие возможные часовые пояса, такие как Canada/Eastern или EST5EDT, которые не распознаются + скриптом, но могут быть использованы. +

+

+ Создайте файл /etc/localtime + выполнив: +

+
ln -sfv /usr/share/zoneinfo/<xxx> /etc/localtime
+

+ Замените <xxx> на + имя выбранного часового пояса (например, Europe/Moscow). +

+
+
+

+ 8.5.2.3. Настройка + динамического загрузчика +

+

+ По умолчанию, динамический загрузчик (/lib/ld-linux.so.2) ищет в каталоге + /usr/lib, нужные для работы + программ библиотеки. Однако, если библиотеки находятся в другом + каталоге, то его необходимо указать в файле /etc/ld.so.conf, чтобы динамический загрузчик + мог их найти. Два каталога - /usr/local/lib и /opt/lib часто используются для дополнительных + библиотек, поэтому добавьте их в пути поиска для динамического + загрузчика. +

+

+ Создайте новый файл /etc/ld.so.conf + выполнив: +

+
cat > /etc/ld.so.conf << "EOF"
+# Begin /etc/ld.so.conf
+/usr/local/lib
+/opt/lib
+
+EOF
+

+ Динамический загрузчик может выполнить поиск в каталоге и + включить содержимое найденных там файлов. Обычно такие файлы + состоят из одной строки и содержат путь к библиотеке. Чтобы + добавить эту возможность, выполните следующие команды: +

+
cat >> /etc/ld.so.conf << "EOF"
+# Add an include directory
+include /etc/ld.so.conf.d/*.conf
+
+EOF
+mkdir -pv /etc/ld.so.conf.d
+
+
+
+

+ 8.5.3. Содержимое + пакета Glibc +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + 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} +
+
+ Созданные каталоги: + /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 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ gencat +

+
+

+ Создает каталоги сообщений +

+
+

+ getconf +

+
+

+ Отображает настройки системы для специфичных переменных + файловой системы +

+
+

+ getent +

+
+

+ Получает записи из административной базы данных +

+
+

+ iconv +

+
+

+ Выполняет преобразование набора символов +

+
+

+ iconvconfig +

+
+

+ Создает быстрозагружаемые файлы настроек модуля + iconv +

+
+

+ ldconfig +

+
+

+ Настраивает привязки времени выполнения динамического + компоновщика +

+
+

+ ldd +

+
+

+ Сообщает, какие общие библиотеки требуются каждой + программе или общей библиотеке +

+
+

+ lddlibc4 +

+
+

+ Помогает ldd работать с + объектными файлами. Он не существует на более новых + архитектурах, таких как x86_64 +

+
+

+ locale +

+
+

+ Выводит различную информацию о текущей локали +

+
+

+ localedef +

+
+

+ Компилирует спецификации локали +

+
+

+ makedb +

+
+

+ Создает простую базу данных на основе текстового ввода +

+
+

+ mtrace +

+
+

+ Читает и интерпретирует файл трассировки памяти; + отображает сводку в удобочитаемом формате +

+
+

+ nscd +

+
+

+ Демон, который обеспечивает кеширование наиболее + распространенных запросов к службе имен +

+
+

+ pcprofiledump +

+
+

+ Создает дамп информации, генерируемой при профилировании + ПК +

+
+

+ pldd +

+
+

+ Перечисляет динамические общие объекты, используемые + запущенными процессами. +

+
+

+ sln +

+
+

+ Статически скомпонованная программа ln +

+
+

+ sotruss +

+
+

+ Отслеживает вызовы процедур общей библиотеки указанной + команды +

+
+

+ sprof +

+
+

+ Читает и отображает данные профилирования общих объектов. +

+
+

+ tzselect +

+
+

+ Запрашивает у пользователя информацию о текущем + местоположении системы и выводит описание + соответствующего часового пояса. +

+
+

+ xtrace +

+
+

+ Отслеживает выполнение программы, отображая выполняемую в + данный момент функцию +

+
+

+ zdump +

+
+

+ Выдает дамп часового пояса +

+
+

+ zic +

+
+

+ Компилятор часовых поясов +

+
+

+ ld-*.so +

+
+

+ Вспомогательная программа для исполняемых файлов общей + библиотеки +

+
+

+ libBrokenLocale +

+
+

+ Используется внутри Glibc как грубый хак для запуска + сломанных программ (например, некоторые приложения + Motif). Прочитайте комментарии в glibc-2.38/locale/broken_cur_max.c для + получения дополнительной информации +

+
+

+ libanl +

+
+

+ Библиотека-заглушка, не содержащая функций. Ранее это + была библиотека асинхронного поиска имен, функции которой + теперь находятся в libc +

+
+

+ libc +

+
+

+ Основная библиотека C +

+
+

+ libc_malloc_debug +

+
+

+ Включает проверку выделения памяти при предварительной + загрузке +

+
+

+ libdl +

+
+

+ Библиотека-заглушка, не содержащая функций. Ранее была + библиотекой интерфейса динамической компоновки, функции + которой теперь находятся в libc +

+
+

+ libg +

+
+

+ Библиотека-заглушка без функций. Раньше была библиотекой + среды выполнения для g++ +

+
+

+ libm +

+
+

+ Математическая библиотека +

+
+

+ libmvec +

+
+

+ Библиотека векторных математических вычислений, + подключаемая по мере необходимости при использовании + libm +

+
+

+ libmcheck +

+
+

+ Включает проверку выделения памяти при подключении к +

+
+

+ libmemusage +

+
+

+ Используется memusage для сбора + информации об использовании памяти программой +

+
+

+ libnsl +

+
+

+ Библиотека сетевых служб, которая в настоящее время + устарела +

+
+

+ libnss_* +

+
+

+ Модули Name Service Switch, содержащие функции для + разрешения имен хостов, имен пользователей, имен групп, + псевдонимов, служб, протоколов и т. д. Загружаются + libc в соответствии с + конфигурацией в /etc/nsswitch.conf +

+
+

+ libpcprofile +

+
+

+ Содержит функции профилирования, используемые для + отслеживания времени, потраченного процессором в + конкретных строках исходного кода +

+
+

+ libpthread +

+
+

+ Библиотека-заглушка, не содержащая функций. Ранее + содержала функции, обеспечивающие большинство + интерфейсов, заданных POSIX.1c Threads Extensions + (расширения реализации потоков) и интерфейсы семафоров, + указанных в POSIX.1b Real-time Extension (расширения + реального времени), теперь эти функции находятся в + libc +

+
+

+ libresolv +

+
+

+ Содержит функции создания, пересылки и интерпретации + пакетов, используемых на серверах доменных имен в сети + интернет +

+
+

+ librt +

+
+

+ Содержит функции, реализующие большую часть интерфейсов, + определяемых в POSIX.1b Real-time Extension (расширения + реального времени) +

+
+

+ libthread_db +

+
+

+ Содержит функции, полезные для сборки отладчиков для + многопоточных программ +

+
+

+ libutil +

+
+

+ Библиотека-заглушка, не содержащая функций. Ранее + содержал код для «стандартных» функций, используемых + во многих утилитах Unix. Эти функции теперь находятся в + libc +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gmp.html b/lfs-12.0-sysv/chapter08/gmp.html new file mode 100644 index 0000000..7c1e03d --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gmp.html @@ -0,0 +1,268 @@ + + + + + + 8.19. GMP-6.3.0 + + + + + + + + +
+

+ 8.19. GMP-6.3.0 +

+
+

+ Пакет GMP содержит математические библиотеки. Они содержат полезные + функции для арифметики с произвольной точностью. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 54 MB +
+
+
+
+
+

+ 8.19.1. Установка пакета GMP +

+
+ [Примечание] +

+ Примечание +

+

+ Если вы выполняете сборку для 32-разрядной архитектуры x86, но + ваш процессор, способен выполнять 64-разрядный код, и вы указали в переменных окружения + CFLAGS, скрипт configure попытается + выполнить настройку для 64-разрядной системы и завершится + ошибкой. Чтобы избежать этого, необходимо вызвать команду + configure с приведенным ниже параметром +

+
ABI=32 ./configure ...
+
+
+ [Примечание] +

+ Примечание +

+

+ Настройки GMP по умолчанию собирают библиотеки, оптимизированные + для процессора хоста. Если требуются библиотеки, подходящие для + процессоров с меньшей производительностью, чем у процессора + хоста, можно собрать общие библиотеки, добавив параметр + --host=none-linux-gnu в команде + configure. +

+
+

+ Подготовьте GMP к компиляции: +

+
./configure --prefix=/usr    \
+            --enable-cxx     \
+            --disable-static \
+            --docdir=/usr/share/doc/gmp-6.3.0
+
+

+ Значение новых параметров настройки: +

+
+
+ --enable-cxx +
+
+

+ Этот параметр включает поддержку C++ +

+
+
+ --docdir=/usr/share/doc/gmp-6.3.0 +
+
+

+ Эта переменная указывает местоположение для документации. +

+
+
+
+

+ Скомпилируйте пакет и сгенерируйте HTML-документацию: +

+
make
+make html
+
+ [Важно] +

+ Важно +

+

+ Набор тестов для GMP в этом разделе считается критически важным. + Ни в коем случае не пропускайте его. +

+
+

+ Проверьте результаты: +

+
make check 2>&1 | tee gmp-check-log
+
+ [Внимание] +

+ Внимание +

+

+ Код в GMP сильно оптимизирован для процессора, на котором он + собран. Иногда код, определяющий процессор, неверно определяет + возможности системы, и в тестах или других приложениях, + использующих библиотеки gmp, возникают ошибки с сообщением + "Illegal instruction". В этом случае gmp следует + переконфигурировать с параметром --host=none-linux-gnu и пересобрать. +

+
+

+ Убедитесь, что все 199 тестов в наборе тестов пройдены. Проверьте + результат, выполнив следующую команду: +

+
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
+

+ Установите пакет и его документацию: +

+
make install
+make install-html
+
+
+

+ 8.19.2. Содержимое + пакета GMP +

+
+
+
+ Установленные библиотеки: + libgmp.so и libgmpxx.so +
+
+ Созданные каталоги: + /usr/share/doc/gmp-6.3.0 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ libgmp +

+
+

+ Содержит точные математические функции +

+
+

+ libgmpxx +

+
+

+ Содержит точные математические функции C++ +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gperf.html b/lfs-12.0-sysv/chapter08/gperf.html new file mode 100644 index 0000000..0448165 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gperf.html @@ -0,0 +1,163 @@ + + + + + + 8.38. Gperf-3.1 + + + + + + + + +
+

+ 8.38. Gperf-3.1 +

+
+

+ Gperf генерирует идеальную хэш-функцию из набора ключей. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 6.1 MB +
+
+
+
+
+

+ 8.38.1. Установка пакета Gperf +

+

+ Подготовьте Gperf к компиляции: +

+
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
+

+ Скомпилируйте пакет: +

+
make
+

+ Известно, что тесты завершаются ошибкой при одновременном + выполнении нескольких тестов (параметр -j больше 1). Для выполнения + тестов, запустите следующую команду: +

+
make -j1 check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.38.2. Содержимое + пакета Gperf +

+
+
+
+ Установленные программы: + gperf +
+
+ Созданные каталоги: + /usr/share/doc/gperf-3.1 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ gperf +

+
+

+ Генерирует идеальный хэш из набора ключей +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/grep.html b/lfs-12.0-sysv/chapter08/grep.html new file mode 100644 index 0000000..6c06629 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/grep.html @@ -0,0 +1,195 @@ + + + + + + 8.34. Grep-3.11 + + + + + + + + +
+

+ 8.34. Grep-3.11 +

+
+

+ Пакет Grep содержит программы для поиска по содержимому файлов. +

+
+
+
+ Приблизительное время сборки: + 0.4 SBU +
+
+ Требуемое дисковое + пространство: 39 MB +
+
+
+
+
+

+ 8.34.1. Установка пакета Grep +

+

+ Во-первых, удалите предупреждение об использовании egrep и fgrep, + которое приводит к сбою тестов некоторых пакетов: +

+
sed -i "s/echo/#echo/" src/egrep.sh
+

+ Подготовьте Grep к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.34.2. Содержимое + пакета Grep +

+
+
+
+ Установленные программы: + egrep, fgrep, и grep +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ egrep +

+
+

+ Выводит строки, соответствующие расширенному регулярному + выражению. Команда устарела, вместо неё используйте + grep -E +

+
+

+ fgrep +

+
+

+ Выводит строки, соответствующие списку фиксированных + строк. Команда устарела, вместо неё используйте + grep -F +

+
+

+ grep +

+
+

+ Выводит строки, соответствующие простому регулярному + выражению +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/groff.html b/lfs-12.0-sysv/chapter08/groff.html new file mode 100644 index 0000000..0af3b31 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/groff.html @@ -0,0 +1,897 @@ + + + + + + 8.61. Groff-1.23.0 + + + + + + + + +
+

+ 8.61. Groff-1.23.0 +

+
+

+ Пакет Groff содержит программы для обработки и форматирования + текста и изображений. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 107 MB +
+
+
+
+
+

+ 8.61.1. Установка пакета Groff +

+

+ Groff ожидает, что переменная окружения PAGE будет содержать размер бумаги по умолчанию. Для + пользователей из США подходит PAGE=letter. Для других стран больше + подойдет PAGE=A4. Хотя + формат бумаги по умолчанию настраивается во время компиляции, его + можно переопределить позже, записав «A4» или «letter» в файл + /etc/papersize. +

+

+ Подготовьте Groff к компиляции: +

+
PAGE=<paper_size> ./configure --prefix=/usr
+

+ Соберите пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.61.2. Содержимое + пакета Groff +

+
+
+
+ Установленные программы: + 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 +
+
+ Созданные каталоги: + /usr/lib/groff и + /usr/share/doc/groff-1.23.0, /usr/share/groff +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ addftinfo +

+
+

+ Читает файл шрифта troff и добавляет некоторую + дополнительную информацию о метрике шрифта, используемую + системой groff. +

+
+

+ afmtodit +

+
+

+ Создаёт файл шрифта для использования с groff и grops +

+
+

+ chem +

+
+

+ Препроцессор Groff для создания диаграмм химических + структур +

+
+

+ eqn +

+
+

+ Компилирует описания уравнений, имеющихся внутри входных + файлов troff, которые понятны troff +

+
+

+ eqn2graph +

+
+

+ Преобразует a troff EQN (уравнение) во фрагмент + изображения +

+
+

+ gdiffmk +

+
+

+ Отображает различия между файлами groff/nroff/troff +

+
+

+ glilypond +

+
+

+ Преобразует ноты, записанные на языке lilypond в язык + groff +

+
+

+ gperl +

+
+

+ Препроцессор для groff, позволяющий вставлять код perl в + файлы groff +

+
+

+ gpinyin +

+
+

+ Препроцессор groff, позволяющий вставлять Pinyin (запись + звуков китайского языка с помощью латинского алфавита) в + файлы groff. +

+
+

+ grap2graph +

+
+

+ Преобразует диаграммы grap во фрагмент растрового + изображения (grap - это старый язык программирования Unix + для создания диаграмм) +

+
+

+ grn +

+
+

+ Препроцессор groff для файлов + gremlin +

+
+

+ grodvi +

+
+

+ Драйвер для groff, создающий + выходные файлы в формате TeX dvi +

+
+

+ groff +

+
+

+ Внешний интерфейс к системе форматирования документов + groff; обычно он запускает программу troff и постпроцессор, + соответствующий выбранному устройству +

+
+

+ groffer +

+
+

+ Отображает файлы groff и справочные страницы на + терминалах X и tty +

+
+

+ grog +

+
+

+ Читает файлы и пытается определить, какие из параметров + groff + -e, -man, -me, + -mm, -ms, -p, + -s, или -t требуются для печати файлов, и + указывает команду groff с этими + параметрами +

+
+

+ grolbp +

+
+

+ Драйвер groff для принтеров + Canon CAPSL (лазерные принтеры серий LBP-4 и LBP-8) +

+
+

+ grolj4 +

+
+

+ Драйвер для groff который выводит + результат в формате PCL5, подходящем для принтера HP + LaserJet 4 +

+
+

+ gropdf +

+
+

+ Переводит выходные данные GNU troff в формат PDF +

+
+

+ grops +

+
+

+ Переводит выходные данные GNU troff в формат + PostScript +

+
+

+ grotty +

+
+

+ Переводит вывод GNU troff в форму, + подходящую для устройств, подобных пишущим машинкам. +

+
+

+ hpftodit +

+
+

+ Создает файл шрифта для использования с groff -Tlj4 из файла + метрик шрифта для HP +

+
+

+ indxbib +

+
+

+ Создает инвертированный индекс для библиографических баз + данных для указанного файла, используемый с refer, lookbib, и lkbib +

+
+

+ lkbib +

+
+

+ Выполняет поиск в библиографических базах данных ссылок, + содержащих указанные ключи, и сообщает о любых найденных + ссылках +

+
+

+ lookbib +

+
+

+ Выводит приглашение при наличии стандартной ошибки (если + устройство стандартного ввода не является терминалом), + читает из устройства стандартного ввода строку, в которой + находится набор ключевых слов, ищет в библиографической + базе данных для указанного файла ссылки, содержащие эти + ключевые слова, выводит все ссылки, найденные в + стандартном выводе и повторяет этот процесс до тех пор, + пока не завершится входной поток +

+
+

+ mmroff +

+
+

+ Простой препроцессор для groff +

+
+

+ neqn +

+
+

+ Форматирует уравнения для их вывода в формате American + Standard Code for Information Interchange (ASCII) +

+
+

+ nroff +

+
+

+ Скрипт, который эмулирует команду nroff с помощью + groff +

+
+

+ pdfmom +

+
+

+ Это обертка над groff которая упрощает создание + PDF-документов из файлов, отформатированных с помощью + макросов mom. +

+
+

+ pdfroff +

+
+

+ Создает pdf-документы с помощью groff +

+
+

+ pfbtops +

+
+

+ Преобразует шрифт PostScript в формате .pfb в формат ASCII +

+
+

+ pic +

+
+

+ Компилирует описания изображений, вставленных во входные + файлы troff или TeX, в команды, понятные TeX или + troff +

+
+

+ pic2graph +

+
+

+ Преобразует диаграмму PIC во фрагмент изображения +

+
+

+ post-grohtml +

+
+

+ Переводит выходной поток GNU troff в HTML +

+
+

+ preconv +

+
+

+ Преобразует кодировку входных файлов в формат, понимаемый + GNU troff +

+
+

+ pre-grohtml +

+
+

+ Переводит выходной поток GNU troff в HTML +

+
+

+ refer +

+
+

+ Копирует содержимое файла в стандартный вывод, кроме тех + символов, которые расположены между .[ и .] и интерпретируются как + цитаты, и кроме строк между .R1 и .R2, которые интерпретируются + как команды, указывающие как цитаты должны быть + обработаны +

+
+

+ roff2dvi +

+
+

+ Преобразует файлы roff в формат DVI +

+
+

+ roff2html +

+
+

+ Преобразует файлы roff в формат HTML +

+
+

+ roff2pdf +

+
+

+ Преобразует файлы roff в формат PDF +

+
+

+ roff2ps +

+
+

+ Преобразует файлы roff в файлы ps +

+
+

+ roff2text +

+
+

+ Преобразует файлы roff в текстовые файлы +

+
+

+ roff2x +

+
+

+ Преобразует файлы roff в другие форматы +

+
+

+ soelim +

+
+

+ Читает файлы и заменяет строки вида .so file содержимым указанного + файла file +

+
+

+ tbl +

+
+

+ Компилирует описания таблиц, вставленные во входные файлы + troff, в команды, понимаемые troff +

+
+

+ tfmtodit +

+
+

+ Создает файл шрифта для использования с groff -Tdvi +

+
+

+ troff +

+
+

+ Полностью совместим с Unix troff; его следует + вызывать с помощью команды groff, которая также + будет запускать препроцессоры и постпроцессоры в + соответствующем порядке и с соответствующими параметрами +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/grub.html b/lfs-12.0-sysv/chapter08/grub.html new file mode 100644 index 0000000..70ab88c --- /dev/null +++ b/lfs-12.0-sysv/chapter08/grub.html @@ -0,0 +1,602 @@ + + + + + + 8.62. GRUB-2.06 + + + + + + + + +
+

+ 8.62. GRUB-2.06 +

+
+

+ Пакет GRUB содержит загрузчик операционной системы от проекта GNU + (GRand Unified Bootloader). +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 161 MB +
+
+
+
+
+

+ 8.62.1. Установка пакета GRUB +

+
+ [Примечание] +

+ Примечание +

+

+ Если ваша система поддерживает UEFI и вы хотите загрузить LFS с + UEFI, вы можете пропустить установку этого пакета в LFS и + установить GRUB с поддержкой UEFI (и его зависимости), следуя + инструкции + из BLFS. +

+
+
+ [Предупреждение] +

+ Предупреждение +

+

+ Сбросьте переменные окружения, которые могут повлиять на сборку: +

+
unset {C,CPP,CXX,LD}FLAGS
+

+ Не пытайтесь «настраивать» этот пакет с помощью + пользовательских флагов компиляции. Этот пакет является + загрузчиком. Низкоуровневые операции в исходном коде могут быть + нарушены из-за агрессивной оптимизации. +

+
+

+ Устранена проблема, приводившая к сбою grub-install, когда раздел + /boot (или корневой раздел, если + /boot не является отдельным разделом) + создается e2fsprogs-1.47.0 или более поздней версии: +

+
patch -Np1 -i ../grub-2.06-upstream_fixes-1.patch
+

+ Подготовьте GRUB к компиляции: +

+
./configure --prefix=/usr          \
+            --sysconfdir=/etc      \
+            --disable-efiemu       \
+            --disable-werror
+
+

+ Значение новых параметров настройки: +

+
+
+ --disable-werror +
+
+

+ Этот параметр позволяет завершить сборку с предупреждениями, + появившимися в более поздних версиях Flex. +

+
+
+ --disable-efiemu +
+
+

+ Этот параметр запрещает установку компонента, отключает + функции и некоторые программы тестирования, которые не нужны + для LFS. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Запуск набора тестов не рекомендуется. Большинство тестов зависят + от пакетов, недоступных в ограниченной среде LFS. Если вы все равно + хотите запустить тесты, выполните make check. +

+

+ Установите пакет: +

+
make install
+mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
+

+ Создание загружаемой системы LFS с помощью GRUB будет обсуждаться в + Раздел 10.4, + «Использование GRUB для настройки процесса загрузки». +

+
+
+

+ 8.62.2. Содержимое + пакета GRUB +

+
+
+
+ Установленные программы: + 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 +
+
+ Созданные каталоги: + /usr/lib/grub, /etc/grub.d, + /usr/share/grub и /boot/grub (при первом запуске + grub-install) +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ grub-bios-setup +

+
+

+ Вспомогательная программа для grub-install +

+
+

+ grub-editenv +

+
+

+ Инструмент для редактирования блока окружения + (environment block) +

+
+

+ grub-file +

+
+

+ Проверяет, относится ли данный файл к указанному типу +

+
+

+ grub-fstest +

+
+

+ Инструмент для отладки драйвера файловой системы +

+
+

+ grub-glue-efi +

+
+

+ Объединяет 32-разрядные и 64-разрядные бинарные файлы в + один файл (для компьютеров Apple) +

+
+

+ grub-install +

+
+

+ Устанавливает GRUB на ваш диск +

+
+

+ grub-kbdcomp +

+
+

+ Скрипт, который преобразует макет xkb в макет, + распознаваемый GRUB +

+
+

+ grub-macbless +

+
+

+ Это аналог bless в стиле Mac для файловых систем HFS или + HFS+ (команда bless характерна для + компьютеров Apple; она делает устройство загрузочным) +

+
+

+ grub-menulst2cfg +

+
+

+ Преобразует GRUB Legacy menu.lst в grub.cfg для использования с GRUB 2 +

+
+

+ grub-mkconfig +

+
+

+ Генерирует файл grub.cfg +

+
+

+ grub-mkimage +

+
+

+ Создаёт загрузочный образ GRUB +

+
+

+ grub-mklayout +

+
+

+ Создаёт файл раскладки клавиатуры GRUB +

+
+

+ grub-mknetdir +

+
+

+ Подготавливает сетевой загрузочный каталог GRUB +

+
+

+ grub-mkpasswd-pbkdf2 +

+
+

+ Генерирует зашифрованный пароль PBKDF2 для использования + в меню загрузки +

+
+

+ grub-mkrelpath +

+
+

+ Создает имена системных путей относительно корня +

+
+

+ grub-mkrescue +

+
+

+ Создает загрузочный образ GRUB, подходящий для дискеты, + CDROM/DVD или USB-накопителя +

+
+

+ grub-mkstandalone +

+
+

+ Генерирует автономный образ +

+
+

+ grub-ofpathname +

+
+

+ Вспомогательная программа, которая выводит путь к + устройству GRUB +

+
+

+ grub-probe +

+
+

+ Проверяет информацию об устройстве для заданного пути или + устройства +

+
+

+ grub-reboot +

+
+

+ Устанавливает пункт меню в GRUB для загрузки по + умолчанию, только для следующей загрузки(однократно) +

+
+

+ grub-render-label +

+
+

+ Отображает .disk_label для компьютеров Apple Mac +

+
+

+ grub-script-check +

+
+

+ Проверяет скрипт настройки GRUB на наличие синтаксических + ошибок +

+
+

+ grub-set-default +

+
+

+ Устанавливает для GRUB загрузочную запись по умолчанию +

+
+

+ grub-sparc64-setup +

+
+

+ Вспомогательная программа для grub-setup +

+
+

+ grub-syslinux2cfg +

+
+

+ Преобразует файл конфигурации syslinux в формат grub.cfg +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/gzip.html b/lfs-12.0-sysv/chapter08/gzip.html new file mode 100644 index 0000000..e08588b --- /dev/null +++ b/lfs-12.0-sysv/chapter08/gzip.html @@ -0,0 +1,365 @@ + + + + + + 8.63. Gzip-1.12 + + + + + + + + +
+

+ 8.63. Gzip-1.12 +

+
+

+ Пакет Gzip содержит программы для сжатия и распаковки файлов. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 21 MB +
+
+
+
+
+

+ 8.63.1. Установка пакета Gzip +

+

+ Подготовьте Gzip к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.63.2. Содержимое + пакета Gzip +

+
+
+
+ Установленные программы: + gunzip, gzexe, gzip, uncompress (жесткая + ссылка на gunzip), zcat, zcmp, zdiff, zegrep, zfgrep, zforce, + zgrep, zless, zmore и znew +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ gunzip +

+
+

+ Распаковывает gzip-файлы +

+
+

+ gzexe +

+
+

+ Создает самораспаковывающиеся исполняемые файлы +

+
+

+ gzip +

+
+

+ Сжимает файлы, используя алгоритм Lempel-Ziv (LZ77). +

+
+

+ uncompress +

+
+

+ Распаковывает сжатые файлы +

+
+

+ zcat +

+
+

+ Распаковывает указанные сжатые файлы в стандартный поток + вывода +

+
+

+ zcmp +

+
+

+ Запускает cmp для архивированных + файлов +

+
+

+ zdiff +

+
+

+ Запускает diff для архивированных + файлов +

+
+

+ zegrep +

+
+

+ Запускает egrep для + архивированных файлов +

+
+

+ zfgrep +

+
+

+ Запускает fgrep для + архивированных файлов +

+
+

+ zforce +

+
+

+ Принудительно устанавливает расширение .gz всем сжатым файлам, чтобы + gzip не + сжимал их снова; это может быть полезно, когда имена + файлов были обрезаны во время передачи файла +

+
+

+ zgrep +

+
+

+ Запускает grep для архивированных + файлов +

+
+

+ zless +

+
+

+ Запускает less для архивированных + файлов +

+
+

+ zmore +

+
+

+ Запускает more для архивированных + файлов +

+
+

+ znew +

+
+

+ Повторно сжимает файлы из формата compress в формат + gzip — из + .Z в .gz +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/iana-etc.html b/lfs-12.0-sysv/chapter08/iana-etc.html new file mode 100644 index 0000000..9069070 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/iana-etc.html @@ -0,0 +1,163 @@ + + + + + + 8.4. Iana-Etc-20230810 + + + + + + + + +
+

+ 8.4. + Iana-Etc-20230810 +

+
+

+ Пакет Iana-Etc предоставляет данные для сетевых служб и протоколов. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 4.8 MB +
+
+
+
+
+

+ 8.4.1. Установка пакета Iana-Etc +

+

+ Для этого пакета необходимо лишь скопировать нужные файлы: +

+
cp services protocols /etc
+
+
+

+ 8.4.2. + Содержимое пакета Iana-Etc +

+
+
+
+ Установленные файлы: + /etc/protocols и /etc/services +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ /etc/protocols +

+
+

+ Описывает различные интернет-протоколы DARPA, которые + доступны из подсистемы TCP/IP +

+
+

+ /etc/services +

+
+

+ Обеспечивает сопоставление понятных текстовых имен для + интернет-сервисов с назначенными им номерами портов и + типами протоколов. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/inetutils.html b/lfs-12.0-sysv/chapter08/inetutils.html new file mode 100644 index 0000000..313e5e5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/inetutils.html @@ -0,0 +1,363 @@ + + + + + + 8.40. Inetutils-2.4 + + + + + + + + +
+

+ 8.40. + Inetutils-2.4 +

+
+

+ Пакет Inetutils содержит базовые программы для работы с сетью. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 31 MB +
+
+
+
+
+

+ 8.40.1. Установка пакета Inetutils +

+

+ Подготовьте Inetutils к компиляции: +

+
./configure --prefix=/usr        \
+            --bindir=/usr/bin    \
+            --localstatedir=/var \
+            --disable-logger     \
+            --disable-whois      \
+            --disable-rcp        \
+            --disable-rexec      \
+            --disable-rlogin     \
+            --disable-rsh        \
+            --disable-servers
+
+

+ Значение параметров настройки: +

+
+
+ --disable-logger +
+
+

+ Параметр запрещает установку программы logger, используемой + скриптами для отправки сообщений системной службе логирования + (System Log Daemon). Не устанавливайте её, т.к. Util-linux + устанавливает более свежую версию. +

+
+
+ --disable-whois +
+
+

+ Этот параметр отключает сборку whois-клиента Inetutils, + который устарел. Инструкции для сборки более нового клиента + whois находятся + в книге BLFS. +

+
+
+ --disable-r* +
+
+

+ Отключает установку устаревших программ, которые не должны + использоваться по соображениям безопасности. Функционал этих + программы можно получить установкой пакета openssh из книги BLFS. +

+
+
+ --disable-servers +
+
+

+ Отключает установку различных сетевых серверов, входящих в + состав пакета Inetutils. Эти серверы считаются неподходящими + для базовой системы LFS. Некоторые из них небезопасны по + своей природе и считаются надежными только в доверенных + сетях. Обратите внимание, что для многих из них доступны + более качественные замены. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните:: +

+
make check
+

+ Установите пакет: +

+
make install
+

+ Переместите программу в правильное место: +

+
mv -v /usr/{,s}bin/ifconfig
+
+
+

+ 8.40.2. + Содержимое пакета Inetutils +

+
+
+
+ Установленные программы: + dnsdomainname, ftp, ifconfig, hostname, + ping, ping6, talk, telnet, tftp и traceroute +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ dnsdomainname +

+
+

+ Показывает системное DNS имя +

+
+

+ ftp +

+
+

+ Программа для передачи файлов по протоколу FTP +

+
+

+ hostname +

+
+

+ Сообщает или задает имя хоста +

+
+

+ ifconfig +

+
+

+ Управляет сетевыми интерфейсами +

+
+

+ ping +

+
+

+ Отправляет пакеты эхо-запросов и сообщает, сколько + времени занимают ответы +

+
+

+ ping6 +

+
+

+ Версия ping + для сетей IPv6 +

+
+

+ talk +

+
+

+ Используется для общения с другими пользователями +

+
+

+ telnet +

+
+

+ Интерфейс к протоколу TELNET +

+
+

+ tftp +

+
+

+ Программа для передачи файлов по протоколу TFTP (Trivial + File Transfer Protocol — простой протокол передачи + файлов) +

+
+

+ traceroute +

+
+

+ Отслеживает маршрут, по которому проходят ваши пакеты от + хоста на которым вы работаете, к другому узлу сети, + показывая все промежуточные переходы (шлюзы) на этом + пути. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/intltool.html b/lfs-12.0-sysv/chapter08/intltool.html new file mode 100644 index 0000000..6dc318e --- /dev/null +++ b/lfs-12.0-sysv/chapter08/intltool.html @@ -0,0 +1,245 @@ + + + + + + 8.44. Intltool-0.51.0 + + + + + + + + +
+

+ 8.44. + Intltool-0.51.0 +

+
+

+ Intltool — это инструмент интернационализации, используемый для + извлечения переводимых строк из исходных файлов. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 1.5 MB +
+
+
+
+
+

+ 8.44.1. Установка пакета Intltool +

+

+ Сначала исправьте предупреждение, вызываемое perl-5.22 и более + поздними версиями: +

+
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
+
+ [Примечание] +

+ Примечание +

+

+ Приведенное выше регулярное выражение выглядит необычно из-за + множества слэшей. Что оно делает, так это добавляет обратную + косую черту перед правой фигурной скобкой в последовательности + '\${' в результате чего получается '\$\{'. +

+
+

+ Подготовьте Intltool к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
+
+
+

+ 8.44.2. + Содержимое пакета Intltool +

+
+
+
+ Установленные программы: + intltool-extract, intltool-merge, + intltool-prepare, intltool-update и intltoolize +
+
+ Созданные каталоги: + /usr/share/doc/intltool-0.51.0 и + /usr/share/intltool +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ intltoolize +

+
+

+ Подготавливает пакет для использования intltool +

+
+

+ intltool-extract +

+
+

+ Генерирует заголовочные файлы, которые могут быть + прочитаны с помощью gettext +

+
+

+ intltool-merge +

+
+

+ Объединяет переведенные строки в файлы различных типов +

+
+

+ intltool-prepare +

+
+

+ Обновляет файлы pot и объединяет их с файлами перевода +

+
+

+ intltool-update +

+
+

+ Обновляет файлы шаблонов po и объединяет их с переводами +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/introduction.html b/lfs-12.0-sysv/chapter08/introduction.html new file mode 100644 index 0000000..b620bdd --- /dev/null +++ b/lfs-12.0-sysv/chapter08/introduction.html @@ -0,0 +1,174 @@ + + + + + + 8.1. Введение + + + + + + + + +
+

+ 8.1. + Введение +

+

+ В этой главе мы приступаем к сборке конечной системы LFS. +

+

+ Установка программного обеспечения проста. Хотя во многих случаях + инструкции по установке можно было бы сделать короче и универсальнее, + мы решили предоставить полные инструкции для каждого пакета, чтобы + свести к минимуму вероятность ошибок. Ключом к пониманию того, что + заставляет систему Linux работать, является знание того, для чего + используется каждый пакет и зачем он вам (или системе) может + понадобиться. +

+

+ Мы не рекомендуем использовать оптимизации. С ними программа может + работать немного быстрее, но также они могут вызвать сложности при + компиляции и проблемы при запуске программы. Если пакет не + компилируется при использовании оптимизации, попробуйте + скомпилировать его без оптимизации и посмотрите, решает ли это + проблему. Даже если пакет компилируется при использовании + оптимизации, существует риск, что он может быть скомпилирован + неправильно из-за сложных взаимодействий между кодом и инструментами + сборки. Также обратите внимание, что параметры -march и -mtune, не + тестировались со значениями отличными от указанных в книге. Это может + вызвать проблемы с пакетами набора инструментов (Binutils, GCC и + Glibc). Небольшие потенциальные плюсы, достигаемые за счет + оптимизации, часто перевешиваются рисками. Тем кто собирает LFS + впервые рекомендуется делать это без пользовательских оптимизаций. +

+

+ С другой стороны, мы сохраняем оптимизацию включенной в конфигурации + пакетов по умолчанию. Кроме того, иногда мы явно включаем + оптимизированную конфигурацию, предоставляемую пакетом, но не + включенную по умолчанию. Сопровождающие пакета уже протестировали эти + конфигурации и считают их безопасными, поэтому маловероятно, что они + сломают сборку. Как правило, конфигурация по умолчанию уже включает + параметры -O2 или -O3, поэтому результирующая система по-прежнему будет + работать очень быстро без какой-либо пользовательской оптимизации и в + то же время будет стабильной. +

+

+ Перед инструкцией по установке на каждой странице представлена + информация о пакете, включая краткое описание того, что он содержит, + примерное время, необходимое для сборки, и сколько места на диске + требуется в процессе сборки. После инструкции по установке идет + список программ и библиотек (вместе с кратким описанием), которые + устанавливает пакет. +

+
+ [Примечание] +

+ Примечание +

+

+ Для всех пакетов в Глава 8 + значения SBU и требуемое дисковое пространство указано с учетом + тестов. Значения SBU были рассчитаны с использованием четырех ядер + ЦП (-j4) для всех операций, если не указано иное. +

+
+
+

+ 8.1.1. О библиотеках +

+

+ Как правило, редакторы LFS не рекомендуют собирать и устанавливать + статические библиотеки. Большинство статических библиотек устарели + в современной системе Linux. Кроме того, линковка статической + библиотеки с программой может быть вредна. Если для устранения + проблемы безопасности требуется обновление библиотеки, все + программы, использующие статическую библиотеку, необходимо будет + повторно перелинковать с новой библиотекой. Поскольку использование + статических библиотек не всегда очевидно, соответствующие программы + (и процедуры, необходимые для линковки) могут быть даже неизвестны. +

+

+ В инструкциях этой главы мы удаляем или отключаем установку + большинства статических библиотек. Обычно это делается путем + передачи параметра --disable-static при + выполнении configure. + Иногда необходимо использовать альтернативные методы. В некоторых + случаях, в частности в пакетах Glibc и GCC, использование + статических библиотек остается важным элементом процесса сборки + пакетов. +

+

+ Более подробное обсуждение библиотек смотрите + Библиотеки: статические или общие? в книге BLFS. +

+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/iproute2.html b/lfs-12.0-sysv/chapter08/iproute2.html new file mode 100644 index 0000000..c650240 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/iproute2.html @@ -0,0 +1,436 @@ + + + + + + 8.64. IPRoute2-6.4.0 + + + + + + + + +
+

+ 8.64. + IPRoute2-6.4.0 +

+
+

+ Пакет IPRoute2 содержит набор программ для базового и расширенного + администрирования сетей IPv4. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 17 MB +
+
+
+
+
+

+ 8.64.1. Установка пакета IPRoute2 +

+

+ Программа arpd, + входящая в этот пакет, не будет собрана, поскольку зависит от + Berkeley DB, которая не установлена в LFS. Однако каталог и + справочная страница для arpd все равно будут установлены. + Предотвратить это можно, выполнив приведенные ниже команды. (Если + вам нужна arpd, + инструкции по компиляции Berkeley DB можно найти в книге BLFS по + адресу https://mirror.linuxfromscratch.ru/blfs/view/12.0/server/db.html.) +

+
sed -i /ARPD/d Makefile
+rm -fv man/man8/arpd.8
+

+ Скомпилируйте пакет: +

+
make NETNS_RUN_DIR=/run/netns
+

+ Этот пакет не содержит рабочего набора тестов. +

+

+ Установите пакет: +

+
make SBINDIR=/usr/sbin install
+

+ По желанию, установите документацию: +

+
mkdir -pv             /usr/share/doc/iproute2-6.4.0
+cp -v COPYING README* /usr/share/doc/iproute2-6.4.0
+
+
+

+ 8.64.2. + Содержимое пакета IPRoute2 +

+
+
+
+ Установленные программы: + bridge, ctstat (ссылка на lnstat), genl, + ifstat, ip, lnstat, nstat, routel, rtacct, rtmon, rtpr, rtstat + (ссылка на lnstat), ss и tc +
+
+ Созданные каталоги: + /etc/iproute2, /usr/lib/tc и + /usr/share/doc/iproute2-6.4.0 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ bridge +

+
+

+ Настраивает сетевые мосты +

+
+

+ ctstat +

+
+

+ Утилита состояния подключения +

+
+

+ genl +

+
+

+ Универсальный интерфейс утилиты netlink +

+
+

+ ifstat +

+
+

+ Показывает статистику интерфейса, включая количество + переданных и полученных пакетов по интерфейсам. +

+
+

+ ip +

+
+

+ Основной исполняемый файл. Он имеет несколько различных + функций, в том числе эти: +

+

+ ip link <device> + позволяет пользователям просматривать состояние устройств + и вносить изменения +

+

+ ip addr + позволяет пользователям просматривать адреса и их + свойства, добавлять новые адреса и удалять старые +

+

+ ip neighbor + позволяет пользователям просматривать связи с соседями и + их свойства, добавлять новые записи и удалять старые +

+

+ ip rule + позволяет пользователям просматривать политики + маршрутизации и изменять их +

+

+ ip route + позволяет пользователям просматривать таблицу + маршрутизации и изменять правила таблицы маршрутизации +

+

+ ip tunnel + позволяет пользователям просматривать IP-туннели и их + свойства, а также изменять их +

+

+ ip maddr + позволяет пользователям просматривать multicast адреса и + их свойства и изменять их +

+

+ ip mroute + позволяет пользователям устанавливать, изменять или + удалять multicast маршрутизацию. +

+

+ ip monitor + позволяет пользователям постоянно отслеживать состояние + устройств, адресов и маршрутов +

+
+

+ lnstat +

+
+

+ Предоставляет сетевую статистику Linux; это обобщенная и + более полнофункциональная замена старой программы + rtstat +

+
+

+ nstat +

+
+

+ Отображает сетевую статистику +

+
+

+ routel +

+
+

+ Компонент ip + route для просмотра таблиц маршрутизации +

+
+

+ rtacct +

+
+

+ Отображает содержимое /proc/net/rt_acct +

+
+

+ rtmon +

+
+

+ Мониторит изменения таблицы маршрутизации +

+
+

+ rtpr +

+
+

+ Преобразует вывод ip + -o в удобочитаемую форму +

+
+

+ rtstat +

+
+

+ Утилита состояния маршрута +

+
+

+ ss +

+
+

+ Аналогично команде netstat показывает + активные соединения +

+
+

+ tc +

+
+

+ Управление трафиком для реализаций качества обслуживания + (QoS) и класса обслуживания (CoS) +

+

+ tc qdisc + позволяет пользователям настроить дисциплину обработки + очередей +

+

+ tc class + позволяет пользователям настраивать классы, на основе + планирования дисциплины обработки очередей +

+

+ tc filter + позволяет пользователям настроить фильтрацию пакетов + QOS/COS +

+

+ tc monitor + может использоваться для просмотра изменений, внесенных в + управление трафиком в ядре +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/jinja2.html b/lfs-12.0-sysv/chapter08/jinja2.html new file mode 100644 index 0000000..d22e5e0 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/jinja2.html @@ -0,0 +1,129 @@ + + + + + + 8.73. Jinja2-3.1.2 + + + + + + + + +
+

+ 8.73. + Jinja2-3.1.2 +

+
+

+ Jinja2 - это модуль Python, который реализует простой язык шаблонов + pythonic +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 3.4 MB +
+
+
+
+
+

+ 8.73.1. Установка пакета Jinja2 +

+

+ Соберите пакет: +

+
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+

+ Установите пакет: +

+
pip3 install --no-index --no-user --find-links dist Jinja2
+
+
+

+ 8.73.2. + Содержимое пакета Jinja2 +

+
+
+
+ Созданные каталоги: + /usr/lib/python3.11/site-packages/Jinja2-3.1.2.dist-info +
+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/kbd.html b/lfs-12.0-sysv/chapter08/kbd.html new file mode 100644 index 0000000..4e3a9cb --- /dev/null +++ b/lfs-12.0-sysv/chapter08/kbd.html @@ -0,0 +1,586 @@ + + + + + + 8.65. Kbd-2.6.1 + + + + + + + + +
+

+ 8.65. Kbd-2.6.1 +

+
+

+ Пакет Kbd содержит файлы таблиц клавиш, консольные шрифты и утилиты + клавиатуры. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 35 MB +
+
+
+
+
+

+ 8.65.1. Установка пакета Kbd +

+

+ Поведение клавиш backspace и delete не согласуется между + раскладками в пакете Kbd. Следующий патч исправляет эту проблему + для раскладок i386: +

+
patch -Np1 -i ../kbd-2.6.1-backspace-1.patch
+

+ После исправления клавиша backspace генерирует символ с кодом 127, + а клавиша delete генерирует хорошо известную + escape-последовательность. +

+

+ Удалите ненужную программу resizecons (она требуется + несуществующей svgalib для предоставления файлов видеорежима — для + нормального использования setfont, который правильно + определяет размеры консоли) вместе с ее справочной страницей. +

+
sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
+sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
+

+ Подготовьте Kbd для компиляции: +

+
./configure --prefix=/usr --disable-vlock
+
+

+ Значение параметра configure: +

+
+
+ --disable-vlock +
+
+

+ Этот параметр предотвращает сборку утилиты vlock, поскольку + для неё требуется библиотека PAM, которая недоступна в среде + chroot. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+ [Примечание] +

+ Примечание +

+

+ Для некоторых языков (например белорусского) пакет Kbd не + предоставляет подходящую раскладку, штатная раскладка + «by» + предполагает кодировку ISO-8859-5, а обычно используется + раскладка CP1251. Пользователи таких языков должны отдельно + загрузить рабочую раскладку. +

+
+

+ По желанию, установите документацию:: +

+
cp -R -v docs/doc -T /usr/share/doc/kbd-2.6.1
+
+
+

+ 8.65.2. Содержимое + пакета Kbd +

+
+
+
+ Установленные программы: + 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 +
+
+ Созданные каталоги: + /usr/share/consolefonts, + /usr/share/consoletrans, /usr/share/keymaps, + /usr/share/doc/kbd-2.6.1 и /usr/share/unimaps +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ chvt +

+
+

+ Изменяет используемый виртуальный терминал +

+
+

+ deallocvt +

+
+

+ Освобождает неиспользуемые виртуальные терминалы +

+
+

+ dumpkeys +

+
+

+ Создает дамп таблиц перевода клавиатуры +

+
+

+ fgconsole +

+
+

+ Выводит номер активного виртуального терминала +

+
+

+ getkeycodes +

+
+

+ Выводит таблицу ядра соответствия сканкода и кода клавиши +

+
+

+ kbdinfo +

+
+

+ Получает информацию о состоянии консоли +

+
+

+ kbd_mode +

+
+

+ Выводит или устанавливает режим клавиатуры +

+
+

+ kbdrate +

+
+

+ Устанавливает частоту повторных нажатий клавиш и задержки + клавиатуры +

+
+

+ loadkeys +

+
+

+ Загружает таблицу преобразования клавиатуры +

+
+

+ loadunimap +

+
+

+ Загружает таблицу ядра отображения символов юникода +

+
+

+ mapscrn +

+
+

+ Устаревшая программа, которая использовалась для загрузки + определяемой пользователем таблицы соответствия выводимых + символов в драйвер консоли; теперь эту функцию выполняет + setfont +

+
+

+ openvt +

+
+

+ Запускает программу на новом виртуальном терминале (VT) +

+
+

+ psfaddtable +

+
+

+ Добавляет таблицу символов Unicode в консольный шрифт. +

+
+

+ psfgettable +

+
+

+ Извлекает встроенную таблицу символов Unicode из + консольного шрифта. +

+
+

+ psfstriptable +

+
+

+ Удаляет встроенную таблицу символов Unicode из + консольного шрифта. +

+
+

+ psfxtable +

+
+

+ Обрабатывает таблицы символов Unicode для консольных + шрифтов. +

+
+

+ setfont +

+
+

+ Изменяет шрифты Enhanced Graphic Adapter (EGA) и Video + Graphics Array (VGA), используемые в консоли +

+
+

+ setkeycodes +

+
+

+ Загружает таблицу соответствия сканкодов ядра и кодов + клавиш; это удобно, если на клавиатуре есть нестандартные + клавиши +

+
+

+ setleds +

+
+

+ Устанавливает значения флагов клавиатуры и индикаторов + (обычно - светодиоды) +

+
+

+ setmetamode +

+
+

+ Определяет обработку метаклавиши на клавиатуре (обычно, + это клавиша Win) +

+
+

+ setvtrgb +

+
+

+ Устанавливает цветовую схему консоли для всех виртуальных + терминалов +

+
+

+ showconsolefont +

+
+

+ Показывает текущий шрифт экрана консоли EGA/VGA +

+
+

+ showkey +

+
+

+ Показывает сканкоды, код клавиши и код ASCII для клавиш, + нажатых на клавиатуре +

+
+

+ unicode_start +

+
+

+ Переводит клавиатуру и консоль в режим UNICODE. [Не + используйте эту программу, если вы не используете файл + раскладки для кодировки ISO-8859-1. Для других кодировок + эта утилита выдает неправильные результаты]. +

+
+

+ unicode_stop +

+
+

+ Возвращает клавиатуру и консоль из режима UNICODE +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/kmod.html b/lfs-12.0-sysv/chapter08/kmod.html new file mode 100644 index 0000000..6d9f69b --- /dev/null +++ b/lfs-12.0-sysv/chapter08/kmod.html @@ -0,0 +1,315 @@ + + + + + + 8.48. Kmod-30 + + + + + + + + +
+

+ 8.48. Kmod-30 +

+
+

+ Пакет Kmod содержит библиотеки и утилиты для загрузки модулей ядра. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 12 MB +
+
+
+
+
+

+ 8.48.1. Установка пакета Kmod +

+

+ Подготовьте Kmod к компиляции: +

+
./configure --prefix=/usr          \
+            --sysconfdir=/etc      \
+            --with-openssl         \
+            --with-xz              \
+            --with-zstd            \
+            --with-zlib
+
+

+ Значение параметров настройки: +

+
+
+ --with-openssl +
+
+

+ Этот параметр позволяет Kmod обрабатывать сигнатуры PKCS7 для + модулей ядра. +

+
+
+ --with-xz, --with-zlib, и --with-zstd +
+
+

+ Эти параметры позволяют Kmod обрабатывать сжатые модули ядра. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Набору тестов этого пакета необходимы необработанные заголовочные + файлы ядра (а не «очищенные», установленных ранее), это выходит + за рамки LFS. +

+

+ Установите пакет и создайте символические ссылки для совместимости + с Module-Init-Tools (пакетом, который ранее обрабатывал модули ядра + Linux): +

+
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
+
+
+

+ 8.48.2. Содержимое + пакета Kmod +

+
+
+
+ Установленные программы: + depmod (ссылка на kmod), insmod (ссылка + на kmod), kmod, lsmod (ссылка на kmod), modinfo (ссылка на + kmod), modprobe (ссылка на kmod) и rmmod (ссылка на + kmod) +
+
+ Установленные библиотеки: + libkmod.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ depmod +

+
+

+ Создает файл зависимостей на основе символов найденных в + существующем наборе модулей; этот файл используется + программой modprobe для + автоматической загрузки необходимых модулей +

+
+

+ insmod +

+
+

+ Устанавливает загружаемый модуль в работающее ядро +

+
+

+ kmod +

+
+

+ Загружает и выгружает модули ядра +

+
+

+ lsmod +

+
+

+ Список загруженных в данный момент модулей +

+
+

+ modinfo +

+
+

+ Проверяет объектный файл, связанный с модулем ядра, и + отображает всю информацию, которую он смог собрать. +

+
+

+ modprobe +

+
+

+ Использует файл зависимостей, созданный depmod, для + автоматической загрузки соответствующих модулей +

+
+

+ rmmod +

+
+

+ Выгружает модули из работающего ядра +

+
+

+ libkmod +

+
+

+ Библиотека используемая другими программами для загрузки + и выгрузки модулей ядра +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/less.html b/lfs-12.0-sysv/chapter08/less.html new file mode 100644 index 0000000..35c69e7 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/less.html @@ -0,0 +1,209 @@ + + + + + + 8.41. Less-643 + + + + + + + + +
+

+ 8.41. Less-643 +

+
+

+ Пакет Less содержит средство просмотра текстовых файлов +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 12 MB +
+
+
+
+
+

+ 8.41.1. Установка пакета Less +

+

+ Подготовьте Less к компиляции: +

+
./configure --prefix=/usr --sysconfdir=/etc
+
+

+ Значение параметров настройки: +

+
+
+ --sysconfdir=/etc +
+
+

+ Этот параметр указывает программам, созданным пакетом, искать + файлы конфигурации в /etc. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.41.2. Содержимое + пакета Less +

+
+
+
+ Установленные программы: + less, lessecho и lesskey +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ less +

+
+

+ Просмотрщик файлов; отображает содержимое данного файла, + позволяя пользователю прокручивать файл, искать строки и + переходить к меткам +

+
+

+ lessecho +

+
+

+ Требуется для расширения метасимволов, таких как + * и ?, в именах файлов в системах + Unix +

+
+

+ lesskey +

+
+

+ Используется для привязки клавиш в программе less +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libcap.html b/lfs-12.0-sysv/chapter08/libcap.html new file mode 100644 index 0000000..c80b274 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libcap.html @@ -0,0 +1,259 @@ + + + + + + 8.24. Libcap-2.69 + + + + + + + + +
+

+ 8.24. + Libcap-2.69 +

+
+

+ Пакет Libcap реализует интерфейсы пользовательского пространства + для возможностей POSIX 1003.1e, доступных в ядрах Linux. Эти + возможности разделяют полномочия суперпользователя root на набор + отдельных привилегий. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 2.9 MB +
+
+
+
+
+

+ 8.24.1. Установка пакета Libcap +

+

+ Запретите установку статических библиотек: +

+
sed -i '/install -m.*STA/d' libcap/Makefile
+

+ Скомпилируйте пакет: +

+
make prefix=/usr lib=lib
+
+

+ Значение опции make: +

+
+
+ lib=lib +
+
+

+ Этот параметр устанавливает библиотеки в каталог /usr/lib, а не /usr/lib64 на x86_64. На x86 это никак не + влияет. +

+
+
+
+

+ Чтобы протестировать пакет, выполните: +

+
make test
+

+ Установите пакет: +

+
make prefix=/usr lib=lib install
+
+
+

+ 8.24.2. + Содержимое пакета Libcap +

+
+
+
+ Установленные программы: + capsh, getcap, getpcaps и setcap +
+
+ Установленные библиотеки: + libcap.so и libpsx.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ capsh +

+
+

+ Обёртка к оболочке для исследования и ограничения + поддержки возможностей Linux +

+
+

+ getcap +

+
+

+ Проверяет возможности файлов +

+
+

+ getpcaps +

+
+

+ Отображает возможности запрашиваемого процесса + (процессов) +

+
+

+ setcap +

+
+

+ Устанавливает возможности файлов +

+
+

+ libcap +

+
+

+ Содержит функции для управления возможностями POSIX + 1003.1e. +

+
+

+ libpsx +

+
+

+ Содержит функции для поддержки семантики POSIX для + системных вызовов, связанных с библиотекой pthread +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libelf.html b/lfs-12.0-sysv/chapter08/libelf.html new file mode 100644 index 0000000..2e2e598 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libelf.html @@ -0,0 +1,169 @@ + + + + + + 8.49. Libelf из Elfutils-0.189 + + + + + + + + +
+

+ 8.49. Libelf из + Elfutils-0.189 +

+
+

+ Libelf — это библиотека для обработки файлов ELF (Executable and + Linkable Format - формат исполняемых и связываемых файлов). +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 122 MB +
+
+
+
+
+

+ 8.49.1. Установка пакета Libelf +

+

+ Libelf является частью пакета elfutils-0.189. Используйте + elfutils-0.189.tar.bz2 в качестве исходного архива. +

+

+ Подготовьте Libelf к компиляции: +

+
./configure --prefix=/usr                \
+            --disable-debuginfod         \
+            --enable-libdebuginfod=dummy
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите только Libelf: +

+
make -C libelf install
+install -vm644 config/libelf.pc /usr/lib/pkgconfig
+rm /usr/lib/libelf.a
+
+
+

+ 8.49.2. + Содержимое пакета Libelf +

+
+
+
+ Установленные библиотеки: + libelf.so +
+
+ Созданные каталоги: + /usr/include/elfutils +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libelf.so +

+
+

+ Содержит функции API для обработки объектных файлов ELF +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libffi.html b/lfs-12.0-sysv/chapter08/libffi.html new file mode 100644 index 0000000..4115958 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libffi.html @@ -0,0 +1,211 @@ + + + + + + 8.50. Libffi-3.4.4 + + + + + + + + +
+

+ 8.50. + Libffi-3.4.4 +

+
+

+ Библиотека Libffi предоставляет переносимый высокоуровневый + программный интерфейс для различных соглашений о вызовах. Это + позволяет программисту вызывать любую функцию, указанную в описании + интерфейса вызова во время выполнения. +

+

+ FFI расшифровывается как интерфейс внешних функций. FFI позволяет + программе, написанной на одном языке, вызывать программу, + написанную на другом языке. В частности, Libffi может обеспечить + связь между интерпретатором, таким как Perl или Python, и + подпрограммами общей библиотеки, написанными на C или C++. +

+
+
+
+ Приблизительное время сборки: + 1.8 SBU +
+
+ Требуемое дисковое + пространство: 11 MB +
+
+
+
+
+

+ 8.50.1. Установка пакета Libffi +

+
+ [Примечание] +

+ Примечание +

+

+ Как и GMP, Libffi собирается с учетом оптимизаций, специфичных + для используемого процессора. При сборке для другой системы + измените значение параметра --with-gcc-arch= в следующей + команде на имя архитектуры, полностью реализованной процессором в + этой системе. Если этого не сделать, все приложения, ссылающиеся + на libffi, будут вызывать ошибку + «Illegal Operation - + недопустимая операция». +

+
+

+ Подготовьте Libffi к компиляции: +

+
./configure --prefix=/usr          \
+            --disable-static       \
+            --with-gcc-arch=native
+
+

+ Значение параметров configure: +

+
+
+ --with-gcc-arch=native +
+
+

+ Убедитесь, что GCC оптимизируется для текущей системы. Если + значение не указано, то архитектура системы угадывается и + сгенерированный код может быть неправильным. Если + сгенерированный код будет скопирован из родной системы в + менее мощную, используйте архитектуру менее мощной системы в + качестве параметра. Дополнительные сведения об альтернативных + типах систем смотрите в + описании параметров x86 в руководстве GCC. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.50.2. + Содержимое пакета Libffi +

+
+
+
+ Установленные библиотеки: + libffi.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libffi +

+
+

+ Содержит внешний интерфейс для API-функций +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libpipeline.html b/lfs-12.0-sysv/chapter08/libpipeline.html new file mode 100644 index 0000000..995c06e --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libpipeline.html @@ -0,0 +1,158 @@ + + + + + + 8.66. Libpipeline-1.5.7 + + + + + + + + +
+

+ 8.66. + Libpipeline-1.5.7 +

+
+

+ Пакет Libpipeline содержит библиотеку для гибкого и удобного + управления подпроцессами. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 10 MB +
+
+
+
+
+

+ 8.66.1. Установка пакета Libpipeline +

+

+ Подготовьте Libpipeline к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.66.2. Содержимое пакета Libpipeline +

+
+
+
+ Установленные библиотеки: + libpipeline.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libpipeline +

+
+

+ Эта библиотека используется для безопасного построения + конвейеров между подпроцессами. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libtool.html b/lfs-12.0-sysv/chapter08/libtool.html new file mode 100644 index 0000000..5a4c01e --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libtool.html @@ -0,0 +1,223 @@ + + + + + + 8.36. Libtool-2.4.7 + + + + + + + + +
+

+ 8.36. + Libtool-2.4.7 +

+
+

+ Пакет Libtool содержит сценарий поддержки универсальной библиотеки + GNU. Это упрощает использование общих библиотек благодаря + согласованному переносимому интерфейсу. +

+
+
+
+ Приблизительное время сборки: + 1.3 SBU +
+
+ Требуемое дисковое + пространство: 45 MB +
+
+
+
+
+

+ 8.36.1. Установка пакета Libtool +

+

+ Подготовьте Libtool к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make -k check
+
+ [Примечание] +

+ Примечание +

+

+ Время тестирования Libtool может быть значительно сокращено в + системе с несколькими ядрами. Для этого добавьте TESTSUITEFLAGS=-j<N> к + строке выше. Например, использование -j4 может сократить время + тестирования более чем на 60 процентов. +

+
+

+ Известно, что пять тестов в среде сборки LFS завершаются неудачно + из-за циклической зависимости, но эти тесты проходят успешно, если + запустить их повторно после установки automake. Кроме того, в + grep-3.8 два теста вызовут предупреждение для регулярных выражений, + несовместимых с POSIX и завершатся с ошибкой. +

+

+ Установите пакет: +

+
make install
+

+ Удалите ненужную статическую библиотеку: +

+
rm -fv /usr/lib/libltdl.a
+
+
+

+ 8.36.2. + Содержимое пакета Libtool +

+
+
+
+ Установленные программы: + libtool и libtoolize +
+
+ Установленные библиотеки: + libltdl.so +
+
+ Созданные каталоги: + /usr/include/libltdl и + /usr/share/libtool +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ libtool +

+
+

+ Обеспечивает общие услуги поддержки при сборке библиотек +

+
+

+ libtoolize +

+
+

+ Предоставляет стандартный способ добавления поддержки + libtool в + пакет +

+
+

+ libltdl +

+
+

+ Скрывает различные проблемы, связанные с открытием + динамически загружаемых библиотек +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/libxcrypt.html b/lfs-12.0-sysv/chapter08/libxcrypt.html new file mode 100644 index 0000000..af4edc5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libxcrypt.html @@ -0,0 +1,225 @@ + + + + + + 8.25. Libxcrypt-4.4.36 + + + + + + + + +
+

+ 8.25. + Libxcrypt-4.4.36 +

+
+

+ Пакет Libxcrypt содержит современную библиотеку для одностороннего + хэширования паролей. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 15 MB +
+
+
+
+
+

+ 8.25.1. Установка пакета Libxcrypt +

+

+ Подготовьте Libxcrypt к компиляции: +

+
./configure --prefix=/usr                \
+            --enable-hashes=strong,glibc \
+            --enable-obsolete-api=no     \
+            --disable-static             \
+            --disable-failure-tokens
+
+

+ Значение новых параметров настройки: +

+
+
+ --enable-hashes=strong,glibc +
+
+

+ Создает хэши, используя надежные алгоритмы хэширования, + рекомендуемые для безопасности, и алгоритмы хэширования, + предоставляемые традиционной библиотекой Glibc libcrypt для совместимости. +

+
+
+ --enable-obsolete-api=no +
+
+

+ Отключает устаревшие функции API. Они не нужны для + современной системы Linux, собранной из исходного кода. +

+
+
+ --disable-failure-tokens +
+
+

+ Отключает признак токена сбоя. Он необходим для совместимости + с традиционными хэш-библиотеками некоторых платформ, но + система Linux, основанная на Glibc, в нем не нуждается. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+ [Примечание] +

+ Примечание +

+

+ С помощью приведенных выше инструкций были отключены устаревшие + функции API, поскольку ни один пакет, установленный путем + компиляции из исходных кодов, не будет связываться с ними во + время выполнения. Однако известные двоичные приложения, которые + используют эти функции, требуют ABI версии 1. Если вам необходим + этот функционал для какого-либо приложения, предоставляемого + только в бинарном виде, или для совместимости с LSB, соберите + пакет заново с помощью следующих команд: +

+
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
+
+
+
+

+ 8.25.2. + Содержимое пакета Libxcrypt +

+
+
+
+ Установленные библиотеки: + libcrypt.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libcrypt +

+
+

+ Содержит функции для хэширования паролей +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/m4.html b/lfs-12.0-sysv/chapter08/m4.html new file mode 100644 index 0000000..2fcfa14 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/m4.html @@ -0,0 +1,168 @@ + + + + + + 8.12. M4-1.4.19 + + + + + + + + +
+

+ 8.12. M4-1.4.19 +

+
+

+ Пакет M4 содержит макропроцессор. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 49 MB +
+
+
+
+
+

+ 8.12.1. Установка пакета M4 +

+

+ Подготовьте M4 к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.12.2. Содержимое + пакета M4 +

+
+
+
+ Установленные программы: + m4 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ m4 +

+
+

+ Копирует указанные файлы, одновременно расширяя + содержащиеся в них макросы. Эти макросы являются либо + встроенными, либо определяемыми пользователем и могут + принимать любое количество аргументов. Помимо выполнения + макросов, m4 имеет встроенные + функции для включения указанных файлов, выполнения команд + Unix, выполнения целочисленной арифметики, + манипулирования текстом, рекурсии и т.д. Программа + m4 может + использоваться либо как интерфейс к компилятору, либо как + самостоятельный макропроцессор +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/make.html b/lfs-12.0-sysv/chapter08/make.html new file mode 100644 index 0000000..b0bb047 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/make.html @@ -0,0 +1,161 @@ + + + + + + 8.67. Make-4.4.1 + + + + + + + + +
+

+ 8.67. Make-4.4.1 +

+
+

+ Пакет Make содержит программу, управляющую генерацией исполняемых и + других файлов, из исходного кода. +

+
+
+
+ Приблизительное время сборки: + 0.5 SBU +
+
+ Требуемое дисковое + пространство: 13 MB +
+
+
+
+
+

+ 8.67.1. Установка пакета Make +

+

+ Подготовьте Make к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
chown -Rv tester .
+su tester -c "PATH=$PATH make check"
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.67.2. Содержимое + пакета Make +

+
+
+
+ Установленные программы: + make +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ make +

+
+

+ Автоматически определяет, какие части пакета необходимо + (пере)компилировать и запускает соответствующие команды. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/man-db.html b/lfs-12.0-sysv/chapter08/man-db.html new file mode 100644 index 0000000..104c24e --- /dev/null +++ b/lfs-12.0-sysv/chapter08/man-db.html @@ -0,0 +1,765 @@ + + + + + + 8.75. Man-DB-2.11.2 + + + + + + + + +
+

+ 8.75. + Man-DB-2.11.2 +

+
+

+ Пакет Man-DB содержит программы для поиска и просмотра справочных + страниц. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 40 MB +
+
+
+
+
+

+ 8.75.1. Установка пакета Man-DB +

+

+ Подготовьте Man-DB к компиляции: +

+
./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=
+
+

+ Значение параметров настройки: +

+
+
+ --disable-setuid +
+
+

+ Отключает установку setuid пользователю man при сборке программы man. +

+
+
+ --enable-cache-owner=bin +
+
+

+ Изменяет владельца файлов общесистемного кэша на пользователя + bin. +

+
+
+ --with-... +
+
+

+ Эти три аргумента используются для настройки программ по + умолчанию. lynx + текстовый веб-браузер (см. инструкции по установке в книге + BLFS), vgrind + преобразует исходные коды программ во входные данные Groff, + grap удобен для + набора графов в документах Groff. Программы vgrind и grap обычно не нужны для + просмотра справочных страниц. Они не входят в состав книг LFS + или BLFS, но вы можете установить их самостоятельно после + сборки LFS. +

+
+
+ --with-systemd... +
+
+

+ Эти параметры предотвращают установку ненужных каталогов и + файлов systemd. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Известно, что один тест с именем man1/lexgrog.1 завершился неудачно. +

+

+ Установите пакет: +

+
make install
+
+
+

+ 8.75.2. Не англоязычные страницы руководств в LFS +

+

+ В следующей таблице приведены наборы символов, в которых могут быть + закодированы страницы руководств пакета Man-DB, устанавливаемые в + директории /usr/share/man/<ll>. + Кроме этого, Man-DB правильно определяет, имеют ли справочные + страницы, установленные в этом каталоге, кодировку UTF-8. +

+
+ +

+ Таблица 8.1. Допустимые кодировки старых 8-битных страниц + руководств +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Язык (код) + + Кодировка + + Язык (код) + + Кодировка +
+ Датский (da) + + ISO-8859-1 + + Хорватский (hr) + + ISO-8859-2 +
+ Немецкий (de) + + ISO-8859-1 + + Венгерский (hu) + + ISO-8859-2 +
+ Английский (en) + + ISO-8859-1 + + Японский (ja) + + EUC-JP +
+ Испанский (es) + + ISO-8859-1 + + Корейский (ko) + + EUC-KR +
+ Эстонский (et) + + ISO-8859-1 + + Литовский (lt) + + ISO-8859-13 +
+ Финский (fi) + + ISO-8859-1 + + Латышский (lv) + + ISO-8859-13 +
+ Французский (fr) + + ISO-8859-1 + + Македонский (mk) + + ISO-8859-5 +
+ Ирландский (ga) + + ISO-8859-1 + + Польский (pl) + + ISO-8859-2 +
+ Галисийский (gl) + + ISO-8859-1 + + Румынский (ro) + + ISO-8859-2 +
+ Индонезийский (id) + + ISO-8859-1 + + Русский (ru) + + KOI8-R +
+ Исландский (is) + + ISO-8859-1 + + Словацкий (sk) + + ISO-8859-2 +
+ Итальянский (it) + + ISO-8859-1 + + Словенский (sl) + + ISO-8859-2 +
+ Норвежский букмол (nb) + + ISO-8859-1 + + Сербский латинский (sr@latin) + + ISO-8859-2 +
+ Голландский (nl) + + ISO-8859-1 + + Сербский (sr) + + ISO-8859-5 +
+ Норвежский нюнорск (nn) + + ISO-8859-1 + + Турецкий (tr) + + ISO-8859-9 +
+ Норвежский (no) + + ISO-8859-1 + + Украинский (uk) + + KOI8-U +
+ Португальский (pt) + + ISO-8859-1 + + Вьетнамский (vi) + + TCVN5712-1 +
+ Шведский (sv) + + ISO-8859-1 + + Упрощенный китайский (zh_CN) + + GBK +
+ Белорусский (be) + + CP1251 + + Упрощенный китайский, Сингапур (zh_SG) + + GBK +
+ Болгарский (bg) + + CP1251 + + Традиционный китайский, Гонконг (zh_HK) + + BIG5HKSCS +
+ Чешский (cs) + + ISO-8859-2 + + Традиционный китайский (zh_TW) + + BIG5 +
+ Греческий (el) + + ISO-8859-7 + +   + +   +
+
+

+
+ [Примечание] +

+ Примечание +

+

+ Страницы руководств на языках, которые не указаны в списке, не + поддерживаются. +

+
+
+
+

+ 8.75.3. + Содержимое пакета Man-DB +

+
+
+
+ Установленные программы: + accessdb, apropos (ссылка на whatis), + catman, lexgrog, man, man-recode, mandb, manpath, и + whatis +
+
+ Установленные библиотеки: + libman.so и libmandb.so (обе в + /usr/lib/man-db) +
+
+ Созданные каталоги: + /usr/lib/man-db, /usr/libexec/man-db и + /usr/share/doc/man-db-2.11.2 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ accessdb +

+
+

+ Выводит содержимое базы данных whatis в удобочитаемой + форме. +

+
+

+ apropos +

+
+

+ Выполняет поиск в базе данных whatis и отображает + краткое описание системных команд, содержащих заданную + строку +

+
+

+ catman +

+
+

+ Создает или обновляет предварительно отформатированные + страницы руководств +

+
+

+ lexgrog +

+
+

+ Отображает однострочную сводную информацию о данной + странице руководства +

+
+

+ man +

+
+

+ Форматирует и отображает запрошенную страницу руководства +

+
+

+ man-recode +

+
+

+ Преобразует страницы руководства в другую кодировку +

+
+

+ mandb +

+
+

+ Создает или обновляет базу данных whatis +

+
+

+ manpath +

+
+

+ Отображает содержимое переменной $MANPATH или (если + переменная $MANPATH не установлена) соответствующий путь + поиска, определяемый в настройках man.conf и в + пользовательском окружении +

+
+

+ whatis +

+
+

+ Выполняет поиск в базе данных whatis и отображает + краткие описания системных команд, в которых в описании + ключей указано искомое слово +

+
+

+ libman +

+
+

+ Включает поддержку man во время выполнения +

+
+

+ libmandb +

+
+

+ Включает поддержку man во время выполнения +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/man-pages.html b/lfs-12.0-sysv/chapter08/man-pages.html new file mode 100644 index 0000000..5ed69a8 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/man-pages.html @@ -0,0 +1,156 @@ + + + + + + 8.3. Man-pages-6.05.01 + + + + + + + + +
+

+ 8.3. + Man-pages-6.05.01 +

+
+

+ Пакет Man-pages содержит более 2400 справочных руководств. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 33 MB +
+
+
+
+
+

+ 8.3.1. Установка пакета Man-pages +

+

+ Удалите две справочные страницы для функций хэширования паролей. + Libxcrypt предоставит улучшенную + версию этих справочных страниц: +

+
rm -v man3/crypt*
+

+ Установите пакет Man-pages выполнив команду: +

+
make prefix=/usr install
+
+
+

+ 8.3.2. + Содержимое пакета Man-pages +

+
+
+
+ Установленные файлы: + различные справочные страницы +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ man pages +

+
+

+ Описывают функции языка программирования C, важные файлы + устройств и важные файлы конфигурации. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/markupsafe.html b/lfs-12.0-sysv/chapter08/markupsafe.html new file mode 100644 index 0000000..440bf83 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/markupsafe.html @@ -0,0 +1,128 @@ + + + + + + 8.72. MarkupSafe-2.1.3 + + + + + + + + +
+

+ 8.72. + MarkupSafe-2.1.3 +

+
+

+ MarkupSafe — это модуль Python, реализующий безопасное + использование строк в языках разметки XML/HTML/XHTML +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 548 KB +
+
+
+
+
+

+ 8.72.1. Установка пакета MarkupSafe +

+

+ Скомпилируйте MarkupSafe с помощью следующей команды: +

+
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+

+ С этим пакетом не поставляется тестов. +

+

+ Установите пакет: +

+
pip3 install --no-index --no-user --find-links dist Markupsafe
+
+
+

+ 8.72.2. + Содержимое пакета MarkupSafe +

+
+
+
+ Созданные каталоги: + /usr/lib/python3.11/site-packages/MarkupSafe-2.1.3.dist-info +
+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/meson.html b/lfs-12.0-sysv/chapter08/meson.html new file mode 100644 index 0000000..0b29709 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/meson.html @@ -0,0 +1,192 @@ + + + + + + 8.55. Meson-1.2.1 + + + + + + + + +
+

+ 8.55. Meson-1.2.1 +

+
+

+ Meson — это система сборки с открытым исходным кодом, разработанная + таким образом, чтобы быть очень быстрой и максимально удобной для + пользователя. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 42 MB +
+
+
+
+
+

+ 8.55.1. Установка пакета Meson +

+

+ Скомпилируйте Meson с помощью следующей команды: +

+
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+

+ Для набора тестов требуются некоторые пакеты, выходящие за рамки + LFS. +

+

+ Установите пакет: +

+
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
+
+

+ Значение параметров установки: +

+
+
+ -w + dist +
+
+

+ Помещает собранный wheels в каталог dist. +

+
+
+ --find-links + dist +
+
+

+ Устанавливает wheels из каталога dist. +

+
+
+
+
+
+

+ 8.55.2. Содержимое + пакета Meson +

+
+
+
+ Установленные программы: + meson +
+
+ Созданные каталоги: + /usr/lib/python3.11/site-packages/meson-1.2.1.dist-info + и /usr/lib/python3.11/site-packages/mesonbuild +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ meson +

+
+

+ Высокопроизводительная система сборки +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/mpc.html b/lfs-12.0-sysv/chapter08/mpc.html new file mode 100644 index 0000000..cd8cee1 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/mpc.html @@ -0,0 +1,164 @@ + + + + + + 8.21. MPC-1.3.1 + + + + + + + + +
+

+ 8.21. MPC-1.3.1 +

+
+

+ Пакет MPC содержит библиотеку для арифметики комплексных чисел с + высокой точностью и правильным округлением результата. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 22 MB +
+
+
+
+
+

+ 8.21.1. Установка пакета MPC +

+

+ Подготовьте MPC к компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --docdir=/usr/share/doc/mpc-1.3.1
+

+ Скомпилируйте пакет и сгенерируйте HTML-документацию: +

+
make
+make html
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет и документацию к нему: +

+
make install
+make install-html
+
+
+

+ 8.21.2. Содержимое + пакета MPC +

+
+
+
+ Установленные библиотеки: + libmpc.so +
+
+ Созданные каталоги: + /usr/share/doc/mpc-1.3.1 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libmpc +

+
+

+ Содержит сложные математические функции +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/mpfr.html b/lfs-12.0-sysv/chapter08/mpfr.html new file mode 100644 index 0000000..cb145b2 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/mpfr.html @@ -0,0 +1,183 @@ + + + + + + 8.20. MPFR-4.2.0 + + + + + + + + +
+

+ 8.20. MPFR-4.2.0 +

+
+

+ Пакет MPFR содержит функции для двоичных вычислений с плавающей + запятой произвольной точности. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 43 MB +
+
+
+
+
+

+ 8.20.1. Установка пакета MPFR +

+

+ Исправьте тестовый пример, приводящий к ошибке в старых версиях + Glibc: +

+
sed -e 's/+01,234,567/+1,234,567 /' \
+    -e 's/13.10Pd/13Pd/'            \
+    -i tests/tsprintf.c
+

+ Подготовьте MPFR к компиляции: +

+
./configure --prefix=/usr        \
+            --disable-static     \
+            --enable-thread-safe \
+            --docdir=/usr/share/doc/mpfr-4.2.0
+

+ Скомпилируйте пакет и сгенерируйте HTML-документацию: +

+
make
+make html
+
+ [Важно] +

+ Важно +

+

+ Набор тестов для MPFR в этом разделе считается критически важным. + Ни в коем случае не пропускайте его. +

+
+

+ Выполните тестирование и убедитесь, что все 197 тестов пройдены: +

+
make check
+

+ Установите пакет и документацию к нему: +

+
make install
+make install-html
+
+
+

+ 8.20.2. Содержимое + пакета MPFR +

+
+
+
+ Установленные библиотеки: + libmpfr.so +
+
+ Созданные каталоги: + /usr/share/doc/mpfr-4.2.0 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libmpfr +

+
+

+ Содержит математические функции с произвольной точностью +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/ncurses.html b/lfs-12.0-sysv/chapter08/ncurses.html new file mode 100644 index 0000000..c56e5dc --- /dev/null +++ b/lfs-12.0-sysv/chapter08/ncurses.html @@ -0,0 +1,554 @@ + + + + + + 8.29. Ncurses-6.4 + + + + + + + + +
+

+ 8.29. + Ncurses-6.4 +

+
+

+ Пакет Ncurses содержит библиотеки для независимой от терминала + обработки ввода/вывода +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 45 MB +
+
+
+
+
+

+ 8.29.1. Установка пакета Ncurses +

+

+ Подготовьте Ncurses к компиляции: +

+
./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
+
+

+ Значение новых параметров настройки: +

+
+
+ --with-shared +
+
+

+ Этот параметр позволяет Ncurses собирать и устанавливать + общие библиотеки C. +

+
+
+ --without-normal +
+
+

+ Этот параметр отключает сборку и установку большинства + статических библиотек C. +

+
+
+ --without-debug +
+
+

+ Этот параметр предотвращает сборку и установку отладочных + библиотек. +

+
+
+ --with-cxx-shared +
+
+

+ Это аргумент позволяет Ncurses собирать и устанавливать общие + привязки C++. А также предотвращает сборку и установку + статических привязок C++. +

+
+
+ --enable-pc-files +
+
+

+ Этот параметр генерирует и устанавливает файлы .pc для + pkg-config. +

+
+
+ --enable-widec +
+
+

+ Этот параметр указывает, что при сборке пакета вместо обычных + библиотек (например, libncurses.so.6.4) будут использоваться + библиотеки с расширенным набором символов (например, + libncursesw.so.6.4). Библиотеки + с расширенным набором символов могут использоваться как с + многобайтовыми локалями, так и с традиционными 8-битовыми + локалями, тогда как обычные библиотеки работают только с + 8-битовыми локалями. Библиотеки с расширенным набором + символов и обычные библиотеки совместимы на уровне исходного + кода, но не совместимыми на уровне двоичного. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ У этого пакета есть набор тестов, но его можно запустить только + после того, как пакет будет установлен. Тесты находятся в каталоге + test/. Дополнительные сведения см. в + файле README в этом каталоге. +

+

+ Установка этого пакета приведет к перезаписи libncursesw.so.6.4. Это может привести к сбою + процесса оболочки, который использует код и данные из файла + библиотеки. Установите пакет с помощью DESTDIR и правильно замените файл библиотеки с + помощью команды install. +

+
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/* /
+

+ Многие приложения ожидают, что компоновщик сможет найти библиотеки + Ncurses, не поддерживающие расширенный набор символов. Свяжите + такие приложения с библиотеками расширенного набора символов с + помощью символических ссылок и скриптов компоновщика: +

+
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
+

+ Убедитесь, что старые приложения, которым нужна -lcurses для сборки, собираются правильно: +

+
rm -vf                     /usr/lib/libcursesw.so
+echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
+ln -sfv libncurses.so      /usr/lib/libcurses.so
+

+ По желанию установите документацию Ncurses: +

+
cp -v -R doc -T /usr/share/doc/ncurses-6.4
+
+ [Примечание] +

+ Примечание +

+

+ С помощью приведенных выше инструкций не создаются библиотеки + Ncurses, не использующие расширенный набор символов, поскольку ни + один пакет, установленный путем компиляции из исходного кода, не + будет связан с ними во время выполнения. Тем не менее, известно + что некоторые бинарные приложения, которые связаны с библиотекой + Ncurses и не поддерживающие расширенный набор символов, требуют + наличия версии 5. Если вам необходимо иметь такие библиотеки + из-за какого-либо приложения, имеющегося только в бинарном виде, + или для обеспечения совместимости с LSB, соберите пакет с помощью + следующих команд: +

+
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
+
+
+
+

+ 8.29.2. + Содержимое пакета Ncurses +

+
+
+
+ Установленные программы: + captoinfo (ссылка на tic), clear, + infocmp, infotocap (ссылка на tic), ncursesw6-config, reset + (ссылка на tset), tabs, tic, toe, tput, и tset +
+
+ Установленные библиотеки: + libcursesw.so (символическая ссылка и + скрипт компоновщика на libncursesw.so), libformw.so, + libmenuw.so, libncursesw.so, libncurses++w.so, libpanelw.so, и + их аналоги без "w" в именах библиотек. +
+
+ Созданные каталоги: + /usr/share/tabset, /usr/share/terminfo, и + /usr/share/doc/ncurses-6.4 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ captoinfo +

+
+

+ Преобразует описание termcap в описание terminfo +

+
+

+ clear +

+
+

+ Очищает экран, если это возможно +

+
+

+ infocmp +

+
+

+ Сравнивает или показывает описания terminfo +

+
+

+ infotocap +

+
+

+ Преобразует описание terminfo в описание termcap +

+
+

+ ncursesw6-config +

+
+

+ Предоставляет информацию о конфигурации пакету ncurses +

+
+

+ reset +

+
+

+ Повторно инициализирует терминал со значениями по + умолчанию +

+
+

+ tabs +

+
+

+ Очищает и устанавливает размеры табуляции в терминале +

+
+

+ tic +

+
+

+ Компилятор описания terminfo, преобразует файл terminfo + из исходного формата в двоичный, который необходим для + подпрограмм библиотеки ncurses [Файл terminfo содержит + информацию о возможностях конкретного терминала.] +

+
+

+ toe +

+
+

+ Выводит список всех доступных типов терминалов, для + каждого из которых указывается его имя и приводится + описание +

+
+

+ tput +

+
+

+ Позволяет использовать в командной оболочке настройки, + относящиеся к особенностям конкретного терминала; может + также использоваться для сброса или инициализации + терминала, либо для вывода полного имени терминала +

+
+

+ tset +

+
+

+ Может использоваться для инициализации терминалов +

+
+

+ libcursesw +

+
+

+ Ссылка на libncursesw +

+
+

+ libncursesw +

+
+

+ Содержит функции, отображающие различными способами текст + на экране терминала. Хорошим примером использования этих + функций является меню, отображаемое командой make menuconfig при + настройке ядра +

+
+

+ libncurses++w +

+
+

+ Содержит функции связывания C++ с другими библиотеками в + пакете +

+
+

+ libformw +

+
+

+ Содержит функции, реализующие формы +

+
+

+ libmenuw +

+
+

+ Содержит функции, реализующие меню +

+
+

+ libpanelw +

+
+

+ Содержит функции, реализующие панели +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/ninja.html b/lfs-12.0-sysv/chapter08/ninja.html new file mode 100644 index 0000000..591a1ed --- /dev/null +++ b/lfs-12.0-sysv/chapter08/ninja.html @@ -0,0 +1,206 @@ + + + + + + 8.54. Ninja-1.11.1 + + + + + + + + +
+

+ 8.54. Ninja-1.11.1 +

+
+

+ Ninja - небольшая система сборки ориентированная на скорость. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 75 MB +
+
+
+
+
+

+ 8.54.1. Установка пакета Ninja +

+

+ При запуске ninja + обычно использует максимальное количество процессов параллельно. По + умолчанию это количество ядер в системе плюс два. В некоторых + случаях это может привести к перегреву процессора или нехватке + памяти в системе. Когда ninja вызывается из командной + строки, передача параметра -jN ограничит количество параллельных + процессов. Некоторые пакеты встраивают выполнение ninja и параметр -j не + передается. +

+

+ Использование приведенной ниже необязательной процедуры позволяет + пользователю ограничить количество параллельных процессов с помощью + переменной окружения NINJAJOBS. Пример, настройки: +

+
export NINJAJOBS=4
+

+ ограничит ninja + четырьмя параллельными процессами. +

+

+ По желанию, добавьте возможность использовать переменную окружения + NINJAJOBS, выполнив следующую команду: +

+
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
+

+ Соберите Ninja с помощью команды: +

+
python3 configure.py --bootstrap
+
+

+ Значение параметров сборки: +

+
+
+ --bootstrap +
+
+

+ Этот параметр перестраивает Ninja под текущую систему. +

+
+
+
+

+ Чтобы протестировать пакет, выполните: +

+
./ninja ninja_test
+./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
+

+ Установите пакет: +

+
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
+
+
+

+ 8.54.2. Содержимое + пакета Ninja +

+
+
+
+ Установленные программы: + ninja +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ ninja +

+
+

+ это система сборки Ninja +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/openssl.html b/lfs-12.0-sysv/chapter08/openssl.html new file mode 100644 index 0000000..097e1f5 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/openssl.html @@ -0,0 +1,300 @@ + + + + + + 8.47. OpenSSL-3.1.2 + + + + + + + + +
+

+ 8.47. + OpenSSL-3.1.2 +

+
+

+ Пакет OpenSSL содержит инструменты управления и библиотеки, + относящиеся к криптографии. Они полезны для предоставления + криптографических функций другим пакетам, таким как OpenSSH, + приложениям электронной почты и веб-браузерам (для доступа к сайтам + по HTTPS). +

+
+
+
+ Приблизительное время сборки: + 3.0 SBU +
+
+ Требуемое дисковое + пространство: 587 MB +
+
+
+
+
+

+ 8.47.1. Установка пакета OpenSSL +

+

+ Подготовьте OpenSSL к компиляции: +

+
./config --prefix=/usr         \
+         --openssldir=/etc/ssl \
+         --libdir=lib          \
+         shared                \
+         zlib-dynamic
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make test
+

+ Известно, что один тест, 30-test_afalg.t, завершится ошибкой, если + в ядре хоста не включен параметр CONFIG_CRYPTO_USER_API_SKCIPHER или отсутствуют + какие-либо опции, обеспечивающих реализацию AES с CBC (например, + комбинация CONFIG_CRYPTO_AES и + CONFIG_CRYPTO_CBC или CONFIG_CRYPTO_AES_NI_INTEL, если процессор + поддерживает AES-NI). В случае неудачи его можно смело + игнорировать. +

+

+ Установите пакет: +

+
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
+make MANSUFFIX=ssl install
+

+ Добавьте версию к имени каталога документации, чтобы структура + соответствовала другим пакетам: +

+
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.1.2
+

+ По желанию, установите дополнительную документацию: +

+
cp -vfr doc/* /usr/share/doc/openssl-3.1.2
+
+ [Примечание] +

+ Примечание +

+

+ Вы должны обновить OpenSSL, когда будет выпущена новая версия, + исправляющая уязвимости. Начиная с OpenSSL 3.0.0, схема + управления версиями OpenSSL следует формату MAJOR.MINOR.PATCH. + Совместимость API/ABI гарантируется для одной и той же ОСНОВНОЙ + (MAJOR) версии. Поскольку LFS устанавливает только общие + библиотеки, нет необходимости перекомпилировать пакеты, которые + ссылаются на libcrypto.so или + libssl.so, при обновлении до версии с тем же ОСНОВНЫМ номером + версии. +

+

+ Если установлен OpenSSH, это + будет исключением из общего правила, указанного выше. Он содержит + чрезмерно ограничительную проверку версии OpenSSL, поэтому и + SSH-клиент, и SSH-сервер откажутся запускаться, если OpenSSL + обновлен с прежним номером MAJOR версии, но с другим номером + MINOR версии. После такого обновления вам необходимо пересобрать + OpenSSH. Если OpenSSH + используется для доступа к системе, вам необходимо пересобрать и + переустановить его после обновления OpenSSL до новой MINOR версии + перед выходом из системы, иначе вы не сможете больше войти в + систему через SSH. +

+

+ Все запущенные программы, связанные с этими библиотеками, после + обновления необходимо остановить и перезапустить. Для получения + более подробной информации ознакомьтесь с соответствующей записью + в Раздел 8.2.1, + «Проблемы с обновлением». +

+
+
+
+

+ 8.47.2. + Содержимое пакета OpenSSL +

+
+
+
+ Установленные программы: + c_rehash и openssl +
+
+ Установленные библиотеки: + libcrypto.so и libssl.so +
+
+ Созданные каталоги: + /etc/ssl, /usr/include/openssl, + /usr/lib/engines и /usr/share/doc/openssl-3.1.2 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ c_rehash +

+
+

+ это Perl скрипт, который + сканирует все файлы в каталоге и добавляет символические + ссылки к их хеш-значениям. Использование c_rehash считается + устаревшим и должно быть заменено командой openssl rehash +

+
+

+ openssl +

+
+

+ это инструмент командной строки для использования + различных криптографических функций библиотеки + OpenSSL из оболочки. Его + можно использовать для различных функций, которые + задокументированы в man 1 + openssl +

+
+

+ libcrypto.so +

+
+

+ реализует широкий спектр криптографических алгоритмов, + используемых в различных интернет-стандартах. Услуги, + предоставляемые этой библиотекой, используют OpenSSL-реализацию SSL, TLS и + S/MIME, а также для реализации OpenSSH, OpenPGP и других криптографических + стандартов. +

+
+

+ libssl.so +

+
+

+ реализует протокол безопасности транспортного уровня (TLS + v1). Он предоставляет богатый API, документацию по + которому можно найти, выполнив команду: man 7 ssl +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/patch.html b/lfs-12.0-sysv/chapter08/patch.html new file mode 100644 index 0000000..addccae --- /dev/null +++ b/lfs-12.0-sysv/chapter08/patch.html @@ -0,0 +1,165 @@ + + + + + + 8.68. Patch-2.7.6 + + + + + + + + +
+

+ 8.68. Patch-2.7.6 +

+
+

+ Пакет Patch содержит программу для изменения или создания файлов + путём наложение «патча», обычно, создаваемого программой + diff. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 12 MB +
+
+
+
+
+

+ 8.68.1. Установка пакета Patch +

+

+ Подготовьте Patch к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.68.2. Содержимое + пакета Patch +

+
+
+
+ Установленные программы: + patch +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ patch +

+
+

+ Изменяет файлы в соответствии с файлом исправления (патч + обычно представляет собой список отличий, создаваемый с + помощью программы diff. Применяя их к + исходным файлам, patch создает + исправленные версии.) +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/perl.html b/lfs-12.0-sysv/chapter08/perl.html new file mode 100644 index 0000000..a32c173 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/perl.html @@ -0,0 +1,725 @@ + + + + + + 8.42. Perl-5.38.0 + + + + + + + + +
+

+ 8.42. Perl-5.38.0 +

+
+

+ Пакет Perl содержит практический язык для извлечения данных и + составления отчётов (Practical Extraction and Report Language). +

+
+
+
+ Приблизительное время сборки: + 7.1 SBU +
+
+ Требуемое дисковое + пространство: 239 MB +
+
+
+
+
+

+ 8.42.1. Установка пакета Perl +

+

+ Эта версия Perl собирает модули Compress::Raw::Zlib и + Compress::Raw::BZip2. По умолчанию Perl будет использовать + внутреннюю копию исходников для сборки. Выполните следующую + команду, чтобы Perl использовал библиотеки, установленные в + системе: +

+
export BUILD_ZLIB=False
+export BUILD_BZIP2=0
+

+ Чтобы иметь полный контроль над настройкой Perl, вы можете удалить + параметры «-des» из следующей команды и вручную выбрать + способ сборки этого пакета. В качестве альтернативы, используйте + команду точно так, как указано ниже, чтобы использовать значения по + умолчанию, которые Perl определяет автоматически: +

+
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
+
+

+ Значение параметров configure: +

+
+
+ -Dvendorprefix=/usr +
+
+

+ Параметр гарантирует, что perl знает, как указать + пакетам, где они должны устанавливать свои модули Perl. +

+
+
+ -Dpager="/usr/bin/less + -isR" +
+
+

+ Параметр указывает использовать less вместо more. +

+
+
+ -Dman1dir=/usr/share/man/man1 + -Dman3dir=/usr/share/man/man3 +
+
+

+ Так как Groff еще не установлен, Configure не будет + создавать man-страницы для Perl. Эти параметры переопределяют + это поведение. +

+
+
+ -Duseshrplib +
+
+

+ Собрать общую библиотеку libperl, необходимую некоторым + модулям Perl. +

+
+
+ -Dusethreads +
+
+

+ Собрать Perl с поддержкой потоков. +

+
+
+ -Dprivlib,-Darchlib,-Dsitelib,... +
+
+

+ Эти настройки определяют, где Perl ищет установленные модули. + Редакторы LFS решили поместить их в структуру каталогов, + основанную на MAJOR.MINOR версии Perl (5.38), что позволяет + обновлять Perl до более новых версий (5.38.0) без + необходимости переустанавливать все модули. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет (примерно 11 SBU), выполните: +

+
make test
+

+ Установка пакета и очистка: +

+
make install
+unset BUILD_ZLIB BUILD_BZIP2
+
+
+

+ 8.42.2. Содержимое + пакета Perl +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + Список слишком большой для + перечисления +
+
+ Созданные каталоги: + /usr/lib/perl5 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ corelist +

+
+

+ Интерфейс командной строки для Module::CoreList +

+
+

+ cpan +

+
+

+ Позволяет получать из командной строки доступ к архиву + документации и программ Perl (Comprehensive Perl Archive + Network - CPAN) +

+
+

+ enc2xs +

+
+

+ Собирает расширение Perl для модуля Encode либо с + использование таблицы символов Unicode, либо с + использованием файлов кодирования Tcl +

+
+

+ encguess +

+
+

+ Определяет тип кодировки одного или нескольких файлов +

+
+

+ h2ph +

+
+

+ Конвертирует заголовочные файлы Си .h в заголовочные файлы Perl + .ph +

+
+

+ h2xs +

+
+

+ Конвертирует заголовочные файлы Си .h в расширения Perl +

+
+

+ instmodsh +

+
+

+ Сценарий оболочки для проверки установленных модулей + Perl; он может создать архив из установленного модуля. +

+
+

+ json_pp +

+
+

+ Преобразует данные между определенными входными и + выходными форматами +

+
+

+ libnetcfg +

+
+

+ Может использоваться для настройки Perl-модуля + libnet +

+
+

+ perl +

+
+

+ Объединяет лучшие возможности C, sed, awk и sh в одном языке +

+
+

+ perl5.38.0 +

+
+

+ Жесткая ссылка на perl +

+
+

+ perlbug +

+
+

+ Используется для создания отчетов об ошибках в Perl или + модулях, которые поставляются с ним, и отправки их по + почте +

+
+

+ perldoc +

+
+

+ Отображает часть документации в формате pod, которая + встроена в дерево установки Perl или в сценарий Perl +

+
+

+ perlivp +

+
+

+ Процедура проверки установки Perl; ее можно использовать + для проверки правильности установки Perl и его библиотек +

+
+

+ perlthanks +

+
+

+ Используется для создания сообщения-благодарности, + отсылаемого разработчикам Perl +

+
+

+ piconv +

+
+

+ Perl версия конвертера iconv, используемого + для кодирования символов +

+
+

+ pl2pm +

+
+

+ Инструмент для грубого конвертирования файлов + .pl Perl4 в модули + .pm Perl5 +

+
+

+ pod2html +

+
+

+ Преобразует файлы из формата pod в формат HTML +

+
+

+ pod2man +

+
+

+ Преобразует данные pod в форматированный входной поток + для *roff +

+
+

+ pod2text +

+
+

+ Преобразует данные pod в форматированный текст ASCII +

+
+

+ pod2usage +

+
+

+ Печатает в файл сообщения usage из встроенных документов + pod +

+
+

+ podchecker +

+
+

+ Проверяет синтаксис файлов документации формата pod +

+
+

+ podselect +

+
+

+ Отображает выбранные разделы документации pod +

+
+

+ prove +

+
+

+ Инструмент командной строки для выполнения тестов с + помощью модуля Test::Harness +

+
+

+ ptar +

+
+

+ Программа, похожая на tar, написанная на Perl +

+
+

+ ptardiff +

+
+

+ Программа на Perl для сравнения распакованного и + нераспакованного архивов +

+
+

+ ptargrep +

+
+

+ Программа на Perl для текстового поиска по шаблону внутри + tar-архива +

+
+

+ shasum +

+
+

+ Печатает или проверяет контрольные суммы SHA +

+
+

+ splain +

+
+

+ Включает подробные предупреждения для диагностики в Perl +

+
+

+ xsubpp +

+
+

+ Преобразует код Perl XS в код C +

+
+

+ zipdetails +

+
+

+ Отображает сведения о внутренней структуре Zip-файла +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/pkgconf.html b/lfs-12.0-sysv/chapter08/pkgconf.html new file mode 100644 index 0000000..8d02151 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/pkgconf.html @@ -0,0 +1,204 @@ + + + + + + 8.28. Pkgconf-2.0.1 + + + + + + + + +
+

+ 8.28. + Pkgconf-2.0.1 +

+
+

+ Пакет pkgconf является преемником pkg-config и содержит инструмент, + который позволяет передавать пути установки или пути к библиотекам + для инструментов сборки на этапе настройки (configure) и + сборки(make) пакетов. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 4.6 MB +
+
+
+
+
+

+ 8.28.1. Установка пакета Pkgconf +

+

+ Подготовьте Pkgconf к компиляции: +

+
./configure --prefix=/usr              \
+            --disable-static           \
+            --docdir=/usr/share/doc/pkgconf-2.0.1
+

+ Скомпилируйте пакет: +

+
make
+

+ Установите пакет: +

+
make install
+

+ Для обеспечения совместимости с исходным Pkg-config, создайте две + символические ссылки: +

+
ln -sv pkgconf   /usr/bin/pkg-config
+ln -sv pkgconf.1 /usr/share/man/man1/pkg-config.1
+
+
+

+ 8.28.2. + Содержимое пакета Pkgconf +

+
+
+
+ Установленные программы: + pkgconf, pkg-config (ссылка на pkgconf) и + bomtool +
+
+ Установленные библиотеки: + libpkgconf.so +
+
+ Созданные каталоги: + /usr/share/doc/pkgconf-2.0.1 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ pkgconf +

+
+

+ Возвращает метаданные указанной библиотеки или пакета +

+
+

+ bomtool +

+
+

+ Генерирует спецификацию программного обеспечения из + файлов pkg-config с расширением .pc +

+
+

+ libpkgconf +

+
+

+ Содержит большую часть функций pkgconf, позволяя другим + инструментам, таким как IDE и компиляторы, использовать + его фреймворки +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/pkgmgt.html b/lfs-12.0-sysv/chapter08/pkgmgt.html new file mode 100644 index 0000000..63ac09d --- /dev/null +++ b/lfs-12.0-sysv/chapter08/pkgmgt.html @@ -0,0 +1,528 @@ + + + + + + 8.2. Управление пакетами + + + + + + + + +
+

+ 8.2. Управление + пакетами +

+

+ Управление пакетами — часто cпрашиваемое дополнение к книге LFS. + Менеджер пакетов позволяет отслеживать установку файлов, упрощая + удаление и обновление пакетов. Хороший менеджер пакетов также будет + обрабатывать конфигурационные файлы, чтобы сохранить пользовательские + настройки при переустановке или обновлении пакета. Прежде чем вы + начнете задаваться вопросом, НЕТ—в этом разделе не будет ни + говориться, ни рекомендоваться какой-либо конкретный менеджер + пакетов. Что он действительно предоставляет, так это обзор наиболее + популярных методов и того, как они работают. Идеальным менеджером + пакетов для вас может быть один из этих методов или комбинация двух и + более методов. В этом разделе кратко упоминаются проблемы, которые + могут возникнуть при обновлении пакетов. +

+

+ Некоторые причины, по которым менеджер пакетов не упоминается в LFS + или BLFS представлены ниже: +

+
+
    +
  • +

    + Рассмотрение управления пакетами отвлекает внимание от целей + этих книг—обучения тому, как строится система Linux. +

    +
  • +
  • +

    + Существует множество решений для управления пакетами, каждое из + которых имеет свои сильные и слабые стороны. Трудно найти + такое, которое удовлетворит всех. +

    +
  • +
+
+

+ Есть несколько советов, написанных на тему управления пакетами. + Посетите проект Советы + возможно вы найдете решение, которое соответствует вашим + потребностям. +

+
+

+ 8.2.1. Проблемы с обновлением +

+

+ Менеджер пакетов упрощает обновление до более новых версий после их + выпуска. Как правило, инструкции в книгах LFS и BLFS можно + использовать для обновления до более новых версий. Вот некоторые + моменты, о которых следует помнить при обновлении пакетов, особенно + в работающей системе. +

+
+
    +
  • +

    + Если нужно обновить ядро Linux (например, с 5.10.17 до + 5.10.18 или 5.11.1), дополнительно пересобирать ничего не + нужно. Система продолжит нормально работать благодаря четко + определенной границе между ядром и пользовательским + пространством. В частности, заголовки Linux API не нужно (и + не следует, см. следующий пункт) обновлять вместе с ядром. + Вам просто нужно перезагрузить систему, чтобы использовать + обновленное ядро. +

    +
  • +
  • +

    + Если необходимо обновить заголовочные файлы Linux API или + Glibc до более новой версии (например, с Glibc-2.31 до + Glibc-2.32), безопаснее заново собрать LFS. Хотя вы + можете пересобрать все + пакеты с их зависимостями, мы не рекомендуем этого делать. +

    +
  • +
  • +

    + Если пакет, содержащий общую библиотеку, обновляется и имя + библиотеки изменилось, то любые пакеты, динамически связанные + с библиотекой, необходимо перекомпилировать, чтобы связать с + более новой библиотекой. (Обратите внимание, что между + версией пакета и именем библиотеки нет никакой связи.) + Например, рассмотрим пакет foo-1.2.3, который устанавливает + общую библиотеку с именем libfoo.so.1. Предположим, вы обновили пакет + до более новой версии foo-1.2.4, которая устанавливает общую + библиотеку с именем libfoo.so.2, все пакеты, которые + динамически связаны с libfoo.so.1, должны быть перекомпилированы + для связи с libfoo.so.2, чтобы + использовать новую версию библиотеки. Вы не должны удалять + старые библиотеки, пока все зависимые пакеты не будут + перекомпилированы. +

    +
  • +
  • +

    + Если пакет (прямо или косвенно) связан как со старым, так и с + новым именем общей библиотеки (например, пакет ссылается как + на libfoo.so.2, так и на + libbar.so.1, в то время как + последний ссылается на libfoo.so.3), пакет может работать + неправильно, поскольку разные версии общей библиотеки + содержат несовместимые определения для некоторых имен + символов. Это может быть вызвано перекомпиляцией некоторых, + но не всех, пакетов, связанных со старой общей библиотекой, + после обновления пакета, предоставляющего общую библиотеку. + Чтобы избежать этой проблемы, пользователям необходимо как + можно скорее пересобрать каждый пакет, связанный с общей + библиотекой, с обновленной версией (например, с libfoo.so.2 + на libfoo.so.3). +

    +
  • +
  • +

    + Если пакет, содержащий общую библиотеку, обновляется, а имя + библиотеки не меняется, но уменьшается номер версии + файла библиотеки + (например, библиотека по-прежнему называется libfoo.so.1, но имя файла библиотеки + изменилось с libfoo.so.1.25 на + libfoo.so.1.24), следует + удалить файл библиотеки ранее установленной версии (в данном + случае libfoo.so.1.25). В + противном случае, команда ldconfig (запущенная + самостоятельно с помощью командной строки или при установке + какого-либо пакета) приведёт к сбросу символической ссылки + libfoo.so.1, которая будет + указывать на старый файл библиотеки, потому что кажется, что + она имеет «более + новую» версию, поскольку её номер версии + больше. Такая ситуация может произойти, если вам нужно + понизить версию пакета или авторы изменили схему управления + версиями файлов библиотеки. +

    +
  • +
  • +

    + Если пакет, содержащий общую библиотеку, обновляется, а имя + библиотеки не меняется, но устраняется серьезная проблема + (особенно уязвимость в системе безопасности), необходимо + перезапустить все работающие программы, связанные с общей + библиотекой. Следующая команда, запущенная от имени + пользователя root после + завершения обновления, выведет список программ, которые + использует старые версии этих библиотек (замените libfoo именем библиотеки): +

    +
    grep -l 'libfoo.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u
    +

    + Если для доступа к системе используется OpenSSH и он связан с обновленной + библиотекой, вам необходимо перезапустить службу sshd, затем выйти из + системы, снова войти в систему и повторно выполнить + предыдущую команду, чтобы убедиться, что удаленные библиотеки + более не используются. +

    +
  • +
  • +

    + Если исполняемая программа или библиотека перезаписаны, + процессы, использующие код или данные из них, могут + завершиться сбоем. Правильный способ обновить программу или + общую библиотеку, не вызывая сбоя процесса, - это сначала + удалить его, а затем установить новую версию. Команда + install, + предоставляемая Coreutils, + уже реализовала это, и большинство пакетов используют ее для + установки двоичных файлов и библиотек. Это означает, что + большую часть времени вас не будет беспокоить эта проблема. + Однако процесс установки некоторых пакетов (в частности, + Mozilla JS в BLFS) просто перезаписывает файл, если он + существует, и вызывает сбой. Поэтому безопаснее сохранить + свою работу и закрыть ненужные запущенные программы перед + обновлением пакета. +

    +
  • +
+
+
+
+

+ 8.2.2. Методы управления пакетами +

+

+ Ниже приведены некоторые распространенные методы управления + пакетами. Прежде чем принять решение о менеджере пакетов, проведите + исследование различных методов, особенно недостатки каждой + конкретной схемы. +

+
+

+ 8.2.2.1. Всё у меня в голове! +

+

+ Да, это метод управления пакетами. Некоторым людям не нужен + менеджер пакетов, потому что они хорошо знакомы с пакетами и + знают, какие файлы устанавливаются каждым пакетом. Некоторым + пользователям также не требуется какое-либо управление пакетами, + поскольку они планируют пересобирать всю систему при каждом + изменении пакета. +

+
+
+

+ 8.2.2.2. Установка в отдельные каталоги +

+

+ Это упрощенный метод управления пакетами, для которого не + требуется специальная программа для управления. Каждый пакет + устанавливается в отдельный каталог. Например, пакет foo-1.1 + устанавливается в /usr/pkg/foo-1.1, + а символическая ссылка создается из /usr/pkg/foo в /usr/pkg/foo-1.1. Когда появляется новая версия + foo-1.2, она устанавливается в /usr/pkg/foo-1.2 и предыдущая символическая + ссылка заменяется символической ссылкой на новую версию. +

+

+ Переменные окружения, такие как PATH, + LD_LIBRARY_PATH, MANPATH, INFOPATH и + CPPFLAGS необходимо расширить, включив + каталог /usr/pkg/foo. Для большого + количества пакетов, такая схема становится неуправляемой. +

+
+
+

+ 8.2.2.3. Управление пакетами с использованием символических + ссылок +

+

+ Это разновидность предыдущей техники.Каждый пакет устанавливается + аналогично, но вместо создания символической ссылки на общее имя + пакета, каждому файлу создаётся символическая ссылка в иерархии + каталогов /usr. Это исключает + необходимость модификации значений переменных окружения. Хотя + такие ссылки могут быть созданы пользователем, многие менеджеры + пакетов используют именной такой подход. Наиболее популярные из + них - Stow, Epkg, Graft и Depot. +

+

+ Установку нужно сымитировать, чтобы пакет думал, что он + установлен в /usr, хотя на самом + деле он установлен в иерархии /usr/pkg. Установка таким способом обычно + является нетривиальной задачей. Например, предположим, что вы + устанавливаете пакет libfoo-1.1. Следующие инструкции могут + привести к неправильной установке пакета: +

+
./configure --prefix=/usr/pkg/libfoo/1.1
+make
+make install
+

+ Установка будет выполнена, но зависимые пакеты не смогут + ссылаться на libfoo. Если вы скомпилируете пакет, который + ссылается на libfoo, вы заметите, что он связан с /usr/pkg/libfoo/1.1/lib/libfoo.so.1 вместо + /usr/lib/libfoo.so.1, как вы + ожидаете. Правильный подход заключается в использовании + переменной DESTDIR для управления + установкой. Этот подход работает следующим образом: +

+
./configure --prefix=/usr
+make
+make DESTDIR=/usr/pkg/libfoo/1.1 install
+

+ Большинство пакетов поддерживают этот подход, но есть и такие, + которые этого не делают. Для несовместимых пакетов вам может + потребоваться либо установить пакет вручную, либо вы можете + установить проблемные пакеты в /opt. +

+
+
+

+ 8.2.2.4. На основе временной метки +

+

+ В этом методе файлу присваивается временная метка перед + установкой пакета. После установки простое использование команды + find с + соответствующими параметрами может создать журнал всех файлов, + установленных после создания файла с временной метки. Менеджером + пакетов, использующим этот подход, является install-log. +

+

+ Хотя преимущество этой схемы в том, что она проста, у нее есть + два недостатка. Если во время установки, файлы устанавливаются с + отметкой времени, отличной от текущего времени, эти файлы не + будут отслеживаться менеджером пакетов. Кроме того, эта схема + может использоваться только при установке пакетов по одному. + Журналы ненадежны, если два пакета устанавливаются одновременно + на двух разных консолях. +

+
+
+

+ 8.2.2.5. Отслеживание сценариев установки +

+

+ При таком подходе, записываются команды, выполняемые сценариями + установки. Есть два метода, которые можно использовать: +

+

+ Переменная среды LD_PRELOAD может быть + установлена так, чтобы она указывала на библиотеку, которую нужно + предварительно загрузить перед установкой. Во время установки эта + библиотека отслеживает устанавливаемые пакеты, присоединяясь к + различным исполняемым файлам, таким как cp, install, mv, и отслеживая системные + вызовы, изменяющие файловую систему. Чтобы этот подход работал, + все исполняемые файлы должны быть динамически связаны без битов + suid или sgid. Предварительная загрузка библиотеки может вызвать + некоторые нежелательные побочные эффекты во время установки. + Поэтому рекомендуется выполнить некоторые тесты, чтобы убедиться, + что менеджер пакетов ничего не сломает и что он регистрирует все + соответствующие файлы. +

+

+ Другой метод заключается в использовании strace, который регистрирует + все системные вызовы, сделанные во время выполнения сценариев + установки. +

+
+
+

+ 8.2.2.6. Создание архивов пакетов +

+

+ В этой схеме установка пакета имитируется в отдельном дереве, как + описано ранее в разделе управление пакетами с использованием + символических ссылок. После установки из установленных файлов + создается архив пакета. Затем этот архив используется для + установки пакета на локальный компьютер или даже на другие + компьютеры. +

+

+ Этот подход используется большинством менеджеров пакетов, + имеющихся в коммерческих дистрибутивах. Примерами менеджеров + пакетов, которые следуют этому подходу, являются RPM (который, + кстати, требуется согласно спецификации Linux Standard + Base Specification), pkg-utils, apt Debian и система Portage + Gentoo. Описание того, как использовать этот стиль управления + пакетами для систем LFS, находится по адресу + https://mirror.linuxfromscratch.ru/hints/downloads/files/fakeroot.txt. +

+

+ Создание файлов пакетов, содержащих информацию о зависимостях, + является сложной задачей и выходит за рамки LFS. +

+

+ Slackware использует систему на основе tar для архивов пакетов. Эта + система намеренно не обрабатывает зависимости пакетов, как это + делают более сложные менеджеры пакетов. Подробнее об управлении + пакетами Slackware см. https://www.slackbook.org/html/package-management.html. +

+
+
+

+ 8.2.2.7. Пользовательское управление пакетами +

+

+ Эта схема, уникальная для LFS, была разработана Маттиасом + Бенкманом и доступна в проекте Hints. + В этой схеме каждый пакет устанавливается отдельным пользователем + в стандартные папки. Файлы, принадлежащие пакету, легко + идентифицируются путем проверки идентификатора пользователя. + Особенности и недостатки этого подхода слишком сложны, чтобы + описывать их в этом разделе. Для получения более подробной + информации, пожалуйста, ознакомьтесь с советами по адресу + + https://mirror.linuxfromscratch.ru/hints/downloads/files/more_control_and_pkg_man.txt. +

+
+
+
+

+ 8.2.3. Развертывание LFS на нескольких системах +

+

+ Одним из преимуществ системы LFS является отсутствие файлов, + зависящих от положения файлов на диске. Клонировать сборку LFS на + другой компьютер с той же архитектурой, что и у базовой системы, + так же просто, как использовать tar для архивации раздела LFS, + содержащем корневой каталог (около 900 МБ в несжатом виде для + базовой сборки LFS), скопировать этот файл по сети или с помощью CD + / USB носителя в новую систему и распаковать его. После этого + необходимо изменить несколько конфигурационных файлов. Файлы, + которые, возможно, потребуется изменить представлены в списке ниже: + /etc/hosts, /etc/fstab, /etc/passwd, /etc/group, /etc/shadow, /etc/ld.so.conf, /etc/sysconfig/rc.site, /etc/sysconfig/network, и /etc/sysconfig/ifconfig.eth0. +

+

+ Возможно, потребуется собрать собственное ядро для новой системы в + зависимости от различий в системном оборудовании и исходной + конфигурации ядра. +

+
+ [Примечание] +

+ Примечание +

+

+ Поступали некоторые сообщения о проблемах при копировании между + похожими, но не идентичными архитектурами. Например, набор + инструкций для Intel не идентичен набору инструкций для + процессора AMD, и более поздние версии некоторых процессоров + могут содержать инструкции, недоступные в более ранних версиях. +

+
+

+ Наконец, новую систему необходимо сделать загрузочной так, как это + описано в Раздел 10.4, + «Использование GRUB для настройки процесса загрузки». +

+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/procps-ng.html b/lfs-12.0-sysv/chapter08/procps-ng.html new file mode 100644 index 0000000..bd4f75f --- /dev/null +++ b/lfs-12.0-sysv/chapter08/procps-ng.html @@ -0,0 +1,412 @@ + + + + + + 8.76. Procps-ng-4.0.3 + + + + + + + + +
+

+ 8.76. + Procps-ng-4.0.3 +

+
+

+ Пакет Procps-ng содержит программы для мониторинга процессов. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 25 MB +
+
+
+
+
+

+ 8.76.1. Установка пакета Procps-ng +

+

+ Подготовьте Procps-ng к компиляции: +

+
./configure --prefix=/usr                           \
+            --docdir=/usr/share/doc/procps-ng-4.0.3 \
+            --disable-static                        \
+            --disable-kill
+
+

+ Значение параметра configure: +

+
+
+ --disable-kill +
+
+

+ Этот параметр отключает сборку команды kill; она будет установлена + из пакета Util-linux. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы запустить набор тестов, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.76.2. + Содержимое пакета Procps-ng +

+
+
+
+ Установленные программы: + free, pgrep, pidof, pkill, pmap, ps, + pwdx, slabtop, sysctl, tload, top, uptime, vmstat, w и + watch +
+
+ Установленные библиотеки: + libproc-2.so +
+
+ Созданные каталоги: + /usr/include/procps и + /usr/share/doc/procps-ng-4.0.3 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ free +

+
+

+ Сообщает объем свободной и используемой памяти (как + физической, так и файла подкачки) в системе. +

+
+

+ pgrep +

+
+

+ Выполняет поиск процессов на основе их имени и других + атрибутов +

+
+

+ pidof +

+
+

+ Сообщает PIDы указанных программ +

+
+

+ pkill +

+
+

+ Отправка сигналов процессам на основе их имени и других + атрибутов +

+
+

+ pmap +

+
+

+ Команда выводит детальную информацию об использование + оперативной памяти процессами +

+
+

+ ps +

+
+

+ Список запущенных процессов +

+
+

+ pwdx +

+
+

+ Сообщает текущий рабочий каталог процесса +

+
+

+ slabtop +

+
+

+ Отображает подробную информацию о кэш-памяти ядра в + режиме реального времени. +

+
+

+ sysctl +

+
+

+ Изменяет параметры ядра во время выполнения +

+
+

+ tload +

+
+

+ Выводит график текущей средней загрузки системы +

+
+

+ top +

+
+

+ Отображает список процессов, наиболее интенсивно + использующих ЦП; обеспечивает просмотр активности + процессора в режиме реального времени +

+
+

+ uptime +

+
+

+ Сообщает сколько времени работает система, сколько + пользователей вошли в систему и средние значения загрузки + системы. +

+
+

+ vmstat +

+
+

+ Сообщает статистику виртуальной памяти, содержащую + информацию о процессах, памяти, подкачке, блочном + вводе/выводе (IO), прерываниях и активности ЦП. +

+
+

+ w +

+
+

+ Показывает, какие пользователи в настоящее время вошли в + систему и с какого момента +

+
+

+ watch +

+
+

+ Выполняет заданную команду повторно, отображая первый + экран, заполненный ее выводом; это позволяет пользователю + наблюдать за изменениями с течением времени +

+
+

+ libproc-2 +

+
+

+ Содержит функции, используемые большинством программ в + этом пакете. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/psmisc.html b/lfs-12.0-sysv/chapter08/psmisc.html new file mode 100644 index 0000000..518d2db --- /dev/null +++ b/lfs-12.0-sysv/chapter08/psmisc.html @@ -0,0 +1,248 @@ + + + + + + 8.31. Psmisc-23.6 + + + + + + + + +
+

+ 8.31. + Psmisc-23.6 +

+
+

+ Пакет Psmisc содержит программы для отображения информации о + запущенных процессах. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 6.6 MB +
+
+
+
+
+

+ 8.31.1. Установка пакета Psmisc +

+

+ Подготовьте Psmisc к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.31.2. + Содержимое пакета Psmisc +

+
+
+
+ Установленные программы: + fuser, killall, peekfd, prtstat, pslog, + pstree и pstree.x11 (ссылка на pstree) +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ fuser +

+
+

+ Сообщает идентификаторы процессов (PID), которые + используют данные файлы или файловые системы. +

+
+

+ killall +

+
+

+ Уничтожает процессы по имени; посылает сигнал всем + процессам, выполняющим любую из заданных команд +

+
+

+ peekfd +

+
+

+ Просмотривает файловые дескрипторы запущенного процесса с + учетом его PID +

+
+

+ prtstat +

+
+

+ Выводит информацию о процессе +

+
+

+ pslog +

+
+

+ Сообщает текущий путь к журналам процесса +

+
+

+ pstree +

+
+

+ Отображает запущенные процессы в виде дерева +

+
+

+ pstree.x11 +

+
+

+ То же, что и pstree, за исключением + того, что он ожидает подтверждения перед выходом. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/readline.html b/lfs-12.0-sysv/chapter08/readline.html new file mode 100644 index 0000000..84f6061 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/readline.html @@ -0,0 +1,238 @@ + + + + + + 8.11. Readline-8.2 + + + + + + + + +
+

+ 8.11. + Readline-8.2 +

+
+

+ Пакет Readline представляет собой набор библиотек, предлагающих + возможности редактирования прямо в командной строке и просмотра + истории команд. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 16 MB +
+
+
+
+
+

+ 8.11.1. Установка пакета Readline +

+

+ Переустановка пакета Readline приводит к перемещению старых + библиотек в <libraryname>.old. Обычно это не вызывает + проблем, но в некоторых случаях могут возникать ошибки линковки с + ldconfig. Этого можно + избежать, выполнив следующие две команды sed: +

+
sed -i '/MV.*old/d' Makefile.in
+sed -i '/{OLDSUFF}/c:' support/shlib-install
+

+ Теперь устраните проблему, выявленную разработчиками: +

+
patch -Np1 -i ../readline-8.2-upstream_fix-1.patch
+

+ Подготовьте Readline к компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --with-curses    \
+            --docdir=/usr/share/doc/readline-8.2
+
+

+ Значение нового параметра configure: +

+
+
+ --with-curses +
+
+

+ Этот параметр сообщает Readline, что он может найти функции + библиотеки termcap в библиотеке curses, а не в отдельной + библиотеке termcap. Это позволит сгенерировать корректный + файл readline.pc. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make SHLIB_LIBS="-lncursesw"
+
+

+ Значение параметра make: +

+
+
+ SHLIB_LIBS="-lncursesw" +
+
+

+ Этот параметр принудительно линкует Readline с библиотекой + libncursesw. +

+
+
+
+

+ С этим пакетом не поставляется набор тестов. +

+

+ Установите пакет: +

+
make SHLIB_LIBS="-lncursesw" install
+

+ По желанию установите документацию: +

+
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2
+
+
+

+ 8.11.2. + Содержимое пакета Readline +

+
+
+
+ Установленные библиотеки: + libhistory.so и libreadline.so +
+
+ Созданные каталоги: + /usr/include/readline и + /usr/share/doc/readline-8.2 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ libhistory +

+
+

+ Обеспечивает согласованный пользовательский интерфейс для + вызова строк из истории +

+
+

+ libreadline +

+
+

+ Предоставляет набор команд для управления текстом, + введенным в интерактивном сеансе программы. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/sed.html b/lfs-12.0-sysv/chapter08/sed.html new file mode 100644 index 0000000..7c711d8 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/sed.html @@ -0,0 +1,163 @@ + + + + + + 8.30. Sed-4.9 + + + + + + + + +
+

+ 8.30. Sed-4.9 +

+
+

+ Пакет Sed содержит потоковый редактор текста +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 30 MB +
+
+
+
+
+

+ 8.30.1. Установка пакета Sed +

+

+ Подготовьте Sed к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет и сгенерируйте HTML-документацию: +

+
make
+make html
+

+ Чтобы протестировать пакет, выполните: +

+
chown -Rv tester .
+su tester -c "PATH=$PATH make check"
+

+ Установите пакет и документацию к нему: +

+
make install
+install -d -m755           /usr/share/doc/sed-4.9
+install -m644 doc/sed.html /usr/share/doc/sed-4.9
+
+
+

+ 8.30.2. Содержимое + пакета Sed +

+
+
+
+ Установленные программы: + sed +
+
+ Созданные каталоги: + /usr/share/doc/sed-4.9 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ sed +

+
+

+ Фильтрует и преобразует текстовые файлы за один проход +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/shadow.html b/lfs-12.0-sysv/chapter08/shadow.html new file mode 100644 index 0000000..9659b0f --- /dev/null +++ b/lfs-12.0-sysv/chapter08/shadow.html @@ -0,0 +1,945 @@ + + + + + + 8.26. Shadow-4.13 + + + + + + + + +
+

+ 8.26. + Shadow-4.13 +

+
+

+ Пакет Shadow содержит программы для безопасной обработки паролей. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 46 MB +
+
+
+
+
+

+ 8.26.1. Установка пакета Shadow +

+
+ [Примечание] +

+ Примечание +

+

+ Если вы хотите принудительно использовать надежные пароли, + обратитесь к инструкции + https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/cracklib.html + для установки CrackLib перед сборкой. Затем добавьте параметр + --with-libcrack в + приведенную ниже команду configure. +

+
+

+ Отключите установку groups и ее справочных страниц, + так как Coreutils предоставляет версию лучше. Кроме того, запретите + установку страниц руководств, так как они были установлены в + Раздел 8.3, «Man-pages-6.05.01»: +

+
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 / /'   {} \;
+

+ Вместо + используемого по умолчанию метода crypt, используйте более безопасный + метод шифрования паролей YESCRYPT, который также позволяет + использовать пароли длиннее 8 символов. Также необходимо изменить + устаревшее местоположение для почтовых ящиков пользователей + /var/spool/mail, которое Shadow + использует по умолчанию, на используемое в настоящее время + /var/mail. И удалите /bin и /sbin из + PATH, поскольку они являются просто + символическими ссылками на их аналоги в /usr. +

+
+ [Примечание] +

+ Примечание +

+

+ Если вы по какой-либо причине хотите включить /bin и/или /sbin + в PATH, измените PATH в файле .bashrc + после сборки LFS. +

+
+
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
+
+ [Примечание] +

+ Примечание +

+

+ Если вы решили собрать Shadow с поддержкой Cracklib, выполните + эту команду: +

+
sed -i 's:DICTPATH.*:DICTPATH\t/lib/cracklib/pw_dict:' etc/login.defs
+
+

+ Подготовьте Shadow к компиляции: +

+
touch /usr/bin/passwd
+./configure --sysconfdir=/etc \
+            --disable-static  \
+            --with-{b,yes}crypt \
+            --with-group-name-max-length=32
+
+

+ Значение новых параметров конфигурации: +

+
+
+ touch + /usr/bin/passwd +
+
+

+ Файл /usr/bin/passwd должен + существовать, потому что его местоположение жестко задано в + некоторых программах; если он не существует, скрипт установки + создаст его не в том месте. +

+
+
+ --with-{b,yes}crypt +
+
+

+ Оболочка расширяет это значение до двух параметров: + --with-bcrypt и + --with-yescrypt. Они + позволяют Shadow использовать алгоритмы Bcrypt и Yescrypt, + реализованные в Libxcrypt, + для хеширования паролей. Эти алгоритмы более безопасны (в + частности, гораздо более устойчивы к атакам с использованием + графических процессоров), чем традиционные алгоритмы SHA. +

+
+
+ --with-group-name-max-length=32 +
+
+

+ Максимально допустимая длина имени пользователя составляет 32 + символа. Сделайте такую же длину для названия группы. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ С этим пакетом не поставляется набор тестов. +

+

+ Установите пакет: +

+
make exec_prefix=/usr install
+make -C man install-man
+
+
+

+ 8.26.2. Настройка Shadow +

+

+ Этот пакет содержит утилиты для добавления, изменения и удаления + пользователей и групп; установки и изменения их паролей; и + выполнения других задач администрирования. Полное объяснение того, + что означает password + shadowing, см. в файле doc/HOWTO в дереве распакованных + исходных текстов. При использовании Shadow имейте в виду, что + программы, которым необходимо проверять пароли (дисплейные + менеджеры, FTP-программы, демоны pop3 и т.д.), должны быть + совместимы с Shadow. То есть они должны уметь работать с теневыми + паролями. +

+

+ Чтобы включить поддержку теневых паролей, выполните следующую + команду:: +

+
pwconv
+

+ Чтобы включить использование теневых паролей для групп, запустите: +

+
grpconv
+

+ Конфигурация Shadow по умолчанию для утилиты useradd имеет несколько + особенностей, требующих пояснения. Во-первых, по умолчанию утилита + useradd создает + пользователя и группу с тем же названием, что и имя пользователя. + По умолчанию, идентификатора пользователя (UID) и идентификатора + группы (GID) начинаются с 1000. Это означает, что если вы не + передадите дополнительные параметры в useradd, каждый пользователь + будет членом уникальной группы в системе. Если такое поведение + нежелательно, вам нужно передать один из параметров -g или -N в useradd или изменить настройку + USERGROUPS_ENAB в файле + /etc/login.defs. Смотрите справочную + страницу useradd(8) для получения + дополнительной информации. +

+

+ Во-вторых, чтобы изменить параметры по умолчанию, необходимо + создать файл /etc/default/useradd и + настроить его в соответствии с вашими потребностями. Создайте его: +

+
mkdir -p /etc/default
+useradd -D --gid 999
+
+

+ Пояснения к параметрам /etc/default/useradd +

+
+
+ GROUP=999 +
+
+

+ Этот параметр задает начальный номер группы, используемых в + файле /etc/group. Значение 999 + берется из приведенного выше параметра --gid. Вы можете установить + любое значение. Обратите внимание, что useradd никогда не будет + повторно использовать UID или GID. Если номер, указанный в + этом параметре, уже используется будет выбран следующий + доступный номер. Также обратите внимание, что если в вашей + системе нет группы с идентификатором, равным этому номеру, + при первом использовании useradd без параметра + -g — вы получите + следующее сообщение об ошибке: useradd: unknown GID 999, даже если + учетная запись была создана правильно. Поэтому мы создали + группу users с этим + идентификатором в Раздел 7.6, + «Создание основных файлов и символических ссылок». +

+
+
+ CREATE_MAIL_SPOOL=yes +
+
+

+ Этот параметр заставит утилиту useradd создавать файл + почтового ящика для каждого нового пользователя. useradd сделает этот файл + принадлежащим группе mail с + правами доступа 0660. Если вы предпочитаете, не создавать эти + файлы, выполните следующую команду: +

+
sed -i '/MAIL/s/yes/no/' /etc/default/useradd
+
+
+
+
+
+

+ 8.26.3. Установка пароля пользователя root +

+

+ Придумайте пароль для root и + установите командой: +

+
passwd root
+
+
+

+ 8.26.4. + Содержимое пакета Shadow +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + libsubid.so +
+
+ Созданные каталоги: + /etc/default и /usr/include/shadow +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ chage +

+
+

+ Используется для изменения максимального количества дней + между обязательными сменами пароля +

+
+

+ chfn +

+
+

+ Используется для изменения полного имени пользователя и + другой информации +

+
+

+ chgpasswd +

+
+

+ Используется для обновления паролей групп в пакетном + режиме. +

+
+

+ chpasswd +

+
+

+ Используется для обновления паролей пользователей в + пакетном режиме. +

+
+

+ chsh +

+
+

+ Используется для изменения оболочки входа для + пользователя. +

+
+

+ expiry +

+
+

+ Проверяет и применяет текущую политику истечения срока + действия пароля +

+
+

+ faillog +

+
+

+ Используется для проверки журнала неудачных попыток входа + в систему, для установки максимального количества + неудачных попыток до блокировки учетной записи и для + сброса счетчика неудачных попыток. +

+
+

+ getsubids +

+
+

+ Используется для перечисления подчиненных диапазонов + идентификаторов для пользователя +

+
+

+ gpasswd +

+
+

+ Используется для добавления и удаления пользователей и + администраторов в группы. +

+
+

+ groupadd +

+
+

+ Создает группу с указанным именем +

+
+

+ groupdel +

+
+

+ Удаляет группу с указанным именем +

+
+

+ groupmems +

+
+

+ Позволяет пользователю управлять своим собственным + списком членов группы без привилегий суперпользователя +

+
+

+ groupmod +

+
+

+ Используется для изменения имени группы или GID +

+
+

+ grpck +

+
+

+ Проверяет целостность файлов групп /etc/group и /etc/gshadow +

+
+

+ grpconv +

+
+

+ Создает или изменяет файл теневых групп, используя для + этого обычный файл групп +

+
+

+ grpunconv +

+
+

+ Обновляет /etc/group из + /etc/gshadow, а затем + удаляет последний +

+
+

+ lastlog +

+
+

+ Сообщает о самом последнем входе в систему всех + пользователей или данного пользователя +

+
+

+ login +

+
+

+ Используется системой для того, чтобы пользователь мог + войти в систему +

+
+

+ logoutd +

+
+

+ Это демон, используемый для обеспечения соблюдения + ограничений на время входа в систему и порты +

+
+

+ newgidmap +

+
+

+ Используется для сопоставления gid пространства имен + пользователя +

+
+

+ newgrp +

+
+

+ Используется для изменения GID во время сеанса входа в + систему +

+
+

+ newuidmap +

+
+

+ Используется для сопоставления uid пространства имен + пользователя +

+
+

+ newusers +

+
+

+ Используется для создания или изменения + последовательности учетных записей +

+
+

+ nologin +

+
+

+ Отображает сообщение о том, что учетная запись + недоступна; она предназначена для использования в + качестве оболочки по умолчанию для отключенных учетных + записей +

+
+

+ passwd +

+
+

+ Используется для изменения пароля для учетной записи + пользователя или группы. +

+
+

+ pwck +

+
+

+ Проверяет целостность файлов паролей /etc/passwd и /etc/shadow +

+
+

+ pwconv +

+
+

+ Создает или изменяет файл теневых паролей, используя для + этого обычный файл паролей +

+
+

+ pwunconv +

+
+

+ Обновляет /etc/passwd из + /etc/shadow а затем удаляет + последний +

+
+

+ sg +

+
+

+ Выполняет указанную команду в случае, если у пользователя + идентификатор группы GID совпадает с идентификатором + указанной группы +

+
+

+ su +

+
+

+ Запускает оболочку с заменой идентификаторов пользователя + и группы +

+
+

+ useradd +

+
+

+ Создает нового пользователя с указанным именем, либо + изменяет информацию, задаваемую по умолчанию для нового + пользователя +

+
+

+ userdel +

+
+

+ Удаляет учетную запись указанного пользователя +

+
+

+ usermod +

+
+

+ Используется для изменения имени пользователя, + идентификатора пользователя (UID), оболочки, группы, + домашнего каталога и т.д. +

+
+

+ vigr +

+
+

+ Редактирует файлы /etc/group или /etc/gshadow +

+
+

+ vipw +

+
+

+ Редактирует файлы /etc/passwd или /etc/shadow +

+
+

+ libsubid +

+
+

+ библиотека для обработки подчиненных диапазонов + идентификаторов пользователей и групп +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/stripping.html b/lfs-12.0-sysv/chapter08/stripping.html new file mode 100644 index 0000000..f7beb74 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/stripping.html @@ -0,0 +1,223 @@ + + + + + + 8.82. Удаление отладочных символов + + + + + + + + +
+

+ 8.82. + Удаление отладочных символов +

+

+ Этот раздел является необязательным. Если предполагаемый пользователь + не является программистом и не планирует выполнять какую-либо отладку + системного программного обеспечения, размер системы можно уменьшить + примерно на 2 ГБ, удалив отладочные символы и некоторые ненужные + записи таблицы символов из двоичных файлов и библиотек. Это не + вызывает никаких неудобств для обычного пользователя Linux. +

+

+ Большинство людей, использующих приведенные ниже команды, не + испытывают никаких трудностей. Однако легко допустить опечатку и + сделать новую систему непригодной для использования. Поэтому перед + выполнением команды strip рекомендуется сделать + резервную копию системы LFS. +

+

+ Команда strip с + параметром --strip-unneeded + удаляет все отладочные символы из двоичного файла или библиотеки. + Кроме этого, она удаляет все записи таблицы символов, ненужные + компоновщику (для статических библиотек) или динамическому + компоновщику (для динамически подключаемых двоичных файлов и общих + библиотек). +

+

+ Отладочные символы для выбранных библиотек сохраняются в отдельных + файлах. Эта отладочная информация необходима при выполнении + регрессионных тестов, с помощью + valgrind или + gdb в BLFS. +

+

+ Обратите внимание, что команда strip перезапишет двоичный файл или + библиотеку, которую она обрабатывает. Это может привести к сбою + процессов, использующих код или данные из файла. Если это затронет + сам процесс, выполняющий strip, удаляемый двоичный файл или + библиотека могут быть уничтожены; это может сделать систему полностью + непригодной для использования. Чтобы избежать этого, мы скопируем + некоторые библиотеки и двоичные файлы в /tmp, очистим их и переустановим с помощью команды + install. Прочтите + статью Раздел 8.2.1, «Проблемы с + обновлением», чтобы понять, почему следует использовать команду + install здесь. +

+
+ [Примечание] +

+ Примечание +

+

+ Имя загрузчика ELF — ld-linux-x86-64.so.2 в 64-битных системах. и + ld-linux.so.2 в 32-битных системах. Конструкция ниже выбирает + правильное имя для текущей архитектуры, исключая всё, что + заканчивается на «g», если приведенные ниже команды уже были + выполнены. +

+
+
+ [Важно] +

+ Важно +

+

+ Если есть какой-либо пакет, версия которого отличается от версии, + указанной в книге (либо в соответствии с рекомендациями по + безопасности, либо в соответствии с личными предпочтениями), может + потребоваться обновить имя файла библиотеки в save_usrlib или online_usrlib. В + противном случае система может стать полностью непригодной для + использования. +

+
+
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
+
+

+ Большое количество файлов будет помечено как ошибочные, потому что + формат файла не распознан. Эти предупреждения можно смело + игнорировать. Они указывают на то, что файлы являются скриптами, а не + двоичными файлами. +

+
+ + + diff --git a/lfs-12.0-sysv/chapter08/sysklogd.html b/lfs-12.0-sysv/chapter08/sysklogd.html new file mode 100644 index 0000000..a8a6ea1 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/sysklogd.html @@ -0,0 +1,208 @@ + + + + + + 8.79. Sysklogd-1.5.1 + + + + + + + + +
+

+ 8.79. + Sysklogd-1.5.1 +

+
+

+ Пакет Sysklogd содержит программы для логирования системных + сообщений, таких как сообщения ядра, когда происходят различные + события. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 680 KB +
+
+
+
+
+

+ 8.79.1. Установка пакета Sysklogd +

+

+ Во-первых, устраните проблему, которая при некоторых условиях + вызывает в klogd ошибку сегментирования и исправьте устаревшую + программную конструкцию: +

+
sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
+sed -i 's/union wait/int/' syslogd.c
+

+ Скомпилируйте пакет: +

+
make
+

+ Этот пакет не содержит набора тестов. +

+

+ Установите пакет: +

+
make BINDIR=/sbin install
+
+
+

+ 8.79.2. Настройка + Sysklogd +

+

+ Создайте новый файл /etc/syslog.conf, + выполнив следующую команду: +

+
cat > /etc/syslog.conf << "EOF"
+# 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
+EOF
+
+
+

+ 8.79.3. + Содержимое пакета Sysklogd +

+
+
+
+ Установленные программы: + klogd и syslogd +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + +
+

+ klogd +

+
+

+ Системный демон для перехвата и регистрации сообщений + ядра +

+
+

+ syslogd +

+
+

+ Регистрирует сообщения системных программ для записи в + лог [Каждое регистрируемое сообщение содержит как минимум + время события, имя хоста, а также имя программы, но это + зависит от настроек службы логирования.] +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/sysvinit.html b/lfs-12.0-sysv/chapter08/sysvinit.html new file mode 100644 index 0000000..6f0d2e2 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/sysvinit.html @@ -0,0 +1,313 @@ + + + + + + 8.80. Sysvinit-3.07 + + + + + + + + +
+

+ 8.80. + Sysvinit-3.07 +

+
+

+ Пакет Sysvinit содержит программы для управления загрузкой, + выполнением и выключением системы. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 4.5 MB +
+
+
+
+
+

+ 8.80.1. Установка пакета Sysvinit +

+

+ Сначала примените патч, который удаляет несколько программ, + установленных другими пакетами и исправляет предупреждение + компилятора: +

+
patch -Np1 -i ../sysvinit-3.07-consolidated-1.patch
+

+ Скомпилируйте пакет: +

+
make
+

+ С этим пакетом не поставляется набор тестов. +

+

+ Установите пакет: +

+
make install
+
+
+

+ 8.80.2. + Содержимое пакета Sysvinit +

+
+
+
+ Установленные программы: + bootlogd, fstab-decode, halt, init, + killall5, poweroff (ссылка на halt), reboot (ссылка на halt), + runlevel, shutdown и telinit (ссылка на init) +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ bootlogd +

+
+

+ Логирует сообщения при загрузке системы +

+
+

+ fstab-decode +

+
+

+ Запускает команду с аргументами, заданными в fstab +

+
+

+ halt +

+
+

+ Обычно вызывает команду shutdown с параметром + -h, за + исключением случаев, когда уровень запуска уже равен 0, + тогда он посылает ядру сигнал на остановку системы; Кроме + этого отмечает в файле /var/log/wtmp, что система завершает + работу +

+
+

+ init +

+
+

+ Первый процесс, который запускается после инициализации + оборудования; init берет на себя процесс загрузки и + запускает все процессы, которые указанны в его файле + конфигурации +

+
+

+ killall5 +

+
+

+ Посылает сигнал всем процессам, за исключением процессов + в его собственном сеансе; он не завершит свою + родительскую оболочку +

+
+

+ poweroff +

+
+

+ Посылает ядру команду остановить систему и выключить + компьютер (смотрите команду halt) +

+
+

+ reboot +

+
+

+ Посылает ядру команду перезагрузить систему (смотрите + команду halt) +

+
+

+ runlevel +

+
+

+ Сообщает о предыдущем и текущем уровнях выполнения так, + как это указано в последней записи в файле /run/utmp +

+
+

+ shutdown +

+
+

+ Безопасно останавливает систему, отправляя сигналы всем + процессам и оповещая всех пользователей, находящихся в + системе +

+
+

+ telinit +

+
+

+ Сообщает init на какой уровень + выполнения перейти +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/tar.html b/lfs-12.0-sysv/chapter08/tar.html new file mode 100644 index 0000000..5861b35 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/tar.html @@ -0,0 +1,209 @@ + + + + + + 8.69. Tar-1.35 + + + + + + + + +
+

+ 8.69. Tar-1.35 +

+
+

+ Пакет Tar предоставляет возможность создавать tar архивы, а также + производить с ними различные манипуляции. Tar может распаковать + предварительно созданный архив, добавить или обновить файлы в нём, + вернуть список файлов в архиве. +

+
+
+
+ Приблизительное время сборки: + 1.7 SBU +
+
+ Требуемое дисковое + пространство: 43 MB +
+
+
+
+
+

+ 8.69.1. Установка пакета Tar +

+

+ Подготовьте Tar к компиляции: +

+
FORCE_UNSAFE_CONFIGURE=1  \
+./configure --prefix=/usr
+
+

+ Значение параметра configure: +

+
+
+ FORCE_UNSAFE_CONFIGURE=1 +
+
+

+ Этот параметр принудительно запускает тест для mknod от имени пользователя root. Обычно считается опасным запускать + этот тест от имени пользователя root, но, поскольку он выполняется в + системе, которая была собрана лишь частично, его + переопределение допустимо. +

+
+
+
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+
+ [Примечание] +

+ Примечание +

+

+ Время тестирования Tar можно значительно сократить в системе с + несколькими ядрами. Для этого добавьте TESTSUITEFLAGS=-j<N> к + строке выше. Например, использование -j4 может сократить время + тестирования более чем на 70 процентов. +

+
+

+ Известно, что один тест, capabilities: binary store/restore, + завершается ошибкой при запуске, потому что в LFS отсутствует + selinux, он будет пропущен, если ядро хоста не поддерживает + расширенные атрибуты или метки безопасности файловой системы, + используемой для сборки LFS. +

+

+ Установите пакет: +

+
make install
+make -C doc install-html docdir=/usr/share/doc/tar-1.35
+
+
+

+ 8.69.2. Содержимое + пакета Tar +

+
+
+
+ Установленные программы: + tar +
+
+ Созданные каталоги: + /usr/share/doc/tar-1.35 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ tar +

+
+

+ Создает архивы, извлекает файлы и отображает содержимое + архивов, также известных как Тарболл. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/tcl.html b/lfs-12.0-sysv/chapter08/tcl.html new file mode 100644 index 0000000..7c0e0fb --- /dev/null +++ b/lfs-12.0-sysv/chapter08/tcl.html @@ -0,0 +1,271 @@ + + + + + + 8.15. Tcl-8.6.13 + + + + + + + + +
+

+ 8.15. Tcl-8.6.13 +

+
+

+ Пакет Tcl содержит Tool Command + Language, надежный скриптовый язык общего назначения. Пакет + Expect написан на языке + Tcl (произносится как "тикл"). +

+
+
+
+ Приблизительное время сборки: + 2.7 SBU +
+
+ Требуемое дисковое + пространство: 89 MB +
+
+
+
+
+

+ 8.15.1. Установка пакета Tcl +

+

+ Этот пакет и следующие два (Expect и DejaGNU) устанавливаются для + поддержки возможности тестирования Binutils, GCC и других пакетов. + Установка трех пакетов для целей тестирования может показаться + избыточной, но вы будете чувствовать себя увереннее, когда знаете, + что наиболее важные инструменты работают правильно. +

+

+ Подготовьте Tcl к компиляции: +

+
SRCDIR=$(pwd)
+cd unix
+./configure --prefix=/usr           \
+            --mandir=/usr/share/man
+

+ Соберите пакет: +

+
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
+

+ Различные инструкции «sed» после команды «make» удаляют ссылки на + каталог сборки из файлов конфигурации и заменяют их на созданные + каталоги. Это необязательно для остальной части LFS, но может + понадобиться в случае, когда пакет, собранный позже, использует + Tcl. +

+

+ Чтобы протестировать пакет, выполните: +

+
make test
+

+ Установите пакет: +

+
make install
+

+ Сделайте установленную библиотеку доступной для записи, чтобы позже + можно было удалить отладочные символы: +

+
chmod -v u+w /usr/lib/libtcl8.6.so
+

+ >Установите заголовочные файлы Tcl. Они потребуются для + следующего пакета - Expect. +

+
make install-private-headers
+

+ Теперь создайте необходимую символическую ссылку: +

+
ln -sfv tclsh8.6 /usr/bin/tclsh
+

+ Переименуйте справочную страницу, которая конфликтует со справочной + страницей Perl: +

+
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
+

+ При необходимости установите документацию, выполнив следующие + команды: +

+
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
+
+
+

+ 8.15.2. Содержимое + пакета Tcl +

+
+
+
+ Установленные программы: + tclsh (ссылка на tclsh8.6) и + tclsh8.6 +
+
+ Установленные библиотеки: + libtcl8.6.so и libtclstub8.6.a +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ tclsh8.6 +

+
+

+ Командная оболочка Tcl +

+
+

+ tclsh +

+
+

+ Ссылка на tclsh8.6 +

+
+

+ libtcl8.6.so +

+
+

+ Библиотека Tcl +

+
+

+ libtclstub8.6.a +

+
+

+ Библиотека-заглушка Tcl +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/texinfo.html b/lfs-12.0-sysv/chapter08/texinfo.html new file mode 100644 index 0000000..ced0b27 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/texinfo.html @@ -0,0 +1,334 @@ + + + + + + 8.70. Texinfo-7.0.3 + + + + + + + + +
+

+ 8.70. + Texinfo-7.0.3 +

+
+

+ Пакет Texinfo содержит программы для чтения, записи и + преобразования информационных страниц. +

+
+
+
+ Приблизительное время сборки: + 0.3 SBU +
+
+ Требуемое дисковое + пространство: 128 MB +
+
+
+
+
+

+ 8.70.1. Установка пакета Texinfo +

+

+ Подготовьте Texinfo к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+

+ По желанию установите компоненты, входящие в пакет TeX:: +

+
make TEXMF=/usr/share/texmf install-tex
+
+

+ Значение параметра make: +

+
+
+ TEXMF=/usr/share/texmf +
+
+

+ Переменная makefile TEXMF содержит + расположение корня дерева TeX, это понадобится, если, + например, пакет TeX планируется установить позже. +

+
+
+
+

+ Система документации использует простой текстовый файл для хранения + списка пунктов меню. Файл находится в /usr/share/info/dir. К сожалению, из-за случайных + проблем в Makefile различных пакетов он иногда может не + синхронизироваться с информационными страницами, установленными в + системе. Если когда-либо потребуется пересоздать файл /usr/share/info/dir, следующие необязательные + команды решают эту задачу: +

+
pushd /usr/share/info
+  rm -v dir
+  for f in *
+    do install-info $f dir 2>/dev/null
+  done
+popd
+
+
+

+ 8.70.2. + Содержимое пакета Texinfo +

+
+
+
+ Установленные программы: + info, install-info, makeinfo (ссылка на + texi2any), pdftexi2dvi, pod2texi, texi2any, texi2dvi, texi2pdf, + и texindex +
+
+ Установленные библиотеки: + MiscXS.so, Parsetexi.so и XSParagraph.so + (все в /usr/lib/texinfo) +
+
+ Созданные каталоги: + /usr/share/texinfo и + /usr/lib/texinfo +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ info +

+
+

+ Используется для чтения информационных страниц, которые + похожи на справочные страницы, но гораздо подробнее + описывают применение всех доступных параметров командной + строки [Например, сравните man bison и + info + bison.] +

+
+

+ install-info +

+
+

+ Используется для установки информационных страниц; он + обновляет записи в индексном файле команды info +

+
+

+ makeinfo +

+
+

+ Переводит исходные документы Texinfo в информационные + страницы, обычный текст или HTML. +

+
+

+ pdftexi2dvi +

+
+

+ Используется для форматирования документа Texinfo в файл + Portable Document Format (PDF). +

+
+

+ pod2texi +

+
+

+ Преобразует Pod в формат Texinfo +

+
+

+ texi2any +

+
+

+ Переводит исходную документацию Texinfo в различные + другие форматы. +

+
+

+ texi2dvi +

+
+

+ Используется для форматирования документа Texinfo в + независимый от устройства файл, который можно распечатать +

+
+

+ texi2pdf +

+
+

+ Используется для форматирования данного документа Texinfo + в файл Portable Document Format (PDF). +

+
+

+ texindex +

+
+

+ Используется для сортировки индексных файлов Texinfo. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/udev.html b/lfs-12.0-sysv/chapter08/udev.html new file mode 100644 index 0000000..a55d603 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/udev.html @@ -0,0 +1,366 @@ + + + + + + 8.74. Udev из Systemd-254 + + + + + + + + +
+

+ 8.74. Udev из + Systemd-254 +

+
+

+ Пакет Udev содержит программы для динамического создания узлов + устройств. +

+
+
+
+ Приблизительное время сборки: + 0.2 SBU +
+
+ Требуемое дисковое + пространство: 138 MB +
+
+
+
+
+

+ 8.74.1. Установка пакета Udev +

+

+ Udev является частью пакета systemd-254. Используйте файл + systemd-254.tar.xz в качестве исходного архива. +

+

+ Удалите две ненужные группы render + и sgx, из правил udev по умолчанию: +

+
sed -i -e 's/GROUP="render"/GROUP="video"/' \
+       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
+

+ Удалите одно правило udev, требующее полной установки Systemd: +

+
sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in
+

+ Подготовьте Udev к компиляции: +

+
mkdir -p build
+cd       build
+
+meson setup \
+      --prefix=/usr                 \
+      --buildtype=release           \
+      -Dmode=release                \
+      -Ddev-kvm-mode=0660           \
+      -Dlink-udev-shared=false      \
+      ..
+
+

+ Значение параметров meson: +

+
+
+ --buildtype=release +
+
+

+ Этот параметр переопределяет тип сборки по умолчанию + («debug»), который создает + неоптимизированные двоичные файлы. +

+
+
+ -Dmode=release +
+
+

+ Отключает некоторые функции, которые разработчики считают + экспериментальными. +

+
+
+ -Ddev-kvm-mode=0660 +
+
+

+ По умолчанию правило udev разрешает всем пользователям доступ + к /dev/kvm. Редакторы LFS + считают это опасным. Данная опция переопределяет разрешение + по умолчанию. +

+
+
+ -Dlink-udev-shared=false +
+
+

+ Эта опция запрещает udev связываться с внутренней общей + библиотекой systemd libsystemd-shared. Эта библиотека + предназначена для совместного использования многими + компонентами Systemd, и ее использование избыточно, когда + установлен только udev +

+
+
+
+

+ Соберите только компоненты, необходимые для udev: +

+
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 .)
+

+ Удалите один файл правил udev, требующий полной установки Systemd: +

+
rm rules.d/90-vconsole.rules
+

+ Установите пакет: +

+
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
+

+ Установите некоторые пользовательские правила и файлы поддержки, + полезные в среде LFS: +

+
tar -xvf ../../udev-lfs-20230818.tar.xz
+make -f udev-lfs-20230818/Makefile.lfs install
+

+ Установите справочные страницы: +

+
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
+
+
+

+ 8.74.2. Настройка Udev +

+

+ Информация об аппаратных устройствах хранится в каталогах + /etc/udev/hwdb.d и /usr/lib/udev/hwdb.d. Udev необходимо, чтобы эта информация была + скомпилирована в двоичную базу данных /etc/udev/hwdb.bin. Создайте исходную базу + данных: +

+
udev-hwdb update
+

+ Эту команду необходимо запускать каждый раз при обновлении + информации об оборудовании. +

+
+
+

+ 8.74.3. Содержимое + пакета Udev +

+
+
+
+ Установленные программы: + udevadm, udevd (символическая ссылка на + udevadm) и udev-hwdb +
+
+ Установленные библиотеки: + libudev.so +
+
+ Созданные каталоги: + /etc/udev и /usr/lib/udev +
+
+
+
+

+ Short Descriptions +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ udevadm +

+
+

+ Универсальный инструмент администрирования udev: + управляет демоном udevd, предоставляет информацию из базы + данных Udev, отслеживает uevents, ожидает завершения + uevents, проверяет конфигурацию Udev и запускает uevents + для данного устройства +

+
+

+ udevd +

+
+

+ Демон, который прослушивает uevents в сокете netlink, + создает устройства и запускает настроенные внешние + программы в ответ на эти uevents +

+
+

+ udev-hwdb +

+
+

+ Обновляет или запрашивает базу данных оборудования +

+
+

+ libudev +

+
+

+ Библиотека для получения информации об устройствах udev +

+
+

+ /etc/udev +

+
+

+ Содержит файлы конфигурации Udev, разрешения для + устройств и правила именования устройств +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/util-linux.html b/lfs-12.0-sysv/chapter08/util-linux.html new file mode 100644 index 0000000..7a5228f --- /dev/null +++ b/lfs-12.0-sysv/chapter08/util-linux.html @@ -0,0 +1,1928 @@ + + + + + + 8.77. Util-linux-2.39.1 + + + + + + + + +
+

+ 8.77. + Util-linux-2.39.1 +

+
+

+ Пакет Util-linux содержит различные служебные программы. Среди них + утилиты для работы с файловыми системами, консолями, разделами и + сообщениями. +

+
+
+
+ Приблизительное время сборки: + 0.5 SBU +
+
+ Требуемое дисковое + пространство: 310 MB +
+
+
+
+
+

+ 8.77.1. Установка пакета Util-linux +

+

+ Сначала отключите проблемные тесты: +

+
sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am
+

+ Подготовьте Util-linux к компиляции: +

+
./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
+

+ Параметры --disable и --without предотвращают появление + предупреждений о сборке компонентов, для которых требуются пакеты, + отсутствующие в LFS, или которые несовместимы с программами, + установленными другими пакетами. +

+

+ Скомпилируйте пакет: +

+
make
+

+ По желанию запустите набор тестов от имени пользователя без + полномочий root: +

+
+ [Предупреждение] +

+ Предупреждение +

+

+ Запуск набора тестов от имени пользователя root может повредить вашу систему. Чтобы + запустить тесты, опция CONFIG_SCSI_DEBUG для ядра должна быть + доступна в текущей работающей системе и должна быть собрана как + модуль. Включение её в ядро будет прерывать загрузку. Для полного + охвата тестами в систему необходимо установить другие пакеты из + BLFS. По желанию, этот тест можно запустить после загрузки в + готовую систему LFS: +

+
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
+
+
chown -Rv tester .
+su tester -c "make -k check"
+

+ Тесты с жесткими ссылками + завершатся неудачей, если в ядре хоста не включена опция + CONFIG_CRYPTO_USER_API_HASH или не + включено никаких опций, обеспечивающих реализацию SHA256 (например, + CONFIG_CRYPTO_SHA256 или CONFIG_CRYPTO_SHA256_SSSE3, если процессор + поддерживает инструкции SSE3). Кроме того, известно, что два + подтеста из misc: mbsencode и один подтест из script: replay не + проходят. +

+

+ Установите пакет: +

+
make install
+
+
+

+ 8.77.2. + Содержимое пакета Util-linux +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + libblkid.so, libfdisk.so, libmount.so, + libsmartcols.so и libuuid.so +
+
+ Созданные каталоги: + /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 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ addpart +

+
+

+ Сообщает ядру Linux о новых разделах +

+
+

+ agetty +

+
+

+ Открывает порт tty, запрашивает имя для входа, а затем + вызывает программу login +

+
+

+ blkdiscard +

+
+

+ Очищает сектора на устройстве +

+
+

+ blkid +

+
+

+ Утилита командной строки для вывода атрибутов блочного + устройства +

+
+

+ blkzone +

+
+

+ Используется для управления зонированными блочными + системами хранения +

+
+

+ blockdev +

+
+

+ Позволяет пользователям вызывать ioctl блочного + устройства из командной строки +

+
+

+ cal +

+
+

+ Отображает простой календарь +

+
+

+ cfdisk +

+
+

+ Управляет таблицей разделов данного устройства +

+
+

+ chcpu +

+
+

+ Изменяет состояние процессоров +

+
+

+ chmem +

+
+

+ Настраивает память +

+
+

+ choom +

+
+

+ Отображает и регулирует оценки OOM-killer, используемые + для определения того, какой процесс следует завершить + первым, когда в Linux заканчивается память +

+
+

+ chrt +

+
+

+ Манипулирует атрибутами процесса в режиме реального + времени +

+
+

+ col +

+
+

+ Фильтрует обратные переносы строк из входного потока +

+
+

+ colcrt +

+
+

+ Фильтрует данные, выдаваемые командой nroff на терминалы, у + которых отсутствует ряд возможностей, например, + отображение перечеркнутых символов или верхних и нижних + индексов +

+
+

+ colrm +

+
+

+ Фильтрует вывод указанных столбцов +

+
+

+ column +

+
+

+ Форматирует заданный файл в несколько столбцов +

+
+

+ ctrlaltdel +

+
+

+ Устанавливает для комбинации символов Ctrl+Alt+Del + жесткую или мягкую перезагрузку +

+
+

+ delpart +

+
+

+ Запрашивает у ядра Linux удаление раздела +

+
+

+ dmesg +

+
+

+ Выводит загрузочные сообщения ядра +

+
+

+ eject +

+
+

+ Извлекает съемный носитель +

+
+

+ fallocate +

+
+

+ Предварительное выделение места под файл +

+
+

+ fdisk +

+
+

+ Манипулирует таблицей разделов указанного устройства +

+
+

+ fincore +

+
+

+ Подчитывает сколько страниц приложение хранит в памяти + ядра +

+
+

+ findfs +

+
+

+ Находит файловую систему по метке или универсальному + уникальному идентификатору (UUID) +

+
+

+ findmnt +

+
+

+ Представляет собой интерфейс командной строки к + библиотеке libmount для работы с файлами mountinfo, fstab + и mtab +

+
+

+ flock +

+
+

+ Осуществляет блокировку файла, а затем выполняет команду, + не снимая блокировку +

+
+

+ fsck +

+
+

+ Используется для проверки и, при необходимости, + восстановления файловых систем +

+
+

+ fsck.cramfs +

+
+

+ Выполняет проверку целостности файловой системы Cramfs на + данном устройстве +

+
+

+ fsck.minix +

+
+

+ Выполняет проверку целостности файловой системы Minix на + данном устройстве +

+
+

+ fsfreeze +

+
+

+ Очень простая программа-обертка для выполнение операций с + драйвером ядра FIFREEZE/FITHAW ioctl +

+
+

+ fstrim +

+
+

+ Освобождает неиспользованные блоки смонтированной + файловой системы +

+
+

+ getopt +

+
+

+ Разбирает параметры указанной командной строки +

+
+

+ hardlink +

+
+

+ Объединяет дубликаты файлов путем создания жестких ссылок +

+
+

+ hexdump +

+
+

+ Создает дамп указанного файла в шестнадцатеричном, + десятичном, восьмеричном или ascii-формате +

+
+

+ hwclock +

+
+

+ Читает или устанавливает значение аппаратных часов + системы, называемых также часами реального времени (RTC- + Real-Time Clock) или часами БИОС (BIOS - Basic + Input-Output System) +

+
+

+ i386 +

+
+

+ Символьная ссылка на setarch +

+
+

+ ionice +

+
+

+ Читает или устанавливает класс и приоритет обработки + ввода/вывода для программ +

+
+

+ ipcmk +

+
+

+ Создает различные ресурсы межпроцессного взаимодействия + (IPC) +

+
+

+ ipcrm +

+
+

+ Удаляет указанный ресурс межпроцессного взаимодействия + (IPC) +

+
+

+ ipcs +

+
+

+ Предоставляет информацию о состоянии IPC +

+
+

+ irqtop +

+
+

+ Отображает информацию о счетчике прерываний ядра в стиле + top(1) +

+
+

+ isosize +

+
+

+ Сообщает о размере файловой системы iso9660 +

+
+

+ kill +

+
+

+ Посылает сигналы процессам +

+
+

+ last +

+
+

+ Показывает, какие пользователи в последний раз входили (и + выходили), выполняя поиск в файле /var/log/wtmp; кроме этого показывает + информацию о загрузке системы, завершение работы и + изменениях уровня выполнения +

+
+

+ lastb +

+
+

+ Показывает неудачные попытки входа в систему, + зарегистрированные в /var/log/btmp +

+
+

+ ldattach +

+
+

+ Назначает устройству последовательного доступа алгоритм, + определяющий дисциплину обслуживания этого устройства +

+
+

+ linux32 +

+
+

+ Символическая ссылка на setarch +

+
+

+ linux64 +

+
+

+ Символическая ссылка на setarch +

+
+

+ logger +

+
+

+ Добавляет указанное сообщение в системный журнал +

+
+

+ look +

+
+

+ Отображает строки, начинающиеся с указанной + последовательности символов +

+
+

+ losetup +

+
+

+ Настраивает и управляет устройствами типа loop +

+
+

+ lsblk +

+
+

+ Выводит информацию обо всех или выбранных блочных + устройствах в древовидном формате +

+
+

+ lscpu +

+
+

+ Выводит информацию об архитектуре процессора +

+
+

+ lsfd +

+
+

+ Отображает информацию об открытых файлах; заменяет + lsof +

+
+

+ lsipc +

+
+

+ Выводит информацию об объектах IPC, которые в настоящее + время используются в системе +

+
+

+ lsirq +

+
+

+ Отображает информацию о счетчике прерываний ядра +

+
+

+ lslocks +

+
+

+ Отображает список всех заблокированных в настоящее время + файлов в системе +

+
+

+ lslogins +

+
+

+ Выводит информацию о пользователях, группах и системных + учетных записях +

+
+

+ lsmem +

+
+

+ Отображает диапазоны доступной памяти с указанием их + оперативного статуса +

+
+

+ lsns +

+
+

+ Отображает список пространств имен +

+
+

+ mcookie +

+
+

+ Генерирует для xauth магические куки + (128-битные случайные числа в шестнадцатеричном формате) +

+
+

+ mesg +

+
+

+ Определяет, могут ли другие пользователи отправлять + сообщения на терминал текущего пользователя +

+
+

+ mkfs +

+
+

+ Создает файловую систему на устройстве (обычно это раздел + жесткого диска) +

+
+

+ mkfs.bfs +

+
+

+ Создает файловую систему Santa Cruz Operations (SCO) bfs +

+
+

+ mkfs.cramfs +

+
+

+ Создает файловую систему cramfs +

+
+

+ mkfs.minix +

+
+

+ Создает файловую систему Minix +

+
+

+ mkswap +

+
+

+ Инициализирует данное устройство или файл для + использования в качестве области подкачки +

+
+

+ more +

+
+

+ Фильтр постраничного вывода текста +

+
+

+ mount +

+
+

+ Подключение файловой системы, находящейся на заданном + устройстве, к указанному каталогу в дереве файловой + системы +

+
+

+ mountpoint +

+
+

+ Проверяет, является ли каталог точкой монтирования +

+
+

+ namei +

+
+

+ Разделяет на составляющие путь к файлу или каталогу, + показывая информацию о типе каждого элемента +

+
+

+ nsenter +

+
+

+ Запускает программу в пространстве имен других процессов +

+
+

+ partx +

+
+

+ Сообщает ядру информацию о наличии и количестве разделов, + находящихся на диске +

+
+

+ pivot_root +

+
+

+ Делает данную файловую систему новой корневой файловой + системой текущего процесса +

+
+

+ prlimit +

+
+

+ Получает и устанавливает ограничения использования + ресурсов процесса +

+
+

+ readprofile +

+
+

+ Читает информацию о профилировании ядра +

+
+

+ rename +

+
+

+ Переименовывает заданные файлы, заменяя одну строку + другой +

+
+

+ renice +

+
+

+ Изменяет приоритет запущенных процессов +

+
+

+ resizepart +

+
+

+ Запрашивает у ядра Linux изменение размера раздела +

+
+

+ rev +

+
+

+ Меняет в указанном файле порядок строк на обратный +

+
+

+ rfkill +

+
+

+ Bнструмент командной строки для управления беспроводными + устройствами +

+
+

+ rtcwake +

+
+

+ Используется для перехода системы в спящий режим до + указанного времени пробуждения +

+
+

+ script +

+
+

+ Создает скрипт терминальной сессии +

+
+

+ scriptlive +

+
+

+ Перезапускает скрипт терминальной сессии, используя + информацию о времени +

+
+

+ scriptreplay +

+
+

+ Воспроизводит скрипт в соответствие с указанным временем + запуска +

+
+

+ setarch +

+
+

+ В окружении, используемом новой программой, изменяет + информацию об архитектуре и устанавливает флаги + персонализации +

+
+

+ setsid +

+
+

+ Запускает указанную программу в новом сеансе +

+
+

+ setterm +

+
+

+ Устанавливает атрибуты терминала +

+
+

+ sfdisk +

+
+

+ Управляет таблицей разделов диска +

+
+

+ sulogin +

+
+

+ Позволяет пользователю root входить в систему; обычно он + вызывается init, когда система + переходит в однопользовательский режим +

+
+

+ swaplabel +

+
+

+ Изменяет UUID и метку раздела подкачки +

+
+

+ swapoff +

+
+

+ Отключает устройства и файлы подкачки +

+
+

+ swapon +

+
+

+ Включает устройства и файлы, применяемые для раздела + подкачки, а также выводит список устройств и файлов, + используемых в данный момент +

+
+

+ switch_root +

+
+

+ Переключается на другую файловую систему и устанавливает + её в качестве корневой +

+
+

+ taskset +

+
+

+ Устанавливает привязку процессора к процессу +

+
+

+ uclampset +

+
+

+ Управляет атрибутами ограничения использования системы + или процесса +

+
+

+ ul +

+
+

+ Фильтр для преобразования символов подчеркивания в + escape-последовательности +

+
+

+ umount +

+
+

+ Размонтирует файловую систему из дерева ФС +

+
+

+ uname26 +

+
+

+ Символическая ссылка на setarch +

+
+

+ unshare +

+
+

+ Позволяет процессу (или потоку) отделить части своего + контекста выполнения, которые используются совместно с + другими процессами (или потоками) +

+
+

+ utmpdump +

+
+

+ Отображает содержимое указанного файла входа в систему в + удобном для пользователя формате +

+
+

+ uuidd +

+
+

+ Демон, используемый библиотекой UUID для создания + безопасных и гарантированно уникальных идентификаторов + UUID +

+
+

+ uuidgen +

+
+

+ Создает новые идентификаторы (UUID). Каждый новый UUID - + это случайная последовательность, которая, будет с очень + высокой вероятностью (примерно 3,4 х 10 в 38 степени + вариантов) уникальной среди всех идентификаторов, + созданных как на локальной машине, так и на любых других + системах, в прошлом и будущем +

+
+

+ uuidparse +

+
+

+ Утилита для анализа уникальных идентификаторов +

+
+

+ wall +

+
+

+ Отображает содержимое файла или, по умолчанию, его вывод + на терминалах всех пользователей, вошедших в систему в + данный момент +

+
+

+ wdctl +

+
+

+ Показывает статус аппаратного сторожевого таймера +

+
+

+ whereis +

+
+

+ Сообщает местоположение двоичного файла, исходного кода и + справочной страницы для указанной команды +

+
+

+ wipefs +

+
+

+ Стирает с устройства сигнатуру файловой системы +

+
+

+ x86_64 +

+
+

+ Символическая ссылка на setarch +

+
+

+ zramctl +

+
+

+ Программа для настройки и управления устройствами zram + (сжатый RAM-диск) +

+
+

+ libblkid +

+
+

+ Содержит подпрограммы для идентификации устройства и + извлечения токена +

+
+

+ libfdisk +

+
+

+ Содержит подпрограммы для управления таблицами разделов +

+
+

+ libmount +

+
+

+ Содержит подпрограммы для монтирования и размонтирования + блочных устройств +

+
+

+ libsmartcols +

+
+

+ Содержит подпрограммы для более удобного вывода на экран + информации в табличном виде +

+
+

+ libuuid +

+
+

+ Содержит подпрограммы для генерации уникальных + идентификаторов для объектов, которые могут быть доступны + за пределами локальной системы +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/vim.html b/lfs-12.0-sysv/chapter08/vim.html new file mode 100644 index 0000000..7ebd94f --- /dev/null +++ b/lfs-12.0-sysv/chapter08/vim.html @@ -0,0 +1,448 @@ + + + + + + 8.71. Vim-9.0.1677 + + + + + + + + +
+

+ 8.71. Vim-9.0.1677 +

+
+

+ Пакет Vim содержит мощный текстовый редактор. +

+
+
+
+ Приблизительное время сборки: + 2.3 SBU +
+
+ Требуемое дисковое + пространство: 229 MB +
+
+
+
+ [Подсказка] +

+ Альтернативы Vim +

+

+ .Если вы предпочитаете другой текстовый редактор, например, + Emacs, Joe или Nano, обратитесь к + https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/editors.html + за рекомендациями по установке. +

+
+
+
+

+ 8.71.1. Установка пакета Vim +

+

+ Во-первых, измените расположение файла конфигурации vimrc на /etc: +

+
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
+

+ Подготовьте Vim к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы подготовить тесты, убедитесь, что пользователь tester может писать в исходное дерево: +

+
chown -Rv tester .
+

+ Теперь запустите тесты от имени пользователя tester: +

+
su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
+

+ Набор тестов выводит на экран много двоичных данных. Это может + вызвать проблемы с настройками текущего терминала. Чтобы этого + избежать, перенаправьте вывод в файл журнала, как показано выше. + Тест пройден успешно, если в файле журнала по завершении есть + надпись "ALL DONE". +

+

+ Установите пакет: +

+
make install
+

+ Многие пользователи рефлекторно набирают vi вместо vim. Чтобы разрешить выполнение + vim, когда + пользователи вводят vi, создайте символическую ссылку + как для двоичного файла, так и для справочной страницы: +

+
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
+

+ По умолчанию документация Vim установливается в каталог + /usr/share/vim. Следующая + символическая ссылка позволяет получить доступ к документации через + каталог /usr/share/doc/vim-9.0.1677, + что согласуется с расположением документации остальных пакетов: +

+
ln -sv ../vim/vim90/doc /usr/share/doc/vim-9.0.1677
+

+ Если в LFS будет установлена система X Window, может потребоваться + перекомпилировать Vim после установки X. Vim поставляется с + графической версией редактора, для которой требуется установка X и + некоторых дополнительных библиотек. Для получения дополнительной + информации об этом процессе обратитесь к документации по Vim и + странице установки Vim в книге BLFS по адресу + https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/vim.html. +

+
+
+

+ 8.71.2. Настройка Vim +

+

+ По умолчанию vim + работает в режиме, несовместимом с vi. Это может показаться + необычным для пользователей, которые в прошлом использовали другие + редакторы. Параметр «nocompatible» включен ниже, чтобы подчеркнуть + тот факт, что используется новое поведение. Настройка также + напоминает тем, кто хотел бы перейти в режим «compatible», что + параметр должен быть первым в файле конфигурации. Это необходимо, + потому что изменяются другие параметры, и переопределения + происходят после этой настройки. Создайте файл конфигурации + vim по умолчанию, + выполнив следующие действия: +

+
cat > /etc/vimrc << "EOF"
+" 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
+EOF
+

+ Параметр set nocompatible + заставляет vim вести + себя более правильно (по умолчанию), чем vi-совместимый способ. + Удалите «no», + чтобы сохранить старое поведение vi. Параметр set backspace=2 позволяет удалять + символы через перенос строки, автоматические отступы и начало + вставки. Параметр syntax on + включает подсветку синтаксиса vim. Параметр set mouse= позволяет правильно + вставлять текст с помощью мыши при работе в chroot или через + удаленное соединение. Наконец, оператор if с параметром set background=dark корректирует + предположение vim о + цвете фона некоторых эмуляторов терминала. Это придает подсветке + лучшую цветовую схему для использования на черном фоне этих + программ. +

+

+ Документацию по другим доступным параметрам можно получить, + выполнив следующую команду: +

+
vim -c ':options'
+
+ [Примечание] +

+ Примечание +

+

+ По умолчанию vim устанавливает файлы проверки орфографии только + для английского языка. Для установки файлов проверки орфографии + других языков, скопируйте файлы .spl и, при необходимости, .sug для вашего языка и кодировки символов из + runtime/spell, сохраните их в + /usr/share/vim/vim90/spell/. +

+

+ Чтобы использовать эти файлы проверки орфографии, необходимо + указать параметры для vim в файле /etc/vimrc, пример: +

+
set spelllang=en,ru
+set spell
+

+ Дополнительные сведения смотрите в файле runtime/spell/README.txt. +

+
+
+
+

+ 8.71.3. Содержимое + пакета Vim +

+
+
+
+ Установленные программы: + ex (ссылка на vim), rview (ссылка на + vim), rvim (ссылка на vim), vi (ссылка на vim), view (ссылка на + vim), vim, vimdiff (ссылка на vim), vimtutor и xxd +
+
+ Созданные каталоги: + /usr/share/vim +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ ex +

+
+

+ Запускает vim в режиме ex +

+
+

+ rview +

+
+

+ Это ограниченная версия view; никакие команды + оболочки не могут быть запущены, и view не может быть + приостановлен +

+
+

+ rvim +

+
+

+ Это ограниченная версия vim; никакие команды + оболочки не могут быть запущены, и vim не может быть + приостановлен +

+
+

+ vi +

+
+

+ Ссылка на vim +

+
+

+ view +

+
+

+ Запускает vim в режиме только для + чтения +

+
+

+ vim +

+
+

+ Сам редактор +

+
+

+ vimdiff +

+
+

+ Редактирует две или три версии файла с помощью + vim и + показывает различия +

+
+

+ vimtutor +

+
+

+ Обучает основным горячим клавишам и командам vim +

+
+

+ xxd +

+
+

+ Создает шестнадцатеричный дамп данного файла; он также + может выполнять обратную операцию, поэтому его можно + использовать для бинарных патчей +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/wheel.html b/lfs-12.0-sysv/chapter08/wheel.html new file mode 100644 index 0000000..1f34b14 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/wheel.html @@ -0,0 +1,158 @@ + + + + + + 8.53. Wheel-0.41.1 + + + + + + + + +
+

+ 8.53. Wheel-0.41.1 +

+
+

+ Wheel — это библиотека Python, которая является эталонной + реализацией стандарта упаковки программ на языке Python. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 1.5 MB +
+
+
+
+
+

+ 8.53.1. Установка пакета Wheel +

+

+ Скомпилируйте Wheel с помощью следующей команды: +

+
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+

+ Установите Wheel: +

+
pip3 install --no-index --find-links=dist wheel
+
+
+

+ 8.53.2. Содержимое + пакета Wheel +

+
+
+
+ Установленные программы: + wheel +
+
+ Созданные каталоги: + /usr/lib/python3.11/site-packages/wheel и + /usr/lib/python3.11/site-packages/wheel-0.41.1.dist-info +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ wheel +

+
+

+ это утилита для распаковки, упаковки или преобразования + wheel-архивов +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/xml-parser.html b/lfs-12.0-sysv/chapter08/xml-parser.html new file mode 100644 index 0000000..d1c341a --- /dev/null +++ b/lfs-12.0-sysv/chapter08/xml-parser.html @@ -0,0 +1,159 @@ + + + + + + 8.43. XML::Parser-2.46 + + + + + + + + +
+

+ 8.43. + XML::Parser-2.46 +

+
+

+ Модуль XML::Parser представляет собой Perl-интерфейс к XML-парсеру + Джеймса Кларка Expat. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 2.3 MB +
+
+
+
+
+

+ 8.43.1. Установка пакета XML::Parser +

+

+ Подготовьте XML::Parser к компиляции: +

+
perl Makefile.PL
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make test
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.43.2. + Содержимое XML::Parser +

+
+
+
+ Установленный модуль: + Expat.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ Expat +

+
+

+ предоставляет Perl интерфейс для Expat +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/xz.html b/lfs-12.0-sysv/chapter08/xz.html new file mode 100644 index 0000000..67488fc --- /dev/null +++ b/lfs-12.0-sysv/chapter08/xz.html @@ -0,0 +1,531 @@ + + + + + + 8.8. Xz-5.4.4 + + + + + + + + +
+

+ 8.8. Xz-5.4.4 +

+
+

+ Пакет Xz содержит программы для сжатия и распаковки файлов. Он + предоставляет возможности для lzma и более новых форматов сжатия + xz. Сжатие текстовых файлов с помощью xz дает лучший процент сжатия, + чем с традиционные gzip или bzip2. +

+
+
+
+ Приблизительное время сборки: + 0.1 SBU +
+
+ Требуемое дисковое + пространство: 24 MB +
+
+
+
+
+

+ 8.8.1. Установка пакета Xz +

+

+ Подготовьте Xz к компиляции: +

+
./configure --prefix=/usr    \
+            --disable-static \
+            --docdir=/usr/share/doc/xz-5.4.4
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+
+
+

+ 8.8.2. Содержимое пакета + Xz +

+
+
+
+ Установленные программы: + 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 +
+
+ Установленные библиотеки: + liblzma.so +
+
+ Созданные каталоги: + /usr/include/lzma и + /usr/share/doc/xz-5.4.4 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ lzcat +

+
+

+ Распаковывает в стандартный поток вывода +

+
+

+ lzcmp +

+
+

+ Запускает cmp для файлов сжатых + LZMA +

+
+

+ lzdiff +

+
+

+ Запускает diff для файлов сжатых + LZMA +

+
+

+ lzegrep +

+
+

+ Запускает egrep для файлов сжатых + LZMA +

+
+

+ lzfgrep +

+
+

+ Запускает fgrep для файлов сжатых + LZMA +

+
+

+ lzgrep +

+
+

+ Запускает grep для файлов сжатых + LZMA +

+
+

+ lzless +

+
+

+ Запускает less для файлов сжатых + LZMA +

+
+

+ lzma +

+
+

+ Сжимает или распаковывает файлы в формате LZMA +

+
+

+ lzmadec +

+
+

+ Небольшой и быстрый декодер для файлов сжатых LZMA. +

+
+

+ lzmainfo +

+
+

+ Показывает информацию, хранящуюся в заголовке сжатого + файла LZMA +

+
+

+ lzmore +

+
+

+ Запускает more для файлов сжатых + LZMA +

+
+

+ unlzma +

+
+

+ Распаковывает файлы в формате LZMA +

+
+

+ unxz +

+
+

+ Распаковывает файлы в формате XZ +

+
+

+ xz +

+
+

+ Сжимает или распаковывает файлы в формате XZ. +

+
+

+ xzcat +

+
+

+ Распаковывает в стандартный поток вывода +

+
+

+ xzcmp +

+
+

+ Запускает cmp для сжатых XZ + файлов +

+
+

+ xzdec +

+
+

+ Небольшой и быстрый декодер для файлов сжатых XZ +

+
+

+ xzdiff +

+
+

+ Запускает diff для сжатых XZ + файлов +

+
+

+ xzegrep +

+
+

+ Запускает egrep для сжатых XZ + файлов +

+
+

+ xzfgrep +

+
+

+ Запускает fgrep для сжатых XZ + файлов +

+
+

+ xzgrep +

+
+

+ Запускает grep для сжатых XZ + файлов +

+
+

+ xzless +

+
+

+ Запускает less для сжатых XZ + файлов +

+
+

+ xzmore +

+
+

+ Запускает more для сжатых XZ + файлов +

+
+

+ liblzma +

+
+

+ Библиотека, реализующая сжатие данных без потерь с + блочной сортировкой с использованием алгоритма + Lempel-Ziv-Markov +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/zlib.html b/lfs-12.0-sysv/chapter08/zlib.html new file mode 100644 index 0000000..b1ab8eb --- /dev/null +++ b/lfs-12.0-sysv/chapter08/zlib.html @@ -0,0 +1,162 @@ + + + + + + 8.6. Zlib-1.2.13 + + + + + + + + +
+

+ 8.6. Zlib-1.2.13 +

+
+

+ Пакет Zlib содержит подпрограммы сжатия и распаковки, используемые + некоторыми программами. +

+
+
+
+ Приблизительное время сборки: + менее 0.1 SBU +
+
+ Требуемое дисковое + пространство: 6.2 MB +
+
+
+
+
+

+ 8.6.1. Установка пакета Zlib +

+

+ Подготовьте Zlib к компиляции: +

+
./configure --prefix=/usr
+

+ Скомпилируйте пакет: +

+
make
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make install
+

+ Удалите бесполезную статическую библиотеку: +

+
rm -fv /usr/lib/libz.a
+
+
+

+ 8.6.2. Содержимое + пакета Zlib +

+
+
+
+ Установленные библиотеки: + libz.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + +
+

+ libz +

+
+

+ Содержит функции сжатия и распаковки, используемые + некоторыми программами. +

+
+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter08/zstd.html b/lfs-12.0-sysv/chapter08/zstd.html new file mode 100644 index 0000000..793c233 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/zstd.html @@ -0,0 +1,224 @@ + + + + + + 8.9. Zstd-1.5.5 + + + + + + + + +
+

+ 8.9. Zstd-1.5.5 +

+
+

+ Zstandard — это алгоритм сжатия в реальном времени, обеспечивающий + высокую степень сжатия. Он предлагает очень широкий диапазон + компромиссов между сжатием и скоростью при поддержке очень быстрого + декодера. +

+
+
+
+ Приблизительное время сборки: + 0.4 SBU +
+
+ Требуемое дисковое + пространство: 77 MB +
+
+
+
+
+

+ 8.9.1. Установка пакета Zstd +

+

+ Скомпилируйте пакет: +

+
make prefix=/usr
+
+ [Примечание] +

+ Примечание +

+

+ В выходных данных теста есть несколько мест, выводящих сообщение + 'failed'. Они ожидаемы, и только 'FAIL' является фактическим + сбоем теста. Сбоев при тестировании быть не должно. +

+
+

+ Чтобы протестировать пакет, выполните: +

+
make check
+

+ Установите пакет: +

+
make prefix=/usr install
+

+ Удалите статическую библиотеку: +

+
rm -v /usr/lib/libzstd.a
+
+
+

+ 8.9.2. Содержимое + пакета Zstd +

+
+
+
+ Установленные программы: + zstd, zstdcat (ссылка на zstd), zstdgrep, + zstdless, zstdmt (ссылка на zstd) и unzstd (ссылка на + zstd) +
+
+ Установленные библиотеки: + libzstd.so +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + + + + + +
+

+ zstd +

+
+

+ Сжимает или распаковывает файлы в формате ZSTD +

+
+

+ zstdgrep +

+
+

+ Запускает grep на сжатых ZSTD + файлах +

+
+

+ zstdless +

+
+

+ Запускает less на сжатых ZSTD + файлах +

+
+

+ libzstd +

+
+

+ Библиотека, реализующая сжатие данных без потерь, с + использованием алгоритма ZSTD +

+
+
+
+
+ + + -- cgit v1.2.3