Como instalar um compilador COBOL no Linux

O COBOL está, provavelmente, bem longe de ser uma linguagem de programação extinta.
Nunca fui programador COBOL, mas já tive contato com programas e código-fonte escritos nesta linguagem — que nunca me pareceu difícil de entender e aprender, digo de passagem.
No Linux, qualquer programador de COBOL pode se atendido com compiladores — que podem ser baixados e instalados rapidamente dos repositórios da sua distro favorita.
No Debian (versão 9, aqui!) é possível encontrar pacotes voltados para o COBOL, com o comando ‘apt search’:

apt search cobol

O comando acima, funciona no Ubuntu e em qualquer outra distribuição baseada no Debian.
Usuários do openSUSE, podem usar o zypper:

zypper search cobol

Para instalar o compilador open-cobol, no Debian e Ubuntu, use novamente o apt:

sudo apt install open-cobol

No openSUSE, você pode usar o ‘zypper install’ ou o oneClick install.
Não se preocupe se o nome exibido for GNU-Cobol — este é o novo nome do open-cobol, na verdade.
opensuse oneclick install cobol
Usuários Red Hat ou Fedora podem instalar o pacote com o yum:

yum install open-cobol

Para obter a versão instalada, use o parâmetro ‘–version’:

cobc --version
cobc (OpenCOBOL) 1.1.0
Copyright (C) 2001-2009 Keisuke Nishida / Roger While
Built    Mar 01 2014 13:11:28
Packaged Feb 06 2009 10:30:55 CET

Esta versão pode produzir binários compatíveis com até 6 dialetos da linguagem. Veja como obter a lista de dialetos:

cat cobc.help | grep -i '<dialect>' -A7
  -std=<dialect>        Compile for a specific dialect :
                          cobol2002   Cobol 2002
                          cobol85     Cobol 85
                          ibm         IBM Compatible
                          mvs         MVS Compatible
                          bs2000      BS2000 Compatible
                          mf          Micro Focus Compatible
                          default     When not specified

Se você usa o Fedora, pode achar interessante ler sobre como instalar o ambiente de desenvolvimento GNUCobol ou OpenCobol, na sua distro.

6 compiladores online para estudantes e profissionais de programação

Neste artigo, vou falar de alguns websites que oferecem a facilidade de compilar e rodar seu código, em variadas linguagens de programação — tais como, C, C++, Java, Python etc.
Desde que você tenha acesso à Internet, pode colocar o seu código à prova, de onde estiver.

Pode ser uma ótima solução para o caso de ter que usar um computador emprestado — no qual você não pode instalar o compilador ou interpretador que você precisa para estudar ou testar seu código.

Há vários sites, que podem ajudar na falta de um compilador ou, mesmo, de uma IDE adequada para você.
Neste post, vou citar 6 (os links abrem em nova janela/aba) que possuem múltiplas opções de compiladores de diferentes linguagens de programação.
Se você conhece outras soluções semelhantes, não deixe de compartilhar sua experiência com os outros leitores, nos comentários.

CodeChef IDE

screen shot codechef website
O CodeChef aceita código em mais de 35 linguagens.
Antes de tudo, é um site de competição para programadores. Você pode pegar um dos desafios da competição ou praticar nos diversos níveis disponíveis (beginner, easy, medium, hard, challenge e peer).
Seu editor de textos permite configurar a indentação e escolher entre mais de 30 temas (inclusive, com fundos escuros, para quem trabalha à noite).
Além disto, a IDE oferece recursos como atalhos de teclado — que facilitam enormemente quando o trabalho é grande.
Por exemplo, não precisa rolar a tela para baixo e clicar no botão “Run” para compilar e rodar o código. Nem precisa tirar a mão do teclado. As teclas ‘Ctrl + Enter’, fazem isto.
Há mais de 80 atalhos de teclado e isto, com certeza, é um bom motivo para usar o editor.
Link para ir direto para a IDE do CodeChef: https://www.codechef.com/ide.

