From 5a6834585c43296c2207f5f251d3d5c237c7c8d2 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 6 Mar 2024 10:25:41 +0300 Subject: Update LFS mirror --- lfs-12.1-sysv/chapter08/ncurses.html | 548 +++++++++++++++++++++++++++++++++++ 1 file changed, 548 insertions(+) create mode 100644 lfs-12.1-sysv/chapter08/ncurses.html (limited to 'lfs-12.1-sysv/chapter08/ncurses.html') 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 @@ + + + + + + 8.29. Ncurses-6.4-20230520 + + + + + + + + +

+ 8.29. + Ncurses-6.4-20230520 +

+
+
+

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

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

+ 8.29.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.4) будут использоваться + библиотеки с расширенным набором символов (например, + libncursesw.so.6.4). Библиотеки + с расширенным набором символов могут использоваться как с + многобайтовыми локалями, так и с традиционными 8-битовыми + локалями, тогда как обычные библиотеки работают только с + 8-битовыми локалями. Библиотеки с расширенным набором + символов и обычные библиотеки совместимы на уровне исходного + кода, но не совместимыми на уровне двоичного. +

+
+
+
+

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

+
make
+

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

+

+ Установка этого пакета приведет к перезаписи libncursesw.so.6.4. Это может привести к сбою + процесса оболочки, который использует код и данные из файла + библиотеки. Установите пакет с помощью DESTDIR и правильно замените файл библиотеки с + помощью команды install(также отредактирован + заголовочный файл curses.h, чтобы + обеспечить использование ABI расширенного набора символов, как это + сделано в Раздел 6.3, + «Ncurses-6.4-20230520»). +

+
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/* /
+

+ Многие приложения ожидают, что компоновщик может найти библиотеки + Ncurses, не поддерживающие расширенный набор символов. Используя + трюк ниже, свяжите такие приложения с библиотеками расширенного + набора символов с помощью символических ссылок (обратите внимание, + что ссылки .so безопасны только в том + случае, если curses.h отредактирован + так, чтобы всегда использовать ABI расширенного набора символов): +

+
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
+

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

+
ln -sfv libncursesw.so /usr/lib/libcurses.so
+

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

+
cp -v -R doc -T /usr/share/doc/ncurses-6.4-20230520
+
+ [Примечание] +

+ Примечание +

+

+ С помощью приведенных выше инструкций не создаются библиотеки + 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.29.2. + Содержимое пакета Ncurses +

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

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ captoinfo +

+
+

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

+
+

+ clear +

+
+

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

+
+

+ infocmp +

+
+

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

+
+

+ infotocap +

+
+

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

+
+

+ ncursesw6-config +

+
+

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

+
+

+ reset +

+
+

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

+
+

+ tabs +

+
+

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

+
+

+ tic +

+
+

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

+
+

+ toe +

+
+

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

+
+

+ tput +

+
+

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

+
+

+ tset +

+
+

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

+
+

+ libncursesw +

+
+

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

+
+

+ libncurses++w +

+
+

+ Содержит функции связывания C++ с другими библиотеками в + пакете +

+
+

+ libformw +

+
+

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

+
+

+ libmenuw +

+
+

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

+
+

+ libpanelw +

+
+

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

+
+
+
+
+ + + -- cgit v1.2.3