mirror of
https://github.com/Poltern/lfs-ru.git
synced 2024-10-19 12:10:32 +03:00
409 lines
18 KiB
XML
409 lines
18 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||
%general-entities;
|
||
]>
|
||
|
||
<sect1 id="ch-system-ncurses" role="wrap">
|
||
<?dbhtml filename="ncurses.html"?>
|
||
|
||
<sect1info condition="script">
|
||
<productname>ncurses</productname>
|
||
<productnumber>&ncurses-version;</productnumber>
|
||
<address>&ncurses-url;</address>
|
||
</sect1info>
|
||
|
||
<title>Ncurses-&ncurses-version;</title>
|
||
|
||
<indexterm zone="ch-system-ncurses">
|
||
<primary sortas="a-Ncurses">Ncurses</primary>
|
||
</indexterm>
|
||
|
||
<sect2 role="package">
|
||
<title/>
|
||
|
||
<para>Пакет Ncurses содержит библиотеки для независимой от терминала обработки ввода/вывода</para>
|
||
|
||
<segmentedlist>
|
||
<segtitle>&buildtime;</segtitle>
|
||
<segtitle>&diskspace;</segtitle>
|
||
|
||
<seglistitem>
|
||
<seg>&ncurses-fin-sbu;</seg>
|
||
<seg>&ncurses-fin-du;</seg>
|
||
</seglistitem>
|
||
</segmentedlist>
|
||
|
||
</sect2>
|
||
|
||
<sect2 role="installation">
|
||
<title>Установка пакета Ncurses</title>
|
||
|
||
<para>Подготовьте Ncurses к компиляции:</para>
|
||
|
||
<screen><userinput remap="configure">./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</userinput></screen>
|
||
|
||
<variablelist>
|
||
<title>Значение новых параметров настройки:</title>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--with-shared</parameter></term>
|
||
<listitem>
|
||
<para>Этот параметр позволяет Ncurses собирать и устанавливать общие библиотеки C.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--without-normal</parameter></term>
|
||
<listitem>
|
||
<para>Этот параметр отключает сборку и установку большинства статических библиотек C.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--without-debug</parameter></term>
|
||
<listitem>
|
||
<para>Этот параметр предотвращает сборку и установку отладочных
|
||
библиотек.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--with-cxx-shared</parameter></term>
|
||
<listitem>
|
||
<para>Это аргумент позволяет Ncurses собирать и устанавливать общие привязки C++. А также
|
||
предотвращает сборку и установку статических привязок C++.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--enable-pc-files</parameter></term>
|
||
<listitem>
|
||
<para>Этот параметр генерирует и устанавливает файлы .pc для pkg-config.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--enable-widec</parameter></term>
|
||
<listitem>
|
||
<para>Этот параметр указывает, что при сборке пакета вместо обычных библиотек
|
||
(например, <filename class="libraryfile">libncurses.so.&ncurses-release;</filename>)
|
||
будут использоваться библиотеки с расширенным набором символов (например, <filename
|
||
class="libraryfile">libncursesw.so.&ncurses-release;</filename>). Библиотеки с
|
||
расширенным набором символов могут использоваться как с многобайтовыми локалями,
|
||
так и с традиционными 8-битовыми локалями, тогда как обычные библиотеки работают
|
||
только с 8-битовыми локалями. Библиотеки с расширенным набором символов и обычные
|
||
библиотеки совместимы на уровне исходного кода, но не совместимыми на уровне двоичного.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
|
||
<para>Скомпилируйте пакет:</para>
|
||
|
||
<screen><userinput remap="make">make</userinput></screen>
|
||
|
||
<para>У этого пакета есть набор тестов, но его можно запустить только после
|
||
того, как пакет будет установлен. Тесты находятся в каталоге
|
||
<filename class="directory">test/</filename>. Дополнительные сведения смотрите
|
||
в файле <filename>README</filename> в этом каталоге.
|
||
</para>
|
||
|
||
<!-- To editors: crash of shell process was very rare but really
|
||
observed. We can't simply remove /usr/lib/libncursesw.so.6.x like
|
||
how we handle libmozjs-xx.so in BLFS because bash needs it, and
|
||
make will spawn new shell processes during "make install". -->
|
||
|
||
<para>Установка этого пакета приведет к перезаписи
|
||
<filename class="libraryfile">libncursesw.so.&ncurses-release;</filename>. Это
|
||
может привести к сбою процесса оболочки, который использует код и данные из
|
||
файла библиотеки. Установите пакет с помощью <literal>DESTDIR</literal> и правильно
|
||
замените файл библиотеки с помощью команды <command>install</command>(также отредактирован
|
||
заголовочный файл <filename>curses.h</filename>, чтобы обеспечить использование
|
||
ABI расширенного набора символов, как это сделано в <xref linkend='ch-tools-ncurses'/>).</para>
|
||
|
||
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
|
||
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-release; /usr/lib
|
||
rm -v dest/usr/lib/libncursesw.so.&ncurses-release;
|
||
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
|
||
-i dest/usr/include/curses.h
|
||
cp -av dest/* /</userinput></screen>
|
||
|
||
<para>Многие приложения ожидают, что компоновщик может найти библиотеки Ncurses,
|
||
не поддерживающие расширенный набор символов. Используя трюк ниже, свяжите такие приложения
|
||
с библиотеками расширенного набора символов с помощью символических ссылок (обратите внимание,
|
||
что ссылки <filename class='extension'>.so</filename> безопасны только в том случае, если
|
||
<filename>curses.h</filename> отредактирован так, чтобы всегда использовать ABI расширенного
|
||
набора символов):</para>
|
||
|
||
<screen><userinput remap="install">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</userinput></screen>
|
||
|
||
<para>Убедитесь, что старые приложения, которым нужна
|
||
<filename class="libraryfile">-lcurses</filename> для сборки, собираются правильно:</para>
|
||
|
||
|
||
<screen><userinput remap="install">ln -sfv libncursesw.so /usr/lib/libcurses.so</userinput></screen>
|
||
|
||
<para>По желанию установите документацию Ncurses:</para>
|
||
|
||
<screen><userinput remap="install">cp -v -R doc -T /usr/share/doc/ncurses-&ncurses-version;</userinput></screen>
|
||
|
||
<note>
|
||
|
||
<para>С помощью приведенных выше инструкций не создаются библиотеки Ncurses,
|
||
не использующие расширенный набор символов, поскольку ни один пакет,
|
||
установленный путем компиляции из исходного кода, не будет связан с ними
|
||
во время выполнения. Тем не менее, известно что некоторые бинарные приложения,
|
||
которые связаны с библиотекой Ncurses и не поддерживающие расширенный набор
|
||
символов, требуют наличия версии 5. Если вам необходимо иметь такие библиотеки
|
||
из-за какого-либо приложения, имеющегося только в бинарном виде, или для
|
||
обеспечения совместимости с LSB, соберите пакет с помощью следующих команд:</para>
|
||
|
||
<screen role="nodump"><userinput>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</userinput></screen>
|
||
</note>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="contents-ncurses" role="content">
|
||
<title>Содержимое пакета Ncurses</title>
|
||
|
||
<segmentedlist>
|
||
<segtitle>Установленные программы</segtitle>
|
||
<segtitle>Установленные библиотеки</segtitle>
|
||
<segtitle>Созданные каталоги</segtitle>
|
||
|
||
<seglistitem>
|
||
<seg>
|
||
captoinfo (ссылка на tic),
|
||
clear,
|
||
infocmp,
|
||
infotocap (ссылка на tic),
|
||
ncursesw6-config,
|
||
reset (ссылка на tset),
|
||
tabs,
|
||
tic,
|
||
toe,
|
||
tput и
|
||
tset
|
||
</seg>
|
||
<seg>
|
||
libcurses.so (символическая ссылка),
|
||
libform.so (символическая ссылка),
|
||
libformw.so,
|
||
libmenu.so (символическая ссылка),
|
||
libmenuw.so,
|
||
libncurses.so (символическая ссылка),
|
||
libncursesw.so,
|
||
libncurses++w.so,
|
||
libpanel.so (символическая ссылка)
|
||
и libpanelw.so,
|
||
</seg>
|
||
<seg>
|
||
/usr/share/tabset,
|
||
/usr/share/terminfo и
|
||
/usr/share/doc/ncurses-&ncurses-version;
|
||
</seg>
|
||
</seglistitem>
|
||
</segmentedlist>
|
||
|
||
<variablelist>
|
||
<bridgehead renderas="sect3">Краткое описание</bridgehead>
|
||
<?dbfo list-presentation="list"?>
|
||
<?dbhtml list-presentation="table"?>
|
||
|
||
<varlistentry id="captoinfo">
|
||
<term><command>captoinfo</command></term>
|
||
<listitem>
|
||
<para>Преобразует описание termcap в описание terminfo</para>
|
||
<indexterm zone="ch-system-ncurses captoinfo">
|
||
<primary sortas="b-captoinfo">captoinfo</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="clear">
|
||
<term><command>clear</command></term>
|
||
<listitem>
|
||
<para>Очищает экран, если это возможно</para>
|
||
<indexterm zone="ch-system-ncurses clear">
|
||
<primary sortas="b-clear">clear</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="infocmp">
|
||
<term><command>infocmp</command></term>
|
||
<listitem>
|
||
<para>Сравнивает или показывает описания terminfo</para>
|
||
<indexterm zone="ch-system-ncurses infocmp">
|
||
<primary sortas="b-infocmp">infocmp</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="infotocap">
|
||
<term><command>infotocap</command></term>
|
||
<listitem>
|
||
<para>Преобразует описание terminfo в описание termcap</para>
|
||
<indexterm zone="ch-system-ncurses infotocap">
|
||
<primary sortas="b-infotocap">infotocap</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="ncursesw6-config">
|
||
<term><command>ncursesw6-config</command></term>
|
||
<listitem>
|
||
<para>Предоставляет информацию о конфигурации пакету ncurses</para>
|
||
<indexterm zone="ch-system-ncurses ncursesw6-config">
|
||
<primary sortas="b-ncursesw6-config">ncursesw6-config</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="reset">
|
||
<term><command>reset</command></term>
|
||
<listitem>
|
||
<para>Повторно инициализирует терминал со значениями по умолчанию</para>
|
||
<indexterm zone="ch-system-ncurses reset">
|
||
<primary sortas="b-reset">reset</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="tabs">
|
||
<term><command>tabs</command></term>
|
||
<listitem>
|
||
<para>Очищает и устанавливает размеры табуляции в терминале</para>
|
||
<indexterm zone="ch-system-ncurses tabs">
|
||
<primary sortas="b-tabs">tabs</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="tic">
|
||
<term><command>tic</command></term>
|
||
<listitem>
|
||
<para>Компилятор описания terminfo, преобразует файл terminfo из исходного
|
||
формата в двоичный, который необходим для подпрограмм библиотеки ncurses
|
||
[Файл terminfo содержит информацию о возможностях конкретного терминала.]</para>
|
||
<indexterm zone="ch-system-ncurses tic">
|
||
<primary sortas="b-tic">tic</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="toe">
|
||
<term><command>toe</command></term>
|
||
<listitem>
|
||
<para>
|
||
Выводит список всех доступных типов терминалов, для каждого из которых
|
||
указывается его имя и приводится описание </para>
|
||
<indexterm zone="ch-system-ncurses toe">
|
||
<primary sortas="b-toe">toe</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="tput">
|
||
<term><command>tput</command></term>
|
||
<listitem>
|
||
<para>Позволяет использовать в командной оболочке настройки, относящиеся к
|
||
особенностям конкретного терминала; может также использоваться для сброса
|
||
или инициализации терминала, либо для вывода полного имени терминала </para>
|
||
<indexterm zone="ch-system-ncurses tput">
|
||
<primary sortas="b-tput">tput</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="tset">
|
||
<term><command>tset</command></term>
|
||
<listitem>
|
||
<para>Может использоваться для инициализации терминалов</para>
|
||
<indexterm zone="ch-system-ncurses tset">
|
||
<primary sortas="b-tset">tset</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libncursesw">
|
||
<term><filename class="libraryfile">libncursesw</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции, отображающие различными способами текст на экране
|
||
терминала. Хорошим примером использования этих функций является меню,
|
||
отображаемое командой <command>make menuconfig</command> при настройке ядра </para>
|
||
<indexterm zone="ch-system-ncurses libncursesw">
|
||
<primary sortas="c-libncursesw">libncursesw</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libncurses__w">
|
||
<term><filename class="libraryfile">libncurses++w</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции связывания C++ с другими библиотеками в пакете</para>
|
||
<indexterm zone="ch-system-ncurses libncurses__w">
|
||
<primary sortas="c-libncurses++w">libncurses++w</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libformw">
|
||
<term><filename class="libraryfile">libformw</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции, реализующие формы</para>
|
||
<indexterm zone="ch-system-ncurses libformw">
|
||
<primary sortas="c-libformw">libformw</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libmenuw">
|
||
<term><filename class="libraryfile">libmenuw</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции, реализующие меню</para>
|
||
<indexterm zone="ch-system-ncurses libmenuw">
|
||
<primary sortas="c-libmenuw">libmenuw</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libpanelw">
|
||
<term><filename class="libraryfile">libpanelw</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции, реализующие панели</para>
|
||
<indexterm zone="ch-system-ncurses libpanelw">
|
||
<primary sortas="c-libpanelw">libpanelw</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
|
||
</sect2>
|
||
|
||
</sect1>
|