CodePad

captura de tela codepad sobre o GNOME
Com um editor mais simplificado e uma quantidade limitada de linguagens suportadas (C/C++, D, Haskell, Lua, OCcami, PHP, Perl, Python, Ruby, Scheme e TCL), este vale pela simplicidade e eficiência — se a sua linguagem de trabalho/estudo estiver na lista, claro.
O CodePad não é uma IDE, mas um editor integrado ao compilador/interpretador.
É também uma ferramenta de colaboração (ou pastebin).
Ao escrever e executar seu código, o site gera um link para ele — e você o pode compartilhar fácil.

A função de compartilhamento, pastebin, gera um link específico para o site com o seu código, o que torna fácil mostrá-lo a outras pessoas.

Por curiosidade, o website foi desenvolvido em Python, com o uso de Pylons e SQLAlchemy.
Você o encontra aqui: http://codepad.org/

Ideone

captura de tela ideone
O Ideone, não chega a ser uma IDE (como o nome leva a crer). Trata-se de um compilador e ferramenta de debugging online.
Você pode escrever seu código no seu editor local (ou no próprio site). Em seguida, pode escolher entre mais de 60 linguagens de programação, para compilar e rodar seu trabalho.
Mesmo tendo aparência simples, possui syntax highlighting também e permite compartilhar fácil o seu código, como um pastebin.
Confira aqui: http://ideone.com/

OnlineCompiler

onlinecompiler web online compiler
Com opções de linguagens de programação limitadas a C/C++, FORTRAN, Java, Pascal e Basic, permite compilar e baixar o seu executável — para Windows ou Linux.
Confira aqui: http://www.onlinecompiler.net/.

Repl.it

captura de tela compilador online replit
Com suporte a 30 linguagens de programação, o Replit é um trabalho de uma equipe pequena, porém muito bem feito.
O Replit Classroom é uma ferramenta, dentro do site, voltada para professores. Com ela, se cria uma “sala de aula”, para ensinar programação para quantos estudantes se quiser.
O editor permite configuração da identação e de seu visual. Possui 2 opções de tema (clara/escura).
A função de compartilhamento de código tem a “burocracia” de pedir cadastro.
Confira o site aqui: https://repl.it/.

RemoteInterview

captura de tela remoteinterview
Com uma interface limpa, 2 opções de tema (clara/escura, também) e mais de 20 opções de linguagens de programação (entre as mais populares), o RemoteInterview tem a concepção de ser um site de “entrevista” para a contratação de programadores, onde o profissional pode mostrar seu conhecimento etc. Ele vai muito além disto, com certeza.
A interface é eficiente e tem opções de teclas de atalho, que simulam os editores Vim, Sublime e Emacs. Se você já estiver acostumado com um deles, este local pode ser de grande produtividade para você.
O RemoteInterview também tem a funcionalidade de pastebin, para compartilhar seu código em fóruns, chats, nas redes sociais etc.
Confira o site aqui: https://codepad.remoteinterview.io/.

Use o checkinstall para criar pacotes gerenciáveis dos aplicativos que você compila no seu sistema.

Compilar softwares a partir do código fonte, é um método de instalação que possibilita obter a versão mais atual do seu aplicativo.
Outra vantagem, é poder construir automaticamente software feito sob medida para o seu sistema.
Este texto complementa o artigo Como Compilar Código Fonte de Programas no Linux.
Na maioria das vezes, é muito fácil compilar software. Mas esta abordagem traz algumas desvantagens ou riscos que convém enumerar:

  • O software compilado não participa das atualizações automáticas do sistema. Se o objetivo era ter a versão mais atual, com o tempo, você pode acabar com uma versão desatualizada do seu aplicativo favorito.
    Isto significa também que ele não receberá correções para novos bugs, à medida em que são descobertos. Tampouco receberá patches de segurança.
    Resumindo, você terá que fazer as atualizações manualmente, se quiser.
  • Em alguns casos, pode ser complicado remover software instalado através deste método. Se você não sabe exatamente aonde foi gravado cada arquivo associado do aplicativo principal, pode acabar com um sistema cheio de coisas que não usa mais.
  • Pode haver perda de dados, em casos (embora raros) de conflito com o restante do sistema.

