sábado, julho 29, 2006

Instalando um .tar.gz a la Debian


Este post vai para o Filipe Guimarães, que faz o mestrado na UFF. Eu fui comentar que ao usar uma máquina Windows para atualizar o firmware de um access point Linksys, o arquivo foi salvo em um lugar que eu não encontrava (Local Settings) mas tinha o path completo. Ele disse que a relação minha com Windows era a mesma dele com peixe: ele odeia peixe e toda vez que tenta comer, acha espinha.

Ele recebeu os CDs da Canonical e instalou o Ubuntu. Alguns comentários dele são pertinentes, outros são totalmente inexplicáveis ("O visual do Windows é melhor que o do Linux"). Claro que não visitou http://www.gnome-look.org, http://www.kde-look.org, etc. O comentário dele era que é "muito chato instalar tar.gz". Ele sabe programar portanto compilar não é problema: o grilo são as dependências. Enquanto o fantástico APT resolve dependências e mostrar que procurar e instalar programas no Linux pode ser mais fácil que no Windows, quando o programa não está ainda empacotado, o problema é mais sério, concordei. Mas será que o projeto Debian não pensou em facilitar a vida em algo tão importante quanto instalar programas a partir dos fontes ? A resposta é: é claro que sim!!! Assim, apresento a vocês o auto-apt.

Vou demonstrar usando um pacote chatíssimo de instalar mas que vale a pena: o Xmoto. Escolhi este programa, pois assim apresento o "The Linux Game Tome", em http://happypenguin.org, assim ele não vai dizer que precisa do Windows para os jogos ;) A versão do Dapper é a 0.1.10 e já saiu a versão 0.2.0 (em outro post vou mostrar como atualizar pacotes ;)
O Xmoto depende do X, SDL, SDL_mixer, OpenGL, Lua, etc.. Em primeiro lugar instalamos e atualizamos o auto-apt

sudo apt-get install auto-apt
sudo auto-apt update
sudo auto-apt updatedb
sudo auto-apt update-local

Baixe o arquivo xmoto-0.20.src.tar.gz, por exemplo, de http://xmoto.free.fr/. Descompacte o arquivo (eu faço isto em uma pasta Pacotes). Vá para ela e rode

cd Pacotes
tar -zxvf xmoto-0.20.src.tar.gz
cd xmoto-0.2.0
auto-apt run ./configure

O auto-apt vai perguntando pelos pacotes à medida que o script configure vai rodando. Ao selecionar Install, tome o cuidado de esperar que o pacote seja baixado antes de mandar instalar o seguinte (isto é meio esquisito, concordo), senão vai dar erro de lock.

Free Image Hosting at www.ImageShack.us

Se der erro, rode o comando novamente. Se for a primeira vez que você compila, o processo vai demorar um pouco pois precisaremos baixar todas as dependências.
Agora é só compilar o programa

make

O Filipe reclamou que não sabe onde o Linux coloca os arquivos também (claro que ele ainda não aprendeu sobre a LSB (em http://lsb.freestandards.org/ ;). Eu vou mostrar como criar um pacote a partir do fonte compilado: não é a maneira recomendada, mas é útil para iniciantes: você pode retirar o seu programa quando for lançada a versão do pacote oficial (que, entre outras coisas, coloca um link no menu). Instale o checkinstall

sudo apt-get install checkinstall

e rode no diretório onde você acabou de compilar o xmoto:

checkinstall make install

Responda às perguntas e a descrição do pacote. Isto vai criar o arquivo xmoto_0.2.0-1_i386.deb que você pode instalar

sudo dpkg -i xmoto_0.2.0-1_i386.deb

Pronto, você já tem o xmoto no seu computador, compilado a partir dos fontes. Em resumo, você precisa de três comandos para instalar um pacote a partir dos fontes: auto-apt run ./configure; make e checkinstall make install.

Se o auto-apt não encontrou alguma dependência é porque a mesma não foi empacotada. Aí a coisa fica um pouco mais chata, pois você tem que compilar a dependência, seguindo os passos acima. O arquivo que vai te dar a dica do que está faltando é o config.log.

P.S.: se você já se sentir confortável compilando pacotes, é uma boa rodar o ./configure --help. Pode ser que alguma opção de compilação não seja ativada por default no pacote mas que pode te interessar.

P.S.: um guia de referência sobre como criar pacotes e atualizá-los está no Manual do SysAdmin do IFUFF, em Wiki do Operador.

3 Comentários:

Às 29 julho, 2006 22:07 , Blogger J. F. Mitre disse...

Outro belíssimo post, aliás qualidade é uma constante aqui...

Bom, um fato curioso...
ao usar o checkinstall eu sempre usei apenas : checkinstall

Nunca usei argumentos a esse aplicativo, nem mesmo especifiquei o tipo de pacote a ser criado, pois o default é sempre o tipo de pacote da distro onde está sendo executado.

É um comentário besta, mas torna o processo de criar um pacote ainda mais fácil.

 
Às 30 julho, 2006 10:24 , Blogger Thadeu Penna disse...

Oi j.j.mitre,
fiz a correção no post, obrigado pela dica e pelo comentário. Simplificação é a palavra de ordem por aqui :)

[]s

 
Às 31 julho, 2006 17:06 , Blogger J. F. Mitre disse...

Hummm !!!

acho que não entendeu completamente o que eu quis dizer, no post ao invés de:

checkinstall make install

estaria apenas:

checkinstall

lembrando que esse programa deve ser executado como root, ou seja:

sudo checkinstall

Ao digitar apenas, sudo checkinstall o comando "make install" é subentendido como default, assim como demais opções (em especial a que define o .deb).

Ou seja, é mais simples ainda ... o checkinstall não precisa de qualquer tipo argumento.

abraços;

 

Postar um comentário

Assinar Postar comentários [Atom]

<< Página inicial