8.29. Ncurses-6.4-20230520

O pacote Ncurses contém bibliotecas para manuseio independente de terminal das telas de caracteres .

Tempo aproximado de construção: 0,2 UPC
Espaço em disco exigido: 45 MB

8.29.1. Instalação do Ncurses

Prepare o Ncurses para compilação:

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

O significado das novas opções de configuração:

--with-shared

Isso faz com que o Ncurses construa e instale bibliotecas C compartilhadas.

--without-normal

Isso evita que o Ncurses construa e instale bibliotecas C estáticas.

--without-debug

Isso evita que o Ncurses construa e instale bibliotecas de depuração.

--with-cxx-shared

Isso faz com que o Ncurses construa e instale vínculos C++ compartilhados. Também evita a construção e instalação de vínculos C++ estáticos.

--enable-pc-files

Essa chave gera e instala arquivos .pc para o pkg-config.

--enable-widec

Essa chave faz com que bibliotecas de caracteres largos (por exemplo, libncursesw.so.6.4) sejam construídas em vez das normais (por exemplo, libncurses.so.6.4). Essas bibliotecas de caracteres largos são usáveis tanto em localidades de múltiplos bytes quanto em tradicionais de oito (08) bits, enquanto bibliotecas normais funcionam adequadamente somente em localidades de oito (08) bits. Bibliotecas de caracteres largos e normais são compatíveis em fonte, mas não são compatíveis em binário.

Compile o pacote:

make

Esse pacote tem uma suíte de teste, entretanto ela só pode ser executada depois que o pacote tiver sido instalado. Os testes residem no diretório test/. Veja-se o arquivo README naquele diretório para maiores detalhes.

A instalação desse pacote sobrescreverá "libncursesw.so.6.4" no local. Isso possivelmente quebre o processo de "shell" que esteja usando código e dados oriundo do arquivo da biblioteca. Instale o pacote com "DESTDIR" e substitua o arquivo da biblioteca corretamente usando o comando "install" (o cabeçalho "curses.h" também é editado para garantir que a "ABI" de caracteres largos seja usada como fizemos em "Seção 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/* /

Muitos aplicativos ainda esperam que o vinculador seja capaz de encontrar bibliotecas "Ncurses" de caracteres não largos. Engane esses aplicativos para se vincularem a bibliotecas de caracteres largos por meio de links simbólicos (observe que os links ".so" só são seguros com "curses.h" editado para sempre usar a "ABI" de caracteres largos):

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

Finalmente, certifique-se de que aplicativos antigos que procuram por -lcurses em tempo de construção ainda sejam construíveis:

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

Se desejado, [então] instale a documentação do Ncurses:

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

Nota

As instruções acima não criam bibliotecas Ncurses de caracteres não largos, uma vez que nenhum pacote instalado por compilação a partir dos fontes se vincularia a elas em tempo de execução. Entretanto, os únicos aplicativos somente binário conhecidos que se vinculam à bibliotecas Ncurses de caracteres não largos exigem a versão 5. Se você precisa ter tais bibliotecas, por causa de algum aplicativo somente binário ou para estar conforme com a LSB, [então] construa o pacote novamente com os seguintes comandos:

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. Conteúdo do Ncurses

Aplicativos instalados: captoinfo (link para tic), clear, infocmp, infotocap (link para tic), ncursesw6-config, reset (link para tset), tabs, tic, toe, tput e tset
Bibliotecas instaladas: libcurses.so (link simbólico), libform.so (link simbólico), libformw.so, libmenu.so (link simbólico), libmenuw.so, libncurses.so (link simbólico), libncursesw.so, libncurses++w.so, libpanel.so (link simbólico) e libpanelw.so,
Diretórios instalados: /usr/share/tabset, /usr/share/terminfo e /usr/share/doc/ncurses-6.4-20230520

Descrições Curtas

captoinfo

Converte uma descrição termcap em uma descrição terminfo

clear

Limpa a tela, se possível

infocmp

Compara ou imprime descrições terminfo

infotocap

Converte uma descrição terminfo em uma descrição termcap

ncursesw6-config

Fornece informação de configuração para o ncurses

reset

Reinicializa um terminal para valores padrão dele

tabs

Limpa e configura paradas de tabulação em um terminal

tic

O compilador de descrição de entrada do terminfo que traduz um arquivo terminfo do formato fonte para o formato binário necessário para as rotinas de biblioteca do ncurses [Um arquivo terminfo contém informação a respeito dos recursos de um certo terminal].

toe

Lista todos os tipos de terminal disponíveis, dando o nome primário e descrição para cada

tput

Torna os valores de recursos dependentes de terminal disponíveis para o shell; também pode ser usado para reconfigurar ou inicializar um terminal ou informar o nome longo dele

tset

Pode ser usado para inicializar terminais

libncursesw

Contém funções para exibir texto em muitas maneiras complexas em uma tela de terminal; um bom exemplo do uso dessas funções é o menu exibido durante o make menuconfig do núcleo

libncurses++w

Contém vinculamentos C++ para outras bibliotecas nesse pacote

libformw

Contém funções para implementar formulários

libmenuw

Contém funções para implementar menus

libpanelw

Contém funções para implementar painéis