No texto Como Preservar a Integridade e a Estabilidade da sua Instalação Debian, são enumeradas as várias armadilhas que podem quebrar o seu sistema. Entre elas, compilar softwares do código fonte.

Como usar o checkinstall

Para solucionar parte destes problemas, use o checkinstall.
Este utilitário pode ajudar a rastrear softwares locais e a produzir arquivos binários que podem ser manipulados pelo seu aplicativo de gestão de pacotes.

O checkinstall produz um pacote binário que pode ser gerenciado pelo sistema de gestão de pacotes — facilitando, entre outras coisas, a futura desinstalação.

Trata-se de um programa que monitora o processo de instalação feito por ‘make install’ ou por um script ‘install.sh’ e cria um pacote padrão para a sua distribuição.
Atualmente, o checkinstall suporta pacotes deb, rpm e tgz — que podem ser usados, respectivamente, pelos gestores dpkg, rpm e installpkg.
Na maioria dos casos, o checkinstall precisa ser executado com privilégios administrativos, para ser realmente útil.
Sua sintaxe segue o padrão de linha de comando GNU:
checkinstall opções comando-de-instalação
Seu funcionamento segue os seguintes passos:

# entre no diretório em que se encontra o código fonte
./configure
make
sudo checkinstall

Se você prefere gerar pacotes .deb, para o seu sistema Debian/Ubuntu, use a opção ‘-D’:

sudo checkinstall -D 

Se preferir gerar pacotes RPM, use a opção ‘-R’; ou ‘-S’, para criar um pacote Slackware.
Use a opção ‘–install=no’ para evitar a instalação automática do pacote.
O exemplo, abaixo, cria um pacote RPM e sai, sem instalar nada:

sudo checkinstall -R --install=no

O novo pacote criado, ficará disponível no mesmo local em que você executou o comando. Basta usar o comando ls, para encontrá-lo.

Referências

https://manpages.debian.org/cgi-bin/man.cgi?sektion=8&query=checkinstall&apropos=0&manpath=sid&locale=en.
https://wiki.debian.org/CheckInstall.

Como baixar, compilar e instalar fácil o glmark2 no Debian

O glmark2 é um aplicativo popular, de código aberto, usado para avaliar o desempenho da placa gráfica no sistema, com suporte a OpenGL 2.0 e OpenGLES 2.0.
A ferramenta está disponível para as plataformas GNU/Linux e Android.
Se você usa Ubuntu ou openSUSE, recomendo ler o post Guia para testar a performance do seu sistema com OpenGL, onde abordo a instalação do glmark2 nestas duas distros, a partir de seus repositórios específicos.
Naquele post, abordo também algumas dicas de uso do glmark2 —. Sugiro ler enquanto instala.
O glmark2 foi desenvolvido pela equipe da Linaro, com o objetivo de oferecer uma ferramenta de fácil uso para fazer benchmarking de unidades de processamento gráfico (GPUs) em hardware ARM, para sistemas embarcados.
Enquanto o aplicativo está disponível nos repositórios de outras distros, (Ubuntu, openSUSE etc), no Debian será necessário baixar e compilar o código fonte.
Se você é iniciante, no Linux, não se preocupe — por que é fácil.

Se você conhece os benefícios de baixar o código e compilá-lo no seu sistema e deseja usar este processo no Ubuntu, fique à vontade. Vai funcionar perfeitamente.

OpenGL oficial logo

Como preparar o ambiente para tratar o código

Para poder compilar código em seu sistema é necessário ter algumas ferramentas de desenvolvimento.
Neste caso, precisamos do git, do g++ e de algumas bibliotecas apropriadas.
Abra um terminal e instale-as:

sudo aptitude update
sudo aptitude install git g++ build-essential pkg-config

