8.28. Ncurses-6.3

Пакет Ncurses содержит библиотеки для независимой от терминала обработки ввода/вывода

Приблизительное время сборки: 0.4 SBU
Требуемое дисковое пространство: 45 MB

8.28.1. Установка пакета Ncurses

Подготовьте Ncurses к компиляции:

./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

Значение новых параметров настройки:

--with-shared

Этот параметр позволяет Ncurses собирать и устанавливать общие библиотеки C.

--without-normal

Этот параметр отключает сборку и установку большинства статических библиотек C.

--without-debug

Этот параметр предотвращает сборку и установку отладочных библиотек.

--with-cxx-shared

Это аргумент позволяет Ncurses собирать и устанавливать общие привязки C++. А также предотвращает сборку и установку статических привязок C++.

--enable-pc-files

Этот параметр генерирует и устанавливает файлы .pc для pkg-config.

--enable-widec

Этот параметр указывает, что при сборке пакета вместо обычных библиотек (например, libncurses.so.6.3) будут использоваться библиотеки с расширенным набором символов (например, libncursesw.so.6.3). Библиотеки с расширенным набором символов могут использоваться как с многобайтовыми локалями, так и с традиционными 8-битовыми локалями, тогда как обычные библиотеки работают только с 8-битовыми локалями. Библиотеки с расширенным набором символов и обычные библиотеки совместимы на уровне исходного кода, но не совместимыми на уровне двоичного.

Скомпилируйте пакет:

make

У этого пакета есть набор тестов, но его можно запустить только после того, как пакет будет установлен. Тесты находятся в каталоге test/. Дополнительные сведения см. в файле README в этом каталоге.

Установка этого пакета приведет к перезаписи libncursesw.so.6.3. Это может привести к сбою процесса оболочки, который использует код и данные из файла библиотеки. Установите пакет с помощью DESTDIR и правильно замените файл библиотеки с помощью команды install. Ненужный статический архив, который не обрабатывается configure, также удаляется:

make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib
rm -v  dest/usr/lib/libncursesw.so.6.3
cp -av dest/* /

Многие приложения ожидают, что компоновщик сможет найти библиотеки Ncurses, не поддерживающие расширенный набор символов. Свяжите такие приложения с библиотеками расширенного набора символов с помощью символических ссылок и скриптов компоновщика:

for lib in ncurses form panel menu ; do
    rm -vf                    /usr/lib/lib${lib}.so
    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
done

Убедитесь, что старые приложения, которым нужна -lcurses для сборки, собираются правильно:

rm -vf                     /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so      /usr/lib/libcurses.so

По желанию установите документацию Ncurses:

mkdir -pv      /usr/share/doc/ncurses-6.3
cp -v -R doc/* /usr/share/doc/ncurses-6.3
[Примечание]

Примечание

С помощью приведенных выше инструкций не создаются библиотеки Ncurses, не использующие расширенный набор символов, поскольку ни один пакет, установленный путем компиляции из исходного кода, не будет связан с ними во время выполнения. Тем не менее, известно что некоторые бинарные приложения, которые связаны с библиотекой Ncurses и не поддерживающие расширенный набор символов, требуют наличия версии 5. Если вам необходимо иметь такие библиотеки из-за какого-либо приложения, имеющегося только в бинарном виде, или для обеспечения совместимости с LSB, соберите пакет с помощью следующих команд:

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

8.28.2. Содержимое пакета Ncurses

Установленные программы: captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), ncursesw6-config, reset (ссылка на tset), tabs, tic, toe, tput, и tset
Установленные библиотеки: libcursesw.so (символическая ссылка и скрипт компоновщика на libncursesw.so), libformw.so, libmenuw.so, libncursesw.so, libpanelw.so, и их аналоги без "w" в именах библиотек.
Созданные каталоги: /usr/share/tabset, /usr/share/terminfo, и /usr/share/doc/ncurses-6.3

Краткое описание

captoinfo

Преобразует описание termcap в описание terminfo

clear

Очищает экран, если это возможно

infocmp

Сравнивает или показывает описания terminfo

infotocap

Преобразует описание terminfo в описание termcap

ncursesw6-config

Предоставляет информацию о конфигурации пакету ncurses

reset

Повторно инициализирует терминал со значениями по умолчанию

tabs

Очищает и устанавливает размеры табуляции в терминале

tic

Компилятор описания terminfo, преобразует файл terminfo из исходного формата в двоичный, который необходим для подпрограмм библиотеки ncurses [Файл terminfo содержит информацию о возможностях конкретного терминала.]

toe

Выводит список всех доступных типов терминалов, для каждого из которых указывается его имя и приводится описание

tput

Позволяет использовать в командной оболочке настройки, относящиеся к особенностям конкретного терминала; может также использоваться для сброса или инициализации терминала, либо для вывода полного имени терминала

tset

Может использоваться для инициализации терминалов

libcursesw

Ссылка на libncursesw

libncursesw

Содержит функции, отображающие различными способами текст на экране терминала. Хорошим примером использования этих функций является меню, отображаемое командой make menuconfig при настройке ядра

libformw

Содержит функции, реализующие формы

libmenuw

Содержит функции, реализующие меню

libpanelw

Содержит функции, реализующие панели