você está aqui: Home  → Arquivo de Mensagens

Desenvolvimento de Interfaces em Modo Texto no UNIX

Colaboração: Maurício Amorim da Silva

Data de Publicação: 08 de setembro de 2011

Quem acha que trabalhar com unix nos leva a sempre enfrentar as linha de comandos de um terminal, o que para muitos é muito prazeroso, mas para outros pode ser um tédio quando esses estão acostumados com interfaces gráficas do windows ou mesmo de outro sistemas operacionais, como o próprio unix através da utilização do x-window.

Há muito tempo atrás, quando trabalhava na Unicamp, desenvolvemos algumas telas utilitárias utilizando-se o biblioteca ncurses do unix, através da linguagem C. A utilização da linguagem C, principalmente para o pessoal de suporte, onde necessitamos geralmente de desenvolvimentos rápidos para automatização de alguma atividades pode ser ser uma boa alternativa. Linguagens como ksh, sh, bash, perl são muito melhores nesses momentos.

Em especial, nos últimos anos tive um contato até que significativo com o perl, linguagem interpretada, uma verdadeiro wrapper da linguagem C. Fora a gama de pacotes desenvolvidos pela comunidade e que podem ser baixados do site www.cpan.org.

Há alguns anos atrás, estava eu dando uma bisbilhotada nesse site e descobri um pacote de nome Curses::UI, que é uma framework que utiliza outro pacote do perl chamado Curses que utiliza a API ncurses do unix.

Esse pacote é bem completo, para criação de telas no unix. É orientado à objetos. Possui quase todos os componentes visuais que utilizamos numa aplicação gráfica, só que em modo texto. Temos desde menus até caixas de diálogo, barras de progressão, panels, calendários, combo box, campos de entrada de senha, e uma variedade de outros componentes, com possibilidade de manipulação de alguns desses através do mouse.

Abaixo estarei listando os passos que realizei para a instalação de todos os itens necessários para a utilização desse pacote. Espero que seja útil para a comunidade UNIX.

  1. Baixar os pacotes
  2. Instalar o ncurses-5.7
      $ tar -xzvf ncurses-5.7.tar.gz
      $ cd ncurses-5.7
      $ ./configure --prefix=/home/<conta>/apps/ncurses
      $ make
      $ make test
      $ make install
    
    OBS: Apos a instalação, copiar os arquivos (todos os *.h) de /home/<conta>/apps/ncurses/include/ncurses/* para /home/<conta>/apps/ncurses/include (não achei outra maneira de corrigir esse problema, que traz problema na instalação do pacote Curses citado posteriormente).

  3. Instalar o perl
      $ tar -xzvf perl589.tar.gz
      $ cd perl589
      $ sh Configure --prefix=/home/<conta>/apps/perl
      $ make
      $ make test
      $ make install
    

    Observações

    1. Várias perguntas serão feitas durante a instalação, sempre responder as default
    2. Apos a instalacao, colocar no path o perl instalado da seguinte maneira:

        export PATH=/home/<conta>/apps/perl/bin:$PATH
      

  4. Instalar o pacote Curses 1.28
      $ tar -xzvf Curses1.28.tar.gz
      $ cd Curses1.28
      $ perl Makefile.PL
      $ make
      $ make test
      $ make install
    
  5. Instalar os pacotes TermReadKey e CursesUI:
      $ tar -xzvf TermReadKey .tar.gz
      $ cd TermReadKey
      $ perl Makefile.PL
      $ make
      $ make test
      $ make install
      
      $ tar -xzvf CursesUI.tar.gz
      $ cd CursesUI
      $ perl Makefile.PL
      $ make
      $ make test
      $ make install
    
    Dentro do diretório examples em CursesUI, existem algumas aplicações exemplo, que podem ser utilizadas para visualização dos recursos dessa api e como base para a implementação de novas aplicações.

    Observações

    1. Nos testes que realizei, sempre utilizei o emulador putty no windows
    2. O ideal para rodar essas aplicações é setar a variável PATH do sistema para xterm:

        $ export TERM=xterm
      


Veja a relação completa dos artigos de Maurício Amorim da Silva

 

 

Opinião dos Leitores

Augusto Lusvarghi
29 Set 2011, 18:43
Parabéns pelo post. sua contribuição é significativa.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script