diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
commit | 2203e654b389586650d553251b04544a34f189bf (patch) | |
tree | 0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter08/glibc.html | |
parent | 200d528e55ca954d37769f4d143f10c9519b00e7 (diff) | |
download | sn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip |
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter08/glibc.html')
-rw-r--r-- | lfs-12.1-sysv/chapter08/glibc.html | 1314 |
1 files changed, 0 insertions, 1314 deletions
diff --git a/lfs-12.1-sysv/chapter08/glibc.html b/lfs-12.1-sysv/chapter08/glibc.html deleted file mode 100644 index 277785f..0000000 --- a/lfs-12.1-sysv/chapter08/glibc.html +++ /dev/null @@ -1,1314 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 8.5. Glibc-2.39 - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.1"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.1 - </h4> - <h3> - Глава 8. Установка базового системного программного обеспечения - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="iana-etc.html" title= - "Iana-Etc-20240125">Пред.</a> - <p> - Iana-Etc-20240125 - </p> - </li> - <li class="next"> - <a accesskey="n" href="zlib.html" title="Zlib-1.3.1">След.</a> - <p> - Zlib-1.3.1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter08.html" title= - "Глава 8. Установка базового системного программного обеспечения">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - <h1 class="sect1"> - <a id="ch-system-glibc" name="ch-system-glibc"></a>8.5. Glibc-2.39 - </h1> - <div class="wrap" lang="ru" xml:lang="ru"> - <div class="package" lang="ru" xml:lang="ru"> - <p> - Пакет Glibc содержит основную библиотеку C. Эта библиотека - предоставляет основные процедуры для выделения памяти, поиска в - каталогах, открытия и закрытия файлов, чтения и записи файлов, - обработки строк, сопоставления с образцом, арифметики и так далее - </p> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Приблизительное время сборки:</strong> - <span class="segbody">12 SBU</span> - </div> - <div class="seg"> - <strong class="segtitle">Требуемое дисковое - пространство:</strong> <span class="segbody">3.1 GB</span> - </div> - </div> - </div> - </div> - <div class="installation" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - 8.5.1. Установка пакета Glibc - </h2> - <p> - Некоторые программы Glibc используют не совместимый с FHS каталог - <code class="filename">/var/db</code> для хранения своих данных во - время выполнения. Примените следующий патч, чтобы эти программы - хранили свои данные в каталогах, совместимых с FHS: - </p> - <pre class="userinput"><kbd class= - "command">patch -Np1 -i ../glibc-2.39-fhs-1.patch</kbd></pre> - <p> - Документация Glibc рекомендует выполнять компиляцию в отдельном - каталоге: - </p> - <pre class="userinput"><kbd class="command">mkdir -v build -cd build</kbd></pre> - <p> - Убедитесь, что утилиты <span class= - "command"><strong>ldconfig</strong></span> и <span class= - "command"><strong>sln</strong></span> будут установлены в - <code class="filename">/usr/sbin</code>: - </p> - <pre class="userinput"><kbd class= - "command">echo "rootsbindir=/usr/sbin" > configparms</kbd></pre> - <p> - Подготовьте Glibc к компиляции: - </p> - <pre class="userinput"><kbd class= - "command">../configure --prefix=/usr \ - --disable-werror \ - --enable-kernel=4.19 \ - --enable-stack-protector=strong \ - --disable-nscd \ - libc_cv_slibdir=/usr/lib</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение параметров настройки:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-werror</code></em></span> - </dt> - <dd> - <p> - Отключает параметр -Werror, передаваемый GCC. Это необходимо - для запуска набора тестов. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-kernel=4.19</code></em></span> - </dt> - <dd> - <p> - Этот параметр сообщает системе сборки, что Glibc может - использоваться с ядрами старше 4.19. Это значение - используется для создание обходных путей на случай, если - системный вызов, представленный в более поздней версии, - нельзя будет использовать. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--enable-stack-protector=strong</code></em></span> - </dt> - <dd> - <p> - Этот параметр повышает безопасность системы за счет - добавления дополнительного кода для проверки переполнения - буфера. Обратите внимание, что Glibc всегда явно - переопределяет параметры GCC по умолчанию, поэтому необходимо - всегда указывать эту опцию, несмотря на то, что мы уже - указали <code class="option">--enable-default-ssp</code> для - GCC. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>--disable-nscd</code></em></span> - </dt> - <dd> - <p> - Параметр отключает сборку демона кэша службы имен, который - больше не используется. - </p> - </dd> - <dt> - <span class="term"><em class= - "parameter"><code>libc_cv_slibdir=/usr/lib</code></em></span> - </dt> - <dd> - <p> - Эта переменная устанавливает правильную библиотеку для всей - системы. Мы не хотим, чтобы использовалась lib64 - </p> - </dd> - </dl> - </div> - <p> - Скомпилируйте пакет: - </p> - <pre class="userinput"><kbd class="command">make</kbd></pre> - <div class="admon important"> - <img alt="[Важно]" src="../images/important.png" /> - <h3> - Важно - </h3> - <p> - В этом разделе набор тестов для Glibc считается критически - важным. Ни в коем случае не пропускайте его. - </p> - </div> - <p> - Как правило, несколько тестов не проходят. Ошибки тестирования, - перечисленные ниже, можно игнорировать. - </p> - <pre class="userinput"><kbd class="command">make check</kbd></pre> - <p> - Вы можете увидеть, что ряд тестов завершились неудачей. Набор - тестов Glibc в некоторой степени зависит от хост-системы. Несколько - ошибок из более чем 5000 тестов можно игнорировать. Список наиболее - распространенных проблем последних версий LFS: - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Известно, что <span class= - "emphasis"><em>io/tst-lchmod</em></span> не работает в среде - chroot LFS. - </p> - </li> - <li class="listitem"> - <p> - Известно, что некоторые тесты, например <span class= - "emphasis"><em>nss/tst-nss-files-hosts-multi</em></span> и - <span class= - "emphasis"><em>nptl/tst-thread-affinity*</em></span> - завершаются неудачей из-за тайм-аута (особенно когда система - работает относительно медленно и/или набор тестов запущен в - несколько потоков). Эти тесты могут быть идентифицированы с - помощью следующей команды: - </p> - <pre class="userinput"><kbd class= - "command">grep "Timed out" -l $(find -name \*.out)</kbd></pre> - <p> - Можно повторно запустить отдельный тест, увеличив таймаут с - помощью команды <span class= - "command"><strong>TIMEOUTFACTOR=<em class= - "replaceable"><code><factor></code></em> make test - t=<em class="replaceable"><code><test - name></code></em></strong></span>. Например, <span class= - "command"><strong>TIMEOUTFACTOR=10 make test - t=nss/tst-nss-files-hosts-multi</strong></span> перезапустит - <span class= - "emphasis"><em>nss/tst-nss-files-hosts-multi</em></span>, - увеличив начальный таймаут в 10 раз. - </p> - </li> - <li class="listitem"> - <p> - Кроме того, некоторые тесты могут завершиться неудачно при - использовании относительно старой модели процессора - (например, <span class= - "emphasis"><em>elf/tst-cpu-features-cpuinfo</em></span>) или - версии ядра хоста (например, <span class= - "emphasis"><em>stdlib/tst-arc4random-thread</em></span>). - </p> - </li> - </ul> - </div> - <p> - На этапе установки Glibc будет жаловаться на отсутствие файла - <code class="filename">/etc/ld.so.conf</code>, хотя это безобидное - сообщение, предотвратить его появление можно с помощью команды: - </p> - <pre class="userinput"><kbd class= - "command">touch /etc/ld.so.conf</kbd></pre> - <p> - Исправьте Makefile, чтобы пропустить устаревшую проверку - работоспособности, которая завершается неудачей в современной - конфигурации Glibc: - </p> - <pre class="userinput"><kbd class= - "command">sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile</kbd></pre> - <div class="admon important"> - <img alt="[Важно]" src="../images/important.png" /> - <h3> - Важно - </h3> - <p> - При обновлении Glibc до новой минорной версии (например, с - Glibc-2.36 до Glibc-2.39) в работающей системе LFS вам необходимо - принять некоторые дополнительные меры предосторожности, чтобы - избежать поломки системы: - </p> - <div class="itemizedlist"> - <ul> - <li class="listitem"> - <p> - Обновление Glibc в системе LFS до версии 11.0 не - поддерживается. Пересоберите LFS, если вы используете такую - старую систему, но вам нужна более новая Glibc. - </p> - </li> - <li class="listitem"> - <p> - При обновлении системы LFS до версии 12.0 установите - <span class="application">Libxcrypt</span> следуя - инструкции <a class="xref" href="libxcrypt.html" title= - "8.26. Libxcrypt-4.4.36">Раздел 8.26, - «Libxcrypt-4.4.36.»</a>. В дополнение к обычной установке - <span class="application">Libxcrypt</span>, <span class= - "bold"><strong>вы ДОЛЖНЫ следовать примечанию со страницы - Libxcrypt, чтобы установить <code class= - "filename">libcrypt.so.1*</code> (заменив <code class= - "filename">libcrypt.so.1</code> из предыдущей установки - Glibc)</strong></span>. - </p> - </li> - <li class="listitem"> - <p> - При обновлении системы LFS до версии 12.1 удалите программу - <span class="command"><strong>nscd</strong></span>: - </p> - <pre class="userinput"><kbd class= - "command">rm -f /usr/sbin/nscd</kbd></pre> - </li> - <li class="listitem"> - <p> - Обновите ядро и перезагрузитесь, если оно старше 4.19 - (проверьте текущую версию с помощью <span class= - "command"><strong>uname -r</strong></span>) или, если вы - хотите обновить имеющееся ядро, выполните действия из - <a class="xref" href="../chapter10/kernel.html" title= - "10.3. Linux-6.7.4">Раздел 10.3, «Linux-6.7.4.»</a> - </p> - </li> - <li class="listitem"> - <p> - Обновите заголовочные файлы API ядра, если они старше 4.19 - (проверьте текущую версию с помощью <span class= - "command"><strong>cat - /usr/include/linux/version.h</strong></span>) или, если вы - просто хотите обновить их, следуйте <a class="xref" href= - "../chapter05/linux-headers.html" title= - "5.4. Заголовочные файлы Linux-6.7.4 API">Раздел 5.4, - «Заголовочные файлы Linux-6.7.4 API»</a> (но удалив - <code class="envar">$LFS</code> из команды <span class= - "command"><strong>cp</strong></span>). - </p> - </li> - <li class="listitem"> - <p> - Выполните установку <code class="envar">DESTDIR</code> и - обновите общие библиотеки Glibc в системе с помощью одной - команды <span class= - "command"><strong>install</strong></span>: - </p> - <pre class="userinput"><kbd class= - "command">make DESTDIR=$PWD/dest install -install -vm755 dest/usr/lib/*.so.* /usr/lib</kbd></pre> - </li> - </ul> - </div> - <p> - Крайне важно строго следовать описанным выше шагам, если вы не - совсем понимаете, что делаете. <span class="bold"><strong>Любое - неожиданное отклонение может сделать систему полностью - непригодной для использования. ВЫ ПРЕДУПРЕЖДЕНЫ.</strong></span> - </p> - <p> - Затем продолжайте выполнять команды <span class= - "command"><strong>make install</strong></span>, <span class= - "command"><strong>sed</strong></span> для <code class= - "filename">/usr/bin/ldd</code> и команды для установки локалей. - Как только они будут выполнены, перезагрузите систему. - </p> - </div> - <p> - Установите пакет: - </p> - <pre class="userinput"><kbd class="command">make install</kbd></pre> - <p> - Исправьте жестко заданный путь к исполняемому загрузчику в скрипте - <span class="command"><strong>ldd</strong></span>: - </p> - <pre class="userinput"><kbd class= - "command">sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd</kbd></pre> - <p> - Затем установите локали, которые дадут возможность системе отвечать - на разных языках. Ни одна из локалей не требуется системе, но если - некоторые из них отсутствуют, то наборы тестов ряда пакетов будут - пропускать важные тестовые сценарии. - </p> - <p> - Отдельные локали можно установить с помощью программы <span class= - "command"><strong>localedef</strong></span>. Например, вторая - команда <span class="command"><strong>localedef</strong></span> - приведенная ниже, объединяет определение независимой от набора - символов локали <code class= - "filename">/usr/share/i18n/locales/cs_CZ</code> с набором символов - <code class="filename">/usr/share/i18n/charmaps/UTF-8.gz</code> и - добавляет результат в файл <code class= - "filename">/usr/lib/locale/locale-archive</code>. Следующие - инструкции установят минимальный набор локалей, необходимый для - оптимального охвата тестов - </p> - <pre class="userinput"><kbd class="command">mkdir -pv /usr/lib/locale -localedef -i C -f UTF-8 C.UTF-8 -localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 -localedef -i de_DE -f ISO-8859-1 de_DE -localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro -localedef -i de_DE -f UTF-8 de_DE.UTF-8 -localedef -i el_GR -f ISO-8859-7 el_GR -localedef -i en_GB -f ISO-8859-1 en_GB -localedef -i en_GB -f UTF-8 en_GB.UTF-8 -localedef -i en_HK -f ISO-8859-1 en_HK -localedef -i en_PH -f ISO-8859-1 en_PH -localedef -i en_US -f ISO-8859-1 en_US -localedef -i en_US -f UTF-8 en_US.UTF-8 -localedef -i es_ES -f ISO-8859-15 es_ES@euro -localedef -i es_MX -f ISO-8859-1 es_MX -localedef -i fa_IR -f UTF-8 fa_IR -localedef -i fr_FR -f ISO-8859-1 fr_FR -localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro -localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 -localedef -i is_IS -f ISO-8859-1 is_IS -localedef -i is_IS -f UTF-8 is_IS.UTF-8 -localedef -i it_IT -f ISO-8859-1 it_IT -localedef -i it_IT -f ISO-8859-15 it_IT@euro -localedef -i it_IT -f UTF-8 it_IT.UTF-8 -localedef -i ja_JP -f EUC-JP ja_JP -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true -localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 -localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro -localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R -localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 -localedef -i se_NO -f UTF-8 se_NO.UTF-8 -localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 -localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 -localedef -i zh_CN -f GB18030 zh_CN.GB18030 -localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS -localedef -i zh_TW -f UTF-8 zh_TW.UTF-8</kbd></pre> - <p> - Кроме того, установите локаль для вашей страны, языка и набора - символов. - </p> - <p> - В качестве альтернативы, установите сразу все локали перечисленные - в файле <code class= - "filename">glibc-2.39/localedata/SUPPORTED</code> (он включает все - локали из списка выше и многие другие), выполнив команду: - </p> - <pre class="userinput"><kbd class= - "command">make localedata/install-locales</kbd></pre> - <p> - Затем используйте команду <span class= - "command"><strong>localedef</strong></span> для создания и - установки локалей, не перечисленных в файле <code class= - "filename">glibc-2.39/localedata/SUPPORTED</code>, когда они вам - понадобятся. Например, для некоторых тестов в этой главе - потребуются следующие две локали: - </p> - <pre class="userinput"><kbd class= - "command">localedef -i C -f UTF-8 C.UTF-8 -localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Glibc теперь использует libidn2 для разрешения - интернационализированных доменных имен. Если такая функция - необходима, то инструкцию по установке libidn2 можно найти на - странице <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/libidn2.html"> - BLFS libidn2</a>. - </p> - </div> - </div> - <div class="configuration" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - <a id="conf-glibc" name="conf-glibc"></a>8.5.2. Настройка Glibc - </h2> - <div class="sect3"> - <h3 class="sect3"> - 8.5.2.1. Добавление nsswitch.conf - </h3> - <p> - Необходимо создать файл <code class= - "filename">/etc/nsswitch.conf</code>, потому что настроенный по - умолчанию Glibc плохо работает в сетевой среде. - </p> - <p> - Создайте новый фай <code class= - "filename">/etc/nsswitch.conf</code>, выполнив следующие - действия: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/nsswitch.conf << "EOF" -<code class="literal"># Begin /etc/nsswitch.conf - -passwd: files -group: files -shadow: files - -hosts: files dns -networks: files - -protocols: files -services: files -ethers: files -rpc: files - -# End /etc/nsswitch.conf</code> -EOF</kbd></pre> - </div> - <div class="sect3"> - <h3 class="sect3"> - 8.5.2.2. Добавление данных о часовом поясе - </h3> - <p> - Установите и настройте часовой пояс следующим образом: - </p> - <pre class="userinput"><kbd class= - "command">tar -xf ../../tzdata2024a.tar.gz - -ZONEINFO=/usr/share/zoneinfo -mkdir -pv $ZONEINFO/{posix,right} - -for tz in etcetera southamerica northamerica europe africa antarctica \ - asia australasia backward; do - zic -L /dev/null -d $ZONEINFO ${tz} - zic -L /dev/null -d $ZONEINFO/posix ${tz} - zic -L leapseconds -d $ZONEINFO/right ${tz} -done - -cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO -zic -d $ZONEINFO -p America/New_York -unset ZONEINFO</kbd></pre> - <div class="variablelist"> - <p class="title"> - <strong>Значение команд zic:</strong> - </p> - <dl class="variablelist"> - <dt> - <span class="term"><em class="parameter"><code>zic -L - /dev/null ...</code></em></span> - </dt> - <dd> - <p> - Создаёт часовые пояса posix без секунд координации. Обычно - их помещают как в <code class="filename">zoneinfo</code> - так и в <code class="filename">zoneinfo/posix</code>. - Часовые пояса POSIX должны быть прописаны в <code class= - "filename">zoneinfo</code>, иначе различные тесты будут - сообщать об ошибках. На встраиваемых системах с небольшим - диском, где часовые пояса никогда не будут обновляться, - можно сэкономить примерно 1.9 MB не используя каталог - <code class="filename">posix</code>, однако некоторые - приложения или наборы тестов могут вызывать сбои. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>zic -L - leapseconds ...</code></em></span> - </dt> - <dd> - <p> - Создаёт правильные часовые пояса с секундами координации. - На встраиваемых системах с небольшим диском, где часовые - пояса никогда не будут обновляться, а правильность времени - неважна, можно выиграть примерно 1.9 MB, исключив каталог - <code class="filename">right</code>. - </p> - </dd> - <dt> - <span class="term"><em class="parameter"><code>zic ... -p - ...</code></em></span> - </dt> - <dd> - <p> - Создаёт файл <code class="filename">posixrules</code>. - Используется New York, потому что POSIX требует, чтобы - правила перехода на летнее время соответствовали правилам - США. - </p> - </dd> - </dl> - </div> - <p> - Один из способов определить местный часовой пояс — запустить - следующий скрипт: - </p> - <pre class="userinput"><kbd class="command">tzselect</kbd></pre> - <p> - После нескольких вопросов о местоположении скрипт выдаст - наименование часового пояса (например <span class= - "emphasis"><em>America/Edmonton</em></span>). В файле - <code class="filename">/usr/share/zoneinfo</code> перечислены и - другие возможные часовые пояса, такие как <span class= - "emphasis"><em>Canada/Eastern</em></span> или <span class= - "emphasis"><em>EST5EDT</em></span>, которые не распознаются - скриптом, но могут быть использованы. - </p> - <p> - Создайте файл <code class="filename">/etc/localtime</code> - выполнив: - </p> - <pre class="userinput"><kbd class= - "command">ln -sfv /usr/share/zoneinfo/<em class= - "replaceable"><code><xxx></code></em> /etc/localtime</kbd></pre> - <p> - Замените <em class="replaceable"><code><xxx></code></em> на - имя выбранного часового пояса (например, Europe/Moscow). - </p> - </div> - <div class="sect3"> - <h3 class="sect3"> - <a id="conf-ld" name="conf-ld"></a>8.5.2.3. Настройка - динамического загрузчика - </h3> - <p> - По умолчанию, динамический загрузчик (<code class= - "filename">/lib/ld-linux.so.2</code>) ищет в каталоге - <code class="filename">/usr/lib</code>, нужные для работы - программ библиотеки. Однако, если библиотеки находятся в другом - каталоге, то его необходимо указать в файле <code class= - "filename">/etc/ld.so.conf</code>, чтобы динамический загрузчик - мог их найти. Два каталога - <code class= - "filename">/usr/local/lib</code> и <code class= - "filename">/opt/lib</code> часто используются для дополнительных - библиотек, поэтому добавьте их в пути поиска для динамического - загрузчика. - </p> - <p> - Создайте новый файл <code class="filename">/etc/ld.so.conf</code> - выполнив: - </p> - <pre class="userinput"><kbd class= - "command">cat > /etc/ld.so.conf << "EOF" -<code class="literal"># Begin /etc/ld.so.conf -/usr/local/lib -/opt/lib -</code> -EOF</kbd></pre> - <p> - Динамический загрузчик может выполнить поиск в каталоге и - включить содержимое найденных там файлов. Обычно такие файлы - состоят из одной строки и содержат путь к библиотеке. Чтобы - добавить эту возможность, выполните следующие команды: - </p> - <pre class="userinput"><kbd class= - "command">cat >> /etc/ld.so.conf << "EOF" -<code class="literal"># Add an include directory -include /etc/ld.so.conf.d/*.conf -</code> -EOF -mkdir -pv /etc/ld.so.conf.d</kbd></pre> - </div> - </div> - <div class="content" lang="ru" xml:lang="ru"> - <h2 class="sect2"> - <a id="contents-glibc" name="contents-glibc"></a>8.5.3. Содержимое - пакета Glibc - </h2> - <div class="segmentedlist"> - <div class="seglistitem"> - <div class="seg"> - <strong class="segtitle">Установленные программы:</strong> - <span class="segbody">gencat, getconf, getent, iconv, - iconvconfig, ldconfig, ldd, lddlibc4, ld.so (symlink to - ld-linux-x86-64.so.2 or ld-linux.so.2), locale, localedef, - makedb, mtrace, pcprofiledump, pldd, sln, sotruss, sprof, - tzselect, xtrace, zdump и zic</span> - </div> - <div class="seg"> - <strong class="segtitle">Установленные библиотеки:</strong> - <span class="segbody">ld-linux-x86-64.so.2, ld-linux.so.2, - libBrokenLocale.{a,so}, libanl.{a,so}, libc.{a,so}, - libc_nonshared.a, libc_malloc_debug.so, libdl.{a,so.2}, libg.a, - libm.{a,so}, libmcheck.a, libmemusage.so, libmvec.{a,so}, - libnsl.so.1, libnss_compat.so, libnss_dns.so, libnss_files.so, - libnss_hesiod.so, libpcprofile.so, libpthread.{a,so.0}, - libresolv.{a,so}, librt.{a,so.1}, libthread_db.so и - libutil.{a,so.1}</span> - </div> - <div class="seg"> - <strong class="segtitle">Созданные каталоги:</strong> - <span class="segbody">/usr/include/arpa, /usr/include/bits, - /usr/include/gnu, /usr/include/net, /usr/include/netash, - /usr/include/netatalk, /usr/include/netax25, - /usr/include/neteconet, /usr/include/netinet, - /usr/include/netipx, /usr/include/netiucv, - /usr/include/netpacket, /usr/include/netrom, - /usr/include/netrose, /usr/include/nfs, /usr/include/protocols, - /usr/include/rpc, /usr/include/sys, /usr/lib/audit, - /usr/lib/gconv, /usr/lib/locale, /usr/libexec/getconf, - /usr/share/i18n, /usr/share/zoneinfo и /var/lib/nss_db</span> - </div> - </div> - </div> - <div class="variablelist"> - <h3> - Краткое описание - </h3> - <table border="0" class="variablelist"> - <colgroup> - <col align="left" valign="top" /> - <col /> - </colgroup> - <tbody> - <tr> - <td> - <p> - <a id="gencat" name="gencat"></a><span class= - "term"><span class= - "command"><strong>gencat</strong></span></span> - </p> - </td> - <td> - <p> - Создает каталоги сообщений - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="getconf" name="getconf"></a><span class= - "term"><span class= - "command"><strong>getconf</strong></span></span> - </p> - </td> - <td> - <p> - Отображает настройки системы для специфичных переменных - файловой системы - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="getent" name="getent"></a><span class= - "term"><span class= - "command"><strong>getent</strong></span></span> - </p> - </td> - <td> - <p> - Получает записи из административной базы данных - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="iconv" name="iconv"></a><span class= - "term"><span class= - "command"><strong>iconv</strong></span></span> - </p> - </td> - <td> - <p> - Выполняет преобразование набора символов - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="iconvconfig" name="iconvconfig"></a><span class= - "term"><span class= - "command"><strong>iconvconfig</strong></span></span> - </p> - </td> - <td> - <p> - Создает быстрозагружаемые файлы настроек модуля - <span class="command"><strong>iconv</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="ldconfig" name="ldconfig"></a><span class= - "term"><span class= - "command"><strong>ldconfig</strong></span></span> - </p> - </td> - <td> - <p> - Настраивает привязки времени выполнения динамического - компоновщика - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="ldd" name="ldd"></a><span class= - "term"><span class="command"><strong>ldd</strong></span></span> - </p> - </td> - <td> - <p> - Сообщает, какие общие библиотеки требуются каждой - программе или общей библиотеке - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="lddlibc4" name="lddlibc4"></a><span class= - "term"><span class= - "command"><strong>lddlibc4</strong></span></span> - </p> - </td> - <td> - <p> - Помогает <span class= - "command"><strong>ldd</strong></span> работать с - объектными файлами. Он не существует на более новых - архитектурах, таких как x86_64 - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="locale" name="locale"></a><span class= - "term"><span class= - "command"><strong>locale</strong></span></span> - </p> - </td> - <td> - <p> - Выводит различную информацию о текущей локали - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="localedef" name="localedef"></a><span class= - "term"><span class= - "command"><strong>localedef</strong></span></span> - </p> - </td> - <td> - <p> - Компилирует спецификации локали - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="makedb" name="makedb"></a><span class= - "term"><span class= - "command"><strong>makedb</strong></span></span> - </p> - </td> - <td> - <p> - Создает простую базу данных на основе текстового ввода - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="mtrace" name="mtrace"></a><span class= - "term"><span class= - "command"><strong>mtrace</strong></span></span> - </p> - </td> - <td> - <p> - Читает и интерпретирует файл трассировки памяти; - отображает сводку в удобочитаемом формате - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="pcprofiledump" name= - "pcprofiledump"></a><span class="term"><span class= - "command"><strong>pcprofiledump</strong></span></span> - </p> - </td> - <td> - <p> - Создает дамп информации, генерируемой при профилировании - ПК - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="pldd" name="pldd"></a><span class= - "term"><span class= - "command"><strong>pldd</strong></span></span> - </p> - </td> - <td> - <p> - Перечисляет динамические общие объекты, используемые - запущенными процессами. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="sln" name="sln"></a><span class= - "term"><span class="command"><strong>sln</strong></span></span> - </p> - </td> - <td> - <p> - Статически скомпонованная программа <span class= - "command"><strong>ln</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="sotruss" name="sotruss"></a><span class= - "term"><span class= - "command"><strong>sotruss</strong></span></span> - </p> - </td> - <td> - <p> - Отслеживает вызовы процедур общей библиотеки указанной - команды - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="sprof" name="sprof"></a><span class= - "term"><span class= - "command"><strong>sprof</strong></span></span> - </p> - </td> - <td> - <p> - Читает и отображает данные профилирования общих объектов. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="tzselect" name="tzselect"></a><span class= - "term"><span class= - "command"><strong>tzselect</strong></span></span> - </p> - </td> - <td> - <p> - Запрашивает у пользователя информацию о текущем - местоположении системы и выводит описание - соответствующего часового пояса. - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="xtrace" name="xtrace"></a><span class= - "term"><span class= - "command"><strong>xtrace</strong></span></span> - </p> - </td> - <td> - <p> - Отслеживает выполнение программы, отображая выполняемую в - данный момент функцию - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="zdump" name="zdump"></a><span class= - "term"><span class= - "command"><strong>zdump</strong></span></span> - </p> - </td> - <td> - <p> - Выдает дамп часового пояса - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="zic" name="zic"></a><span class= - "term"><span class="command"><strong>zic</strong></span></span> - </p> - </td> - <td> - <p> - Компилятор часовых поясов - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="ld.so" name="ld.so"></a><span class= - "term"><code class="filename">ld-*.so</code></span> - </p> - </td> - <td> - <p> - Вспомогательная программа для исполняемых файлов общей - библиотеки - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libBrokenLocale" name= - "libBrokenLocale"></a><span class="term"><code class= - "filename">libBrokenLocale</code></span> - </p> - </td> - <td> - <p> - Используется внутри Glibc как грубый хак для запуска - сломанных программ (например, некоторые приложения - Motif). Прочитайте комментарии в <code class= - "filename">glibc-2.39/locale/broken_cur_max.c</code> для - получения дополнительной информации - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libanl" name="libanl"></a><span class= - "term"><code class="filename">libanl</code></span> - </p> - </td> - <td> - <p> - Библиотека-заглушка, не содержащая функций. Ранее это - была библиотека асинхронного поиска имен, функции которой - теперь находятся в <code class="filename">libc</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libc" name="libc"></a><span class= - "term"><code class="filename">libc</code></span> - </p> - </td> - <td> - <p> - Основная библиотека C - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libc_malloc_debug" name= - "libc_malloc_debug"></a><span class="term"><code class= - "filename">libc_malloc_debug</code></span> - </p> - </td> - <td> - <p> - Включает проверку выделения памяти при предварительной - загрузке - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libdl" name="libdl"></a><span class= - "term"><code class="filename">libdl</code></span> - </p> - </td> - <td> - <p> - Библиотека-заглушка, не содержащая функций. Ранее была - библиотекой интерфейса динамической компоновки, функции - которой теперь находятся в <code class= - "filename">libc</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libg" name="libg"></a><span class= - "term"><code class="filename">libg</code></span> - </p> - </td> - <td> - <p> - Библиотека-заглушка без функций. Раньше была библиотекой - среды выполнения для <span class= - "command"><strong>g++</strong></span> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libm" name="libm"></a><span class= - "term"><code class="filename">libm</code></span> - </p> - </td> - <td> - <p> - Математическая библиотека - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libmvec" name="libmvec"></a><span class= - "term"><code class="filename">libmvec</code></span> - </p> - </td> - <td> - <p> - Библиотека векторных математических вычислений, - подключаемая по мере необходимости при использовании - <code class="filename">libm</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libmcheck" name="libmcheck"></a><span class= - "term"><code class="filename">libmcheck</code></span> - </p> - </td> - <td> - <p> - Включает проверку выделения памяти при подключении к - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libmemusage" name="libmemusage"></a><span class= - "term"><code class="filename">libmemusage</code></span> - </p> - </td> - <td> - <p> - Используется <span class= - "command"><strong>memusage</strong></span> для сбора - информации об использовании памяти программой - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libnsl" name="libnsl"></a><span class= - "term"><code class="filename">libnsl</code></span> - </p> - </td> - <td> - <p> - Библиотека сетевых служб, которая в настоящее время - устарела - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libnss" name="libnss"></a><span class= - "term"><code class="filename">libnss_*</code></span> - </p> - </td> - <td> - <p> - Модули Name Service Switch, содержащие функции для - разрешения имен хостов, имен пользователей, имен групп, - псевдонимов, служб, протоколов и т. д. Загружаются - <code class="filename">libc</code> в соответствии с - конфигурацией в <code class= - "filename">/etc/nsswitch.conf</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libpcprofile" name="libpcprofile"></a><span class= - "term"><code class="filename">libpcprofile</code></span> - </p> - </td> - <td> - <p> - Содержит функции профилирования, используемые для - отслеживания времени, потраченного процессором в - конкретных строках исходного кода - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libpthread" name="libpthread"></a><span class= - "term"><code class="filename">libpthread</code></span> - </p> - </td> - <td> - <p> - Библиотека-заглушка, не содержащая функций. Ранее - содержала функции, обеспечивающие большинство - интерфейсов, заданных POSIX.1c Threads Extensions - (расширения реализации потоков) и интерфейсы семафоров, - указанных в POSIX.1b Real-time Extension (расширения - реального времени), теперь эти функции находятся в - <code class="filename">libc</code> - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libresolv" name="libresolv"></a><span class= - "term"><code class="filename">libresolv</code></span> - </p> - </td> - <td> - <p> - Содержит функции создания, пересылки и интерпретации - пакетов, используемых на серверах доменных имен в сети - интернет - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="librt" name="librt"></a><span class= - "term"><code class="filename">librt</code></span> - </p> - </td> - <td> - <p> - Содержит функции, реализующие большую часть интерфейсов, - определяемых в POSIX.1b Real-time Extension (расширения - реального времени) - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libthread_db" name="libthread_db"></a><span class= - "term"><code class="filename">libthread_db</code></span> - </p> - </td> - <td> - <p> - Содержит функции, полезные для сборки отладчиков для - многопоточных программ - </p> - </td> - </tr> - <tr> - <td> - <p> - <a id="libutil" name="libutil"></a><span class= - "term"><code class="filename">libutil</code></span> - </p> - </td> - <td> - <p> - Библиотека-заглушка, не содержащая функций. Ранее - содержал код для <span class="quote">«<span class= - "quote">стандартных</span>»</span> функций, используемых - во многих утилитах Unix. Эти функции теперь находятся в - <code class="filename">libc</code> - </p> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="iana-etc.html" title= - "Iana-Etc-20240125">Пред.</a> - <p> - Iana-Etc-20240125 - </p> - </li> - <li class="next"> - <a accesskey="n" href="zlib.html" title="Zlib-1.3.1">След.</a> - <p> - Zlib-1.3.1 - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter08.html" title= - "Глава 8. Установка базового системного программного обеспечения">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.1">Начало</a> - </li> - </ul> - </div> - </body> -</html> |