Não sou eu!!!

Quarta-feira, Fevereiro 3rd, 2010

Depoimento chocante de um viciado em jogos online (sim-city, the sims, RF online, dentre outros):

Chapeuzinho vermelho em detalhes

Quinta-feira, Março 26th, 2009

Assisti esse vídeo no Gizmodo, e não podia deixar de postar:


Slagsmålsklubben – Sponsored by destiny from Tomas Nilsson on Vimeo.

Compilando programas no GNU/Linux

Segunda-feira, Janeiro 14th, 2008

Há algum tempo atrás, eu já havia escrito um tutorial de como compilar programas no GNU/Linux e, como o blog antigo já não está mais no ar, resolvi reescrevê-lo deviao ao ótimo retorno que eu havia tido no tutorial.
Antes de mais nada, para podermos compilar um programa, precisamos de algumas ferramentas básicas para podermos realizar o procedimento, as mais básicas são:

  • glibc e glibc-devel: que são as bibliotecas com as chamadas básicas de io e controle. A glibc DEVE estar instalada, se a glibc-devel não estiver, você deve instalá-la.
  • gcc: O compilador C
  • automake: ferramentas para automatizar o processo da criação de regras de compilação

Provavelmente você também precisará de algumas ferramentas para compilação, como o bison e o flex também.
O objetivo deste post não é ensinar quais ferramentas devem estar instaladas, nem o processo de instalação, mas no ubuntu existe um meta-pacote chamado build-essential que instala os pacotes de compilação de programas para você.
Outra consideração: a maioria dos programas necessitam de bibliotecas de outros programas, por exemplo: se você bvai compilar um programa para o gnome, muito provavelmente ele fará uso do gtk2 para construir a interface com o usuário, logo você precisará ter os pacotes de desenvolvimento dele instalados também.
Bom, supondo que você já tem todas as ferramentas de compilação instaladas, o próximo passo será baixar o arquivo com o código-fonte do seu programa, normalmente é um arquivo tar.gz com o seguinte formato:

programa-XX.YY.ZZ.tar.gz
Um arquivo tar.gz nada mais é do que uma coleção de arquivos e diretórios que foram “juntados” com o programa tar e comprimidos com o gzip (que é compatível com o formato zip).
Depois de salvo, devemos descompactá-lo:

tar xzvf programa-XX.YY.ZZ.tar.gz

Se a extensão do arquivo for .tar.bz2, ele foi compactado com um compactador chamado bzip2 e devemos usar o seguinte comando para descompactá-lo:

tar xjvf programa-XX.YY.ZZ.tar.gz

Após descompactado, deve ter sido gerado um diretório no formato programa-XX.YY.ZZ que contém os códigos fontes dos programas que queremos compilar.
O próximo passo é entrar no diretório criado e dar uma olhada nos arquivos de ajuda do programa, pois eles contém informações importantes sobre quais dependências (bibliotecas) o programa possui e se ele possui alguma característica especial para a compilação/instalação. Sempre dê uma olhada nos arquivos README, INSTALL e semelhantes. Não diga que eu não avisei.
Depois lida a documentação, é hora de dizer para o nosso programa como queremos que ele seja compilado, isto é, onde vamos querer que ele seja instalado e quais opções gostaríamos de ativar ou desativar. Existe um script chamado configure no diretório do código fonte que faz isso para nós. Então:

./configure –help

Nos mostra todas as opções que podemos ou não habilitar no comando configure. Antes que alguém pergunte o “./” é para dizer que queremos executar o comando configure que está dentro do diretório atual (o do código-fonte). Na maioria dos casos vamos executar:

./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var

Já nos serve, pois estamos dizendo que queremos compilar o programas com as opções padrão, que a base de instalação vai ser dentro do diretório usr (os binário devem ficar então dentro do /usr/bin) que os arquivos de configuração deverão ficar dentro do diretório /etc (se não especificarmos esta opção, os arquivos de configuração ficariam em /usr/etc, o que não é o padrão) e que os arquivos de estado ficarão dentro do diretório /var.
Depois do configure rodar, chaga a hora da tão esperada compilação:

make -j3

Troque o -j3 por -j(número de processadores da sua máquina +1 ), no meu caso, como a máquina era um dual core, eu coloquei 3, que são os meus dois núcleos mais 1. Se você tem uma máquina com apenas um núcleo, você pode usar apenas o make, sem nenhuma opção. O -j especifica que você pode realizar mais de uma operação de compilação de uma só vez, diminuindo drásticamente o tempo de compilação. Normalmente se utiliza o numero de processadores mais um, pois existe um job que é de controle, não exigindo muito processamento, então um job de controle mais dois jobs de compilação é o ideal.
Depois do seu programa estar compilado, é hora de instalá-lo. Se você seguiu os passos até aqui como um usuário normal do sistema, você deve se tornar root para poder instalar os aruiqvos do seu programa nos diretórios do sistema.
Se você está logado como root, é só instalar os arquivos. O comando abaixo funciona de qualquer jeito:

sudo make install

O comando sudo informa ao sistema que você quer executar um programa com privilégios de root (administrador do sistema), então se você é um usuário normal, você deverá informar a senha de root antes do comando ser executado.
Depois destes passos, nosso programa já deve estar instalado e funcionando, aí é só relaxar e aproveitar.