Com este comando, você estabelece um ambiente de desenvolvimento bem básico voltado para C++.
A seguir, instale as ferramentas de desenvolvimento X11 e OpenGL:

sudo aptitude install libx11-dev libgl1-mesa-dev

… e os headers de desenvolvimento para imagens JPEG e PNG:

sudo aptitude install libjpeg-dev libpng12-dev

Como baixar o código do glmark2

Agora já é possível receber o código e trabalhar em cima dele.
Para fazer o download, podemos usar o git ou ir até o site oficial do glmark2 e baixar o código.
Para baixar o código para dentro da minha pasta bin/ vou proceder da seguinte maneira:

cd ~/bin
git clone https://github.com/glmark2/glmark2.git
cd glmark2/

Como configurar, compilar e instalar

O glmark2 usa o sistema de desenvolvimento WAF, baseado no Python.
Este sistema requer uma instalação funcional Python 2.x.
A versão binária, disponível nos repositórios das outras distros, vem com suporte ao X11, Wayland e Mir.
A que nós vamos compilar, terá suporte apenas ao X11 e OpenGL:

./waf configure --with-flavors=x11-gl

Parte da graça de compilar um programa a partir do código fonte é poder retirar o que não é necessário, enxugar o código e ter um executável/binário mais rápido e eficiente.
As outras opções, caso queira acrescentar suporte a mais tecnologias, são as que seguem:

./waf configure --with-flavors=drm-gl,drm-glesv2,mir-gl,mir-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv

Note que cada uma destas outras opções demanda um conjunto adicional de bibliotecas de suporte. Se você não as tiver, irá obter mensagens de erro ou avisos de que algo está faltando.
Quando terminar esta parte, construa o código e instale o binário:

./waf build -j 4
sudo ./waf install

Por fim, aplique o procedimento do stripping, que irá reduzir o tamanho final do binário e, portanto, torná-lo mais rápido.

sudo strip -s /usr/local/bin/glmark2

O processo está finalizado e você já pode rodar o glmark2 para verificar os resultados.

glmark2

Para concluir, você pode rodar o autoremove do aptitude e apagar o diretório com os fontes do glmark2 — mas, neste último caso, você terá que baixar tudo de novo, para fazer alguma alteração posterior no programa.

Referências

https://github.com/glmark2/glmark2.
http://fixmynix.com/how-to-install-glmark2-from-source-in-debian/.

Como compilar código fonte de programas no Linux

A função de um compilador é traduzir as instruções, no arquivo de código fonte, dadas pelo programador, para instruções legíveis pelo computador — o resultado é comumente chamado de código binário e é executável pelo seu sistema.
É do código binário que você precisa para rodar e usar um programa — e é neste “formato” que os programas são vendidos para as pessoas: por que estão prontos para serem usados.
Imagem de capa do tutorial de compilação de programas
Por outro lado, se você deseja saber como um programa funciona internamente ou quiser modificá-lo, adicionando recursos e funcionalidades, você precisa do código fonte.
Depois de alterado o código fonte, você pode usar o compilador para produzir um novo binário.
Se você baixou um arquivo com o código fonte de algum programa, antes de instalá-lo, vai precisar compilar.


O que é compilação — A compilação diz respeito ao processamento de arquivos com o código fonte (.C, .CC, .CPP etc. — caso a linguagem de programação, usada pelo desenvolvedor, seja C ou C++) e à criação de um arquivo “objeto” — este último passo, não cria qualquer coisa útil pro usuário final, mas apenas as instruções em linguagem de máquina, correspondentes ao que foi compilado do código fonte.
Se você compilar e não linkar, vai acabar com três arquivos separados — cada qual com um nome semelhante a nome_de_arquivo.o ou nome_de_arquivo.obj. A extensão vai depender do seu compilador.
Estes arquivos precisam ser linkados para que se tornem executáveis.
Você verá como fazer isto, mais pra frente.


Normalmente, o código fonte vem compactado com várias outras bibliotecas — que são arquivos de código fonte acessório ao código principal (esta é uma explicação bem simplista).
Além destes, há outros arquivos de texto, que servem para dar instruções sobre os outros arquivos, sobre como compilar ou instalar todo o aplicativo.
Entre estes arquivos, o README (leia-me) e o INSTALL, são comumente encontrados.
O ideal é que estes arquivos contenham instruções completas sobre como compilar e instalar — mas, este nem sempre é o caso.
Por isto é que estou escrevendo este texto: para tentar ajudar os novatos.

Exemplo de compilação e instalação de um programa

Depois de baixar e instalar o pacote com o fonte, o procedimento mais comum é descompactar, ler o conteúdo dos arquivos README e INSTALL, configurar a compilação e fazer a instalação. Veja:

tar -xzvf programa.tar.gz
cd programa/
more README
more INSTALL
./configure
make
make install

Nos próximos tópicos, vamos rever estes passos, com um pouco mais de detalhamento.

Como descompactar o arquivo com o código fonte

Daria para fazer um post inteiro apenas para abordar a descompactação de arquivos — ainda assim, vou tentar condensar o máximo o assunto.
Cada desenvolvedor escolhe um programa de compactação para envolver e empacotar seu código fonte.
Através da compactação, o desenvolver guarda vários (podem ser centenas ou milhares de) arquivos dentro de um só pacote. Assim, é mais fácil transferir via Internet.
O programa para desempacotar varia, dependendo do tipo de pacote usado pelo desenvolvedor.
A extensão do arquivo-pacote é que indica o programa que deve ser usado para desempacotá-lo.
Veja, na tabela abaixo, exemplos de nomes e extensões de arquivos e os comandos a usar para descompactá-los:

nome do arquivo como descompactar
exemplo.tar.gz ou exemplo.tgz tar -xvzf exemplo.tar.gz ou tar -xvzf exemplo.tgz
exemplo.tar.bz2 ou exemplo.tbz tar -xvjf exemplo.tar.bz2 ou tar -xvjf exemplo.tbz
exemplo.tar tar -xvf exemplo.tar
exemplo.zip unzip exemplo.zip

Sugiro a leitura do meu tutorial sobre o comando tar (com 9 exemplos didáticos), se ainda tiver alguma dúvida especificamente sobre este comando.

Configuração

Dentro do diretório onde você descompactou os arquivos, deve haver um script chamado configure. Use o comando ls para obter uma listagem dos arquivos disponíveis no diretório atual.
Usualmente, o script configure pode ser executado de diversas formas. Veja algumas das mais comuns.
Para obter ajuda genérica sobre a execução do configure:

./configure --help

Para executar o script com suas opções padrão:

./configure

Para especificar o meu diretório home para instalar o binário executável, depois da compilação:

./configure --prefix=~/

Normalmente, você não precisa especificar, com a opção --prefix o diretório de instalação. Pode deixar que o programa siga seus padrões (usualmente, o diretório /usr/local/).

Compilando, instalando e desinstalando

Após a configuração, rode o utilitário make — para ler o arquivo Makefile, no diretório local e compilar o programa para você.
Devo adverti-lo(a), jovem padawan. que compilar um programa pode ser um tanto demorado. Mas programas simples, de tamanho reduzido, podem levar apenas 1 ou 2 minutos, como o mpg123.
Dependendo da velocidade do seu computador, pode levar horas ou dias para compilar um set de aplicativos como o KDE.
Enfim, para concluir a instalação do aplicativo, use o comando make install, deste jeito:

make install

Se quiser desinstalar, mais tarde, execute (dentro do mesmo diretório em que fez a instalação) o seguinte comando:

make uninstall

A desinstalação nem sempre é tão simples assim. O comando acima, acima, [e um conceito universal, que nem sempre é posto em prática pelos desenvolvedores.
Se ela não funcionar, você vai precisar ler a documentação do programa sobre como proceder com a desinstalação.

Referências