lfs-ru/chapter08/readline.xml
Poltern 8437aa068c Package updates
Update to bash-5.2.32.
Update to iana-etc-20240801.
Update to vim-9.1.0660.
Update to binutils-2.43.
Update to linux-6.10.3.
Update to readline-8.2.13.
Update to wheel-0.44.0.
Update to setuptools-71.1.0.
Update to gcc-14.2.0.
Update to glibc-2.40.
Update to iproute2-6.10.0.
Update to lz4-1.10.0.
Update to meson-1.5.1.
Update to sysklogd-2.6.1.
Update to systemd-256.4.
Update to sysvinit-3.10.
2024-08-16 12:55:32 +05:00

156 lines
6.1 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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-readline" role="wrap">
<?dbhtml filename="readline.html"?>
<sect1info condition="script">
<productname>readline</productname>
<productnumber>&readline-version;</productnumber>
<address>&readline-url;</address>
</sect1info>
<title>Readline-&readline-version;</title>
<indexterm zone="ch-system-readline">
<primary sortas="a-Readline">Readline</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Пакет Readline представляет собой набор библиотек, предлагающих возможности
редактирования прямо в командной строке и просмотра истории команд.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&readline-fin-sbu;</seg>
<seg>&readline-fin-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка пакета Readline</title>
<para>Переустановка пакета Readline приводит к перемещению старых библиотек
в &lt;libraryname&gt;.old. Обычно это не вызывает проблем, но в некоторых случаях могут
возникать ошибки линковки с <command>ldconfig</command>.
Этого можно избежать, выполнив следующие две команды sed:</para>
<screen><userinput remap="pre">sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install</userinput></screen>
<para>Запретите использование библиотеки поиска списка жестко запрограммированных путей
(rpath) в общих библиотеках. Этому пакету не требуется rpath для установки в стандартное
местоположение, кроме того, rpath иногда может вызывать нежелательные эффекты или даже
проблемы с безопасностью:</para>
<screen><userinput>sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf</userinput></screen>
<para>Подготовьте Readline к компиляции:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--with-curses \
--docdir=/usr/share/doc/readline-&readline-version;</userinput></screen>
<variablelist>
<title>Значение нового параметра configure:</title>
<varlistentry>
<term><parameter>--with-curses</parameter></term>
<listitem>
<para>Этот параметр сообщает Readline, что он может найти функции
библиотеки termcap в библиотеке curses, а не в отдельной библиотеке
termcap. Это позволит сгенерировать корректный файл
<filename>readline.pc</filename>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make SHLIB_LIBS="-lncursesw"</userinput></screen>
<variablelist>
<title>Значение параметра make:</title>
<varlistentry>
<term><parameter>SHLIB_LIBS="-lncursesw"</parameter></term>
<listitem>
<para>Этот параметр принудительно линкует Readline с библиотекой
<filename class="libraryfile">libncursesw</filename>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>С этим пакетом не поставляется набор тестов.</para>
<para>Установите пакет:</para>
<screen><userinput remap="install">make SHLIB_LIBS="-lncursesw" install</userinput></screen>
<para>По желанию установите документацию:</para>
<screen><userinput remap="install">install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-&readline-version;</userinput></screen>
</sect2>
<sect2 id="contents-readline" role="content">
<title>Содержимое пакета Readline</title>
<segmentedlist>
<segtitle>Установленные библиотеки</segtitle>
<segtitle>Созданные каталоги</segtitle>
<seglistitem>
<seg>libhistory.so и libreadline.so</seg>
<seg>/usr/include/readline и
/usr/share/doc/readline-&readline-version;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Краткое описание</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="libhistory">
<term><filename class="libraryfile">libhistory</filename></term>
<listitem>
<para>Обеспечивает согласованный пользовательский интерфейс для вызова
строк из истории</para>
<indexterm zone="ch-system-readline libhistory">
<primary sortas="c-libhistory">libhistory</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libreadline">
<term><filename class="libraryfile">libreadline</filename></term>
<listitem>
<para>Предоставляет набор команд для управления текстом, введенным
в интерактивном сеансе программы.</para>
<indexterm zone="ch-system-readline libreadline">
<primary sortas="c-libreadline">libreadline</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>