Das Paket Ncurses enthält Bibliotheken für den Terminal-unabhängigen Zugriff auf Textbildschirme.
Seit der Veröffentlichung von Ncurses-5.5 wurde ein Speicherleck und einige Anzeigefehler entdeckt und behoben. Wenden Sie diese Fehlerbereinigungen nun an:
patch -Np1 -i ../ncurses-5.5-fixes-1.patch
Bereiten Sie Ncurses zum Kompilieren vor:
./configure --prefix=/usr --with-shared --without-debug --enable-widec
Die Bedeutung des configure-Parameters:
Durch diesen Parameter werden anstelle der normalen Bibliotheken (libncurses.so.5.5) die Versionen für Multibyte-Zeichen installiert (libncursesw.so.5.5). 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 keine Testsuite.
Installieren Sie das Paket:
make install
Vergeben Sie Ausführungsrechte für die Ncurses-Bibliothek:
chmod -v 755 /usr/lib/*.5.5
Korrigieren Sie 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:
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
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