diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-03-06 10:25:41 +0300 |
commit | 5a6834585c43296c2207f5f251d3d5c237c7c8d2 (patch) | |
tree | 5c3f9adc4c5fd0b3bdc3b017b021a36016c0f15b /lfs-12.1-sysv/chapter08/ncurses.html | |
parent | 2b6ec04f001bbdf660476a1275d90075d746833c (diff) | |
download | sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.tar.gz sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.zip |
Update LFS mirror
Diffstat (limited to 'lfs-12.1-sysv/chapter08/ncurses.html')
-rw-r--r-- | lfs-12.1-sysv/chapter08/ncurses.html | 548 |
1 files changed, 548 insertions, 0 deletions
diff --git a/lfs-12.1-sysv/chapter08/ncurses.html b/lfs-12.1-sysv/chapter08/ncurses.html new file mode 100644 index 0000000..359af24 --- /dev/null +++ b/lfs-12.1-sysv/chapter08/ncurses.html @@ -0,0 +1,548 @@ +<!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.29. Ncurses-6.4-20230520 + </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="gcc.html" title="GCC-13.2.0">Пред.</a> + <p> + GCC-13.2.0 + </p> + </li> + <li class="next"> + <a accesskey="n" href="sed.html" title="Sed-4.9">След.</a> + <p> + Sed-4.9 + </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-ncurses" name="ch-system-ncurses"></a>8.29. + Ncurses-6.4-20230520 + </h1> + <div class="wrap" lang="ru" xml:lang="ru"> + <div class="package" lang="ru" xml:lang="ru"> + <p> + Пакет Ncurses содержит библиотеки для независимой от терминала + обработки ввода/вывода + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">0.2 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">45 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + 8.29.1. Установка пакета Ncurses + </h2> + <p> + Подготовьте Ncurses к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-normal \ + --with-cxx-shared \ + --enable-pc-files \ + --enable-widec \ + --with-pkg-config-libdir=/usr/lib/pkgconfig</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение новых параметров настройки:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--with-shared</code></em></span> + </dt> + <dd> + <p> + Этот параметр позволяет Ncurses собирать и устанавливать + общие библиотеки C. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-normal</code></em></span> + </dt> + <dd> + <p> + Этот параметр отключает сборку и установку большинства + статических библиотек C. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--without-debug</code></em></span> + </dt> + <dd> + <p> + Этот параметр предотвращает сборку и установку отладочных + библиотек. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--with-cxx-shared</code></em></span> + </dt> + <dd> + <p> + Это аргумент позволяет Ncurses собирать и устанавливать общие + привязки C++. А также предотвращает сборку и установку + статических привязок C++. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--enable-pc-files</code></em></span> + </dt> + <dd> + <p> + Этот параметр генерирует и устанавливает файлы .pc для + pkg-config. + </p> + </dd> + <dt> + <span class="term"><em class= + "parameter"><code>--enable-widec</code></em></span> + </dt> + <dd> + <p> + Этот параметр указывает, что при сборке пакета вместо обычных + библиотек (например, <code class= + "filename">libncurses.so.6.4</code>) будут использоваться + библиотеки с расширенным набором символов (например, + <code class="filename">libncursesw.so.6.4</code>). Библиотеки + с расширенным набором символов могут использоваться как с + многобайтовыми локалями, так и с традиционными 8-битовыми + локалями, тогда как обычные библиотеки работают только с + 8-битовыми локалями. Библиотеки с расширенным набором + символов и обычные библиотеки совместимы на уровне исходного + кода, но не совместимыми на уровне двоичного. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + У этого пакета есть набор тестов, но его можно запустить только + после того, как пакет будет установлен. Тесты находятся в каталоге + <code class="filename">test/</code>. Дополнительные сведения + смотрите в файле <code class="filename">README</code> в этом + каталоге. + </p> + <p> + Установка этого пакета приведет к перезаписи <code class= + "filename">libncursesw.so.6.4</code>. Это может привести к сбою + процесса оболочки, который использует код и данные из файла + библиотеки. Установите пакет с помощью <code class= + "literal">DESTDIR</code> и правильно замените файл библиотеки с + помощью команды <span class= + "command"><strong>install</strong></span>(также отредактирован + заголовочный файл <code class="filename">curses.h</code>, чтобы + обеспечить использование ABI расширенного набора символов, как это + сделано в <a class="xref" href="../chapter06/ncurses.html" title= + "6.3. Ncurses-6.4-20230520">Раздел 6.3, + «Ncurses-6.4-20230520»</a>). + </p> + <pre class="userinput"><kbd class= + "command">make DESTDIR=$PWD/dest install +install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib +rm -v dest/usr/lib/libncursesw.so.6.4 +sed -e 's/^#if.*XOPEN.*$/#if 1/' \ + -i dest/usr/include/curses.h +cp -av dest/* /</kbd></pre> + <p> + Многие приложения ожидают, что компоновщик может найти библиотеки + Ncurses, не поддерживающие расширенный набор символов. Используя + трюк ниже, свяжите такие приложения с библиотеками расширенного + набора символов с помощью символических ссылок (обратите внимание, + что ссылки <code class="filename">.so</code> безопасны только в том + случае, если <code class="filename">curses.h</code> отредактирован + так, чтобы всегда использовать ABI расширенного набора символов): + </p> + <pre class="userinput"><kbd class= + "command">for lib in ncurses form panel menu ; do + ln -sfv lib${lib}w.so /usr/lib/lib${lib}.so + ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc +done</kbd></pre> + <p> + Убедитесь, что старые приложения, которым нужна <code class= + "filename">-lcurses</code> для сборки, собираются правильно: + </p> + <pre class="userinput"><kbd class= + "command">ln -sfv libncursesw.so /usr/lib/libcurses.so</kbd></pre> + <p> + По желанию установите документацию Ncurses: + </p> + <pre class="userinput"><kbd class= + "command">cp -v -R doc -T /usr/share/doc/ncurses-6.4-20230520</kbd></pre> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + С помощью приведенных выше инструкций не создаются библиотеки + Ncurses, не использующие расширенный набор символов, поскольку ни + один пакет, установленный путем компиляции из исходного кода, не + будет связан с ними во время выполнения. Тем не менее, известно + что некоторые бинарные приложения, которые связаны с библиотекой + Ncurses и не поддерживающие расширенный набор символов, требуют + наличия версии 5. Если вам необходимо иметь такие библиотеки + из-за какого-либо приложения, имеющегося только в бинарном виде, + или для обеспечения совместимости с LSB, соберите пакет с помощью + следующих команд: + </p> + <pre class="userinput"><kbd class="command">make distclean +./configure --prefix=/usr \ + --with-shared \ + --without-normal \ + --without-debug \ + --without-cxx-binding \ + --with-abi-version=5 +make sources libs +cp -av lib/lib*.so.5* /usr/lib</kbd></pre> + </div> + </div> + <div class="content" lang="ru" xml:lang="ru"> + <h2 class="sect2"> + <a id="contents-ncurses" name="contents-ncurses"></a>8.29.2. + Содержимое пакета Ncurses + </h2> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Установленные программы:</strong> + <span class="segbody">captoinfo (ссылка на tic), clear, + infocmp, infotocap (ссылка на tic), ncursesw6-config, reset + (ссылка на tset), tabs, tic, toe, tput и tset</span> + </div> + <div class="seg"> + <strong class="segtitle">Установленные библиотеки:</strong> + <span class="segbody">libcurses.so (символическая ссылка), + libform.so (символическая ссылка), libformw.so, libmenu.so + (символическая ссылка), libmenuw.so, libncurses.so + (символическая ссылка), libncursesw.so, libncurses++w.so, + libpanel.so (символическая ссылка) и libpanelw.so,</span> + </div> + <div class="seg"> + <strong class="segtitle">Созданные каталоги:</strong> + <span class="segbody">/usr/share/tabset, /usr/share/terminfo и + /usr/share/doc/ncurses-6.4-20230520</span> + </div> + </div> + </div> + <div class="variablelist"> + <h3> + Краткое описание + </h3> + <table border="0" class="variablelist"> + <colgroup> + <col align="left" valign="top" /> + <col /> + </colgroup> + <tbody> + <tr> + <td> + <p> + <a id="captoinfo" name="captoinfo"></a><span class= + "term"><span class= + "command"><strong>captoinfo</strong></span></span> + </p> + </td> + <td> + <p> + Преобразует описание termcap в описание terminfo + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="clear" name="clear"></a><span class= + "term"><span class= + "command"><strong>clear</strong></span></span> + </p> + </td> + <td> + <p> + Очищает экран, если это возможно + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="infocmp" name="infocmp"></a><span class= + "term"><span class= + "command"><strong>infocmp</strong></span></span> + </p> + </td> + <td> + <p> + Сравнивает или показывает описания terminfo + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="infotocap" name="infotocap"></a><span class= + "term"><span class= + "command"><strong>infotocap</strong></span></span> + </p> + </td> + <td> + <p> + Преобразует описание terminfo в описание termcap + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="ncursesw6-config" name= + "ncursesw6-config"></a><span class="term"><span class= + "command"><strong>ncursesw6-config</strong></span></span> + </p> + </td> + <td> + <p> + Предоставляет информацию о конфигурации пакету ncurses + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="reset" name="reset"></a><span class= + "term"><span class= + "command"><strong>reset</strong></span></span> + </p> + </td> + <td> + <p> + Повторно инициализирует терминал со значениями по + умолчанию + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="tabs" name="tabs"></a><span class= + "term"><span class= + "command"><strong>tabs</strong></span></span> + </p> + </td> + <td> + <p> + Очищает и устанавливает размеры табуляции в терминале + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="tic" name="tic"></a><span class= + "term"><span class="command"><strong>tic</strong></span></span> + </p> + </td> + <td> + <p> + Компилятор описания terminfo, преобразует файл terminfo + из исходного формата в двоичный, который необходим для + подпрограмм библиотеки ncurses [Файл terminfo содержит + информацию о возможностях конкретного терминала.] + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="toe" name="toe"></a><span class= + "term"><span class="command"><strong>toe</strong></span></span> + </p> + </td> + <td> + <p> + Выводит список всех доступных типов терминалов, для + каждого из которых указывается его имя и приводится + описание + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="tput" name="tput"></a><span class= + "term"><span class= + "command"><strong>tput</strong></span></span> + </p> + </td> + <td> + <p> + Позволяет использовать в командной оболочке настройки, + относящиеся к особенностям конкретного терминала; может + также использоваться для сброса или инициализации + терминала, либо для вывода полного имени терминала + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="tset" name="tset"></a><span class= + "term"><span class= + "command"><strong>tset</strong></span></span> + </p> + </td> + <td> + <p> + Может использоваться для инициализации терминалов + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="libncursesw" name="libncursesw"></a><span class= + "term"><code class="filename">libncursesw</code></span> + </p> + </td> + <td> + <p> + Содержит функции, отображающие различными способами текст + на экране терминала. Хорошим примером использования этих + функций является меню, отображаемое командой <span class= + "command"><strong>make menuconfig</strong></span> при + настройке ядра + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="libncurses__w" name= + "libncurses__w"></a><span class="term"><code class= + "filename">libncurses++w</code></span> + </p> + </td> + <td> + <p> + Содержит функции связывания C++ с другими библиотеками в + пакете + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="libformw" name="libformw"></a><span class= + "term"><code class="filename">libformw</code></span> + </p> + </td> + <td> + <p> + Содержит функции, реализующие формы + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="libmenuw" name="libmenuw"></a><span class= + "term"><code class="filename">libmenuw</code></span> + </p> + </td> + <td> + <p> + Содержит функции, реализующие меню + </p> + </td> + </tr> + <tr> + <td> + <p> + <a id="libpanelw" name="libpanelw"></a><span class= + "term"><code class="filename">libpanelw</code></span> + </p> + </td> + <td> + <p> + Содержит функции, реализующие панели + </p> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="gcc.html" title="GCC-13.2.0">Пред.</a> + <p> + GCC-13.2.0 + </p> + </li> + <li class="next"> + <a accesskey="n" href="sed.html" title="Sed-4.9">След.</a> + <p> + Sed-4.9 + </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> |