6.22. Ncurses-5.6

Das Paket Ncurses enthält Bibliotheken für den Terminal-unabhängigen Zugriff auf Textbildschirme.

Geschätzte Kompilierzeit: 0.7 SBU
Etwa Benötigter Speicherplatz: 31 MB

6.22.1. Installation von Ncurses

Der folgende Patch behebt einige Fehler, die vom Analyse-Programm für statischen Code (Coverity) gefunden wurden:

patch -Np1 -i ../ncurses-5.6-coverity_fixes-1.patch

Bereiten Sie Ncurses zum Kompilieren vor:

./configure --prefix=/usr --with-shared --without-debug --enable-widec

Die Bedeutung des configure-Parameters:

--enable-widec

Durch diesen Parameter werden anstelle der normalen Bibliotheken (libncurses.so.5.6) die Versionen für Multibyte-Zeichen installiert (libncursesw.so.5.6). Diese Wide-Character-Bibliotheken sind sowohl mit Multibyte- als auch mit normalen 8-Bit-Locales verwendbar. Die beiden Bibliothek-Typen sind Quell- aber nicht Binär-Kompatibel.

Kompilieren Sie das Paket:

make

Dieses Paket enthält zwar eine Testsuite, jedoch kann sie erst nach der Installation ausgeführt werden. Die Tests befinden sich im Unterordner test. Lesen Sie dort bitte die Datei README für weitere Informationen.

Installieren Sie das Paket:

make install

Korrigieren Sie die Rechtevergabe für eine Bibliothek, die nicht ausführbar sein sollte:

chmod -v 644 /usr/lib/libncurses++w.a

Verschieben Sie die Bibliotheken in den Ordner /lib, denn es wird erwartet, dass sie sich dort befinden:

mv -v /usr/lib/libncursesw.so.5* /lib

Da die Bibliotheken gerade verschoben wurden, zeigt ein symbolischer Links nun ins Leere. Erstellen Sie diesen neu:

ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so

Viele Programme erwarten immer noch vom Linker, die nicht-Wide-Character-Bibliotheken von Ncurses aufzufinden. Mit symbolischen Links und Linker-Skripts können Sie diese Programme austricksen:

for lib in curses 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${lib}w.a /usr/lib/lib${lib}.a ; \
done
ln -sfv libncurses++w.a /usr/lib/libncurses++.a

Stellen Sie des Weiteren sicher, dass alte Programme, die mit -lcurses verlinken, immer noch kompilierbar sind:

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

Falls gewünscht, installieren Sie die Dokumentation zu Ncurses:

mkdir -v       /usr/share/doc/ncurses-5.6
cp -v -R doc/* /usr/share/doc/ncurses-5.6
[Anmerkung]

Anmerkung

Die obigen Kommandos installieren keine nicht-Wide-Bibliotheken von Ncurses, weil kein aus dem Quellcode installierte Paket diese verwenden würde. Wenn Sie allerdings Binär-Programme haben, die diese Bibliotheken benötigen, so können die passenden Bibliotheken mit diesen Kommandos installiert werden:installi

make distclean
./configure --prefix=/usr --with-shared --without-normal \
  --without-debug --without-cxx-binding
make sources libs
cp -av lib/lib*.so.5* /usr/lib

6.22.2. Inhalt von Ncurses

Installierte Programme: captoinfo Link auf tic), clear, infocmp, infotocap (Link auf tic), ncurses5-config, reset (Link auf tset), tack, tic, toe, tput und tset
Installierte Bibliotheken: libcursesw.{a,so} (symlink und das Linker-Skript zu libncursesw.{a,so}), libformw.{a,so}, libmenuw.{a,so}, libncurses++w.a, libncursesw.{a,so}, libpanelw.{a,so} und ihre Nicht-Wide-Character Gegenstücke ohne "w" im Namen der Bibliothek.

Kurze Beschreibungen

captoinfo

Konvertiert termcap-Beschreibungen zu terminfo-Beschreibungen.

clear

Löscht den Bildschirminhalt (wenn möglich).

infocmp

Vergleicht terminfo-Beschreibungen oder gibt sie aus.

infotocap

Konvertiert terminfo-Beschreibungen zu termcap-Beschreibungen.

ncurses5-config

Stellt Konfigurations-Informationen für Ncurses zur Verfügung.

reset

Setzt ein Terminal auf seine Voreinstellungen zurück.

tack

Wird benutzt, um die Korrektheit eines Eintrages in der terminfo-Datenbank zu überprüfen.

tic

Der Compiler für Beschreibungen zu terminfo-Einträgen. Er übersetzt terminfo-Dateien aus dem Quellformat in das binäre Format, das von den ncurses-Bibliotheksroutinen benötigt wird. Eine terminfo-Datei enthält Informationen über die Fähigkeiten eines bestimmten Terminals.

toe

Listet alle verfügbaren Terminaltypen auf und gibt zu jedem den Namen und die Beschreibung aus.

tput

Macht der Shell die Werte von Terminal-abhängigen Fähigkeiten zugänglich. Es kann auch zum Zurücksetzen oder Initialisieren eines Terminals oder zum Anzeigen seines vollständigen Namens verwendet werden.

tset

Kann zum Initialisieren eines Terminals verwendet werden.

libcurses

Ein Link auf libncurses.

libncurses

Enthält Funktionen zum Anzeigen von Text auf einem Terminal in vielen komplizierten Variationen. Ein gutes Beispiel ist das angezeigte Menü von make menuconfig des Kernels.

libform

Enthält Funktionen zum Implementieren von Formularen.

libmenu

Enthält Funktionen zum Implementieren von Menüs.

libpanel

Enthält Funktionen zum Implementieren von Schaltflächen.