8.29. Ncurses-6.4-20230520

Ncurses pakken inneholder biblioteker for terminaluavhengig håndtering av karakterskjermer.

Omtrentlig byggetid: 0.2 SBU
Nødvendig diskplass: 45 MB

8.29.1. Installasjon av Ncurses

Forbered Ncurses for kompilering:

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

Betydningen av de nye konfigureringsalternativene:

--with-shared

Dette får Ncurses til å bygge og installere delte C biblioteker.

--without-normal

Dette forhindrer at Ncurses bygger og installerer statiske C biblioteker.

--without-debug

Dette forhindrer at Ncurses bygger og installerer feilsøkingsbiblioteker.

--with-cxx-shared

Dette får Ncurses til å bygge og installere delte C++ bindinger. Den forhindrer også at den bygger og installerer statiske C++ bindinger.

--enable-pc-files

Denne bryteren genererer og installerer .pc filer for pkg-config.

--enable-widec

Denne bryteren forårsaker at biblioteker med brede tegn (f.eks., libncursesw.so.6.4) blir bygget i stedet for vanlige (f.eks., libncurses.so.6.4). Disse bibliotekene med brede tegn er brukbare i både multibyte og tradisjonelle 8-biters lokaliteter, mens vanlige biblioteker fungerer som de skal bare i 8-biters lokaliteter. Biblioteker med brede tegn og normale biblioteker er kildekompatibel, men ikke binærkompatibel.

Kompiler pakken:

make

Denne pakken har en testpakke, men den kan bare kjøres etter at pakken er installert. Testene ligger i test/ mappen. Se README filen i den mappen for ytterligere detaljer.

Installasjonen av denne pakken vil overskrive libncursesw.so.6.4 . Det kan krasje skallprosessen som bruker kode og data fra bibliotekfilen. Installer pakken med DESTDIR, og bytt ut bibliotekfilen riktig med install command (deklarasjonen curses.h er også redigert for å sikre ABI med wide-character skal brukes som det vi har gjort i Section 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/* /

Mange applikasjoner forventer fortsatt at lenkeren skal kunne finne non-wide-character Ncurses biblioteker. Lure slike applikasjoner til å koble til biblioteker med wide-character ved hjelp av symbolkoblinger (merk at .so lenker er bare trygt med curses.h redigert for alltid å bruke ABI med wide-character):

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

Til slutt, sørg for at gamle programmer som ser etter -lcurses ved byggetiden fortsatt er byggbare:

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

Hvis ønskelig, installer Ncurses dokumentasjonen:

cp -v -R doc -T /usr/share/doc/ncurses-6.4-20230520
[Note]

Note

Instruksjonene ovenfor oppretter ikke Ncurses med ikke-brede tegn biblioteker siden ingen pakke installert ved kompilering fra kilder ville kobles mot dem under kjøring. Imidlertid den eneste kjente bare binær applikasjonen som kobler mot Ncurses-biblioteker med ikke-brede karakterer krever versjon 5. Hvis du må ha slike biblioteker på grunn av noen bare binær applikasjon eller for å være kompatibel med LSB, bygg pakken på nytt med følgende kommandoer:

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. Innhold i Ncurses

Installerte programmer: captoinfo (lenker til tic), clear, infocmp, infotocap (lenker til tic), ncursesw6-config, reset (lenker til tset), tabs, tic, toe, tput, og tset
Installerte biblioteker: libcurses.so (symlenke), libform.so (symlenke), libformw.so, libmenu.so (symlenke), libmenuw.so, libncurses.so (symlenke), libncursesw.so, libncurses++w.so, libpanel.so (symlenke), and libpanelw.so,
Installerte mapper: /usr/share/tabset, /usr/share/terminfo, og /usr/share/doc/ncurses-6.4-20230520

Korte beskrivelser

captoinfo

Konverterer en termcap beskrivelse til en terminfo beskrivelse

clear

Tømmer skjermen hvis mulig

infocmp

Sammenligner eller skriver ut terminfo beskrivelser

infotocap

Konverterer en terminfo beskrivelse til en termcap beskrivelse

ncursesw6-config

Gir konfigurasjonsinformasjon for ncurses

reset

Reinitialiserer en terminal til standardverdiene

tabs

Fjerner og setter tabulatorstopp på en terminal

tic

Terminfo entry-description kompilatoren som oversetter en terminfo fil fra kildeformat til det binære formatet som trengs for ncurses biblioteksrutiner [En terminfo fil inneholder informasjon om egenskapene til en bestemt terminal.]

toe

Viser alle tilgjengelige terminaltyper, med primærnavn og beskrivelse for hver

tput

Gjør verdiene til terminalavhengige funksjoner tilgjengelig for skallet; den kan også brukes til å tilbakestille eller initialisere en terminal eller rapporter det lange navnet

tset

Kan brukes til å initialisere terminaler

libncursesw

Inneholder funksjoner for å vise tekst på mange komplekse måter på en terminalskjerm; et godt eksempel på bruken av disse funksjonene er menyen som vises under kjernens make menuconfig

libncurses++w

Inneholder C++ binding for andre biblioteker i denne pakken

libformw

Inneholder funksjoner for å implementere skjemaer

libmenuw

Inneholder funksjoner for å implementere menyer

libpanelw

Inneholder funksjoner for å implementere paneler