summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter08/ncurses.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter08/ncurses.html')
-rw-r--r--lfs-12.1-sysv/chapter08/ncurses.html548
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">Раздел&nbsp;6.3,
+ «Ncurses-6.4-20230520»</a>).
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">make DESTDIR=$PWD/dest install
+install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib
+rm -v dest/usr/lib/libncursesw.so.6.4
+sed -e 's/^#if.*XOPEN.*$/#if 1/' \
+ -i dest/usr/include/curses.h
+cp -av dest/* /</kbd></pre>
+ <p>
+ Многие приложения ожидают, что компоновщик может найти библиотеки
+ Ncurses, не поддерживающие расширенный набор символов. Используя
+ трюк ниже, свяжите такие приложения с библиотеками расширенного
+ набора символов с помощью символических ссылок (обратите внимание,
+ что ссылки <code class="filename">.so</code> безопасны только в том
+ случае, если <code class="filename">curses.h</code> отредактирован
+ так, чтобы всегда использовать ABI расширенного набора символов):
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">for lib in ncurses form panel menu ; do
+ ln -sfv lib${lib}w.so /usr/lib/lib${lib}.so
+ ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
+done</kbd></pre>
+ <p>
+ Убедитесь, что старые приложения, которым нужна <code class=
+ "filename">-lcurses</code> для сборки, собираются правильно:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">ln -sfv libncursesw.so /usr/lib/libcurses.so</kbd></pre>
+ <p>
+ По желанию установите документацию Ncurses:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cp -v -R doc -T /usr/share/doc/ncurses-6.4-20230520</kbd></pre>
+ <div class="admon note">
+ <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>