8.28. Ncurses-6.4

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

Tempo aproximado de construção: 0.2 SBU
Espaço em disco exigido: 45 MB

8.28.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 do configure:

--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 utilizáveis tanto em locales de múltiplos bytes quanto em tradicionais de oito (08) bits, enquanto bibliotecas normais funcionam adequadamente só em locales 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 está usando código e dados a partir do arquivo da biblioteca. Instale o pacote com DESTDIR e substitua o arquivo da biblioteca corretamente usando comando install:

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
cp -av dest/* /

Muitos aplicativos ainda esperam que o vinculador seja capaz de encontrar bibliotecas Ncurses de caracteres não largos. Ajuste tais aplicativos para vincularem com bibliotecas de caracteres largos por meio de links simbólicos e scripts de vinculador:

for lib in 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}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:

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

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

mkdir -pv      /usr/share/doc/ncurses-6.4
cp -v -R doc/* /usr/share/doc/ncurses-6.4
[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.28.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: libcursesw.so (link simbólico e script de vinculador para libncursesw.so), libformw.so, libmenuw.so, libncursesw.so, libncurses++w.so, libpanelw.so e homônimos delas de caractere não largo sem "w" nos nomes de biblioteca.
Diretórios instalados: /usr/share/tabset, /usr/share/terminfo e /usr/share/doc/ncurses-6.4

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

libcursesw

Um link para libncursesw

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

libncursesw

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