segunda-feira, 10 de agosto de 2009

Compilando programas sem trauma

Todos que chegam ao Linux e querem instalar um programa que não esteja no terminal já deve ter arrancado os cabelos com um programa que precisa ser compilado. Essa dificuldade fica longe de “burrice” ou qualquer outro nome que possam querer dar. É simples falta de experiência e conhecimento. Sim, ninguém nasce sabendo (isso é pra você que usa linux há 30 anos e se irrita com alguém que acabou de chegar e pergunta como se escuta um arquivo mp3...).




O primeiro passo para qualquer compilação é se informar dos comandos corretos. O próprio desenvolvedor do programa fornece essa informação que fica, normalmente, ou no arquivo README ou INSTALL. O problema aqui para o novato é que em 99.9% dos casos esse arquivo está em inglês, e o usuário não entende nada dessa língua. Não se assuste. Os comandos mais comuns para a compilação de qualquer pacote são esses (na ordem descrita):






./configure




sudo make




sudo make install




Pela ordem, esses comandos configuram a instalação, criam o ambiente para a instalação do pacote e, por último e mais importante, instalam o pacote no sistema.




Se já não bastasse o “terror” de encarar a telinha preta do terminal, normalmente (para não dizer sempre) a compilação não funciona na primeira vez. Assim como os pacotes que você instala com o Synaptic ou o Apt-get, os pacotes compilados também tem suas dependências que precisam ser instaladas. Para resolver esse problema, alguma alma muito caridosa criou o Auto-Apt. Esse programa em modo texto, instala qualquer dependência que for pedida pelo seu programa compilado, se estiver disponível, é claro. Para instalar ou Auto-Apt, basta abrir o terminal e digitar:



sudo apt-get install auto-apt




Entendendo o comando acima:




> “sudo” dá poderes de super usuário ao comando, necessário para instalação de pacotes;




> “apt-get” é o programa em modo texto que baixa e instala os pacotes deb em seu sistema;




> “install” é o argumento do programa “apt-get” que diz o que ele deve fazer, em nosso caso, instalar.




Assim como o Apt-get e o Synaptic, o Auto-apt também precisa ser atualizado corretamente. O mais recomendado é que você repita os comandos abaixo antes de cada compilação.





sudo auto-apt update-local




sudo auto-apt update




sudo auto-apt updatedb




Entendendo os comandos acima:




> “sudo” dá poderes de super usuário ao comando, necessário para instalação de pacotes;




> “auto-apt” é o nosso programa;




> “update-local” faz com que ele se atualize com o que há no seu computador;




> “update” atualiza a lista de pacotes do “auto-apt”;




> “updatedb” atualiza o banco de dados do programa, com os pacotes que foram atualizados com o comando “update”.




Após essa atualização, que deve demorar bem mais que a do Apt-get, você está pronto para uma compilação sem traumas. Basta rodar os comandos da seguinte forma:





sudo auto-apt -y run ./configure




sudo make




sudo make install




> “sudo” dá poderes de super usuário ao comando, necessário para a compilação;




> “auto-apt” é o programa que instala automaticamente as dependências da compilação;




> “-y” diz ao programa “auto-apt” que responda com “sim” (Yes) a todas as perguntas que forem feitas;




> “run” é o argumento do programa “auto-apt” que diz o que ele deve fazer, no caso, rodar o comando “./configure”.




O Auto-apt só será utilizado no comando “./configure”, porque é nele que as dependências são checadas e exigidas. Utilizar o programa nos comandos “make” e “make install” trás mais problemas que soluções.




Seu programa estará instalado. Alguns programas criam ícone no menu; outros não. O melhor jeito de rodar o seu programa se ele não ficar no menu, é pressionar “ALT+F2” e digitar o nome dele.




Agora você deve estar se perguntando: eu vou ter que sofrer assim todas as vezes que tiver que instalar esse programa? A resposta é você que sabe. Um outro programinha em modo texto, o Checkinstall, pode ser ser utilizado para criar o pacote .deb a partir do seu pacote compilado. Para fazer isso instale o pacote:



sudo apt-get install checkinstall




E, após a instalação, rode o seguinte comando:





cd pasta_do_seu_programa




sudo checkinstall -D




Entendendo o comando acima:




> “cd” troca o diretório de trabalho atual para o indicado;




> “sudo” dá poderes de super usuário ao programa, necessário para criar o pacote deb;




> “checkinstall” é o programa que irá criar o nosso pacote;




> “-D” é o argumento do programa “checkinstall” que diz qual tipo de pacote deseja criar, no nosso caso um pacote deb. Podem ser criados também pacotes RPM, entre outros. Rode no terminal “checkinstall --help” para saber mais.




Após responder algumas perguntas, o pacote será criado. Da próxima vez que você quiser instalar o programa, vai ter a opção de compilar outra vez ou utilizar o seu deb. Se você for uma boa alma, é justo compartilhar o pacote deb criado com os demais usuários, para que eles também tenham essa opção.




Esse tutorial deveria acabar por aqui, mas acho que poucos sabem que do mesmo jeito que você instalou o pacote, você pode removê-lo. Você deve estar se perguntando: Mas hein?! É isso mesmo, da mesma forma que o comando make instala (make install), ele desinstala (make uninstall). O comando é esse:





cd pasta_do_seu_programa




sudo make uninstall




O comando acima simplesmente muda o diretório de trabalho para a pasta de seu programa, e depois desinstala o mesmo. Agora sim, acabou.

Nenhum comentário:

Postar um comentário