8.30. Ncurses-6.5

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: 46 MB

8.30.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       \
            --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.

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.5 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.5”):

make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.6.5 /usr/lib
rm -v  dest/usr/lib/libncursesw.so.6.5
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.5
[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.30.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.5

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