Páginas

sábado, 1 de maio de 2010

Compilando MSN-Proxy em CentOS/Redhat

Ok, hora de colocar a mão na massa!

Primeiramente é necessário instalar os requisitos de compilação:

# yum install gcc make mysql-devel vim-enhanced

O gerenciador de pacotes Yum se encarrega de instalar as dependências adicionais necessárias a cada um dos programas acima. Obviamente, quem por ventura já tiver esses pacotes instalados, pode ignorar essa etapa.

Em seguida obteremos os pacotes-fonte da Libevent e do MSN-Proxy:

# cd /usr/src
# wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
# wget http://ufpr.dl.sourceforge.net/project/msn-proxy/msn-proxy/msn-proxy-0.7/msn-proxy-0.7.tar.gz

Essas são as últimas versões estáveis disponíveis no momento de escrita desse artigo. Porém, caso algum dos links falhe, ainda pode-se obter os pacotes dos sites oficiais [1][2] de cada um dos programas.

Agora deve-se criar um diretório separado para a Libevent e instalá-la nele (para sistemas x86, basta substituir o subdiretório lib64 por lib em todos os caminhos citados daqui em diante).

# mkdir /usr/local/lib64/libevent-1.4.13
# cd /usr/src
# tar -xzvf libevent-1.4.13-stable.tar.gz
# cd libevent-1.4.13-stable
# ./configure --prefix=/usr/local/lib64/libevent-1.4.13 --exec-prefix=/usr/local/lib64/libevent-1.4.13
# make
# make install

O próximo e mais importante passo é a compilação do MSN-Proxy usando essa versão da Libevent recém-instalada. Para isso, serão necessárias algumas pequenas alterações no arquivo Makefile do programa.

# cd /usr/src
# tar -xzvf msn-proxy-0.7.tar.gz
# cd msn-proxy-0.7
# vim Makefile

O arquivo deve ser editado de modo que seu conteúdo fique da seguinte forma, a partir da linha 7:


# FreeBSD
#MYSQLINC=/usr/local/include
#MYSQLLIB=/usr/local/lib/mysql

# Linux (most)
MYSQLINC=/usr/include/mysql
MYSQLLIB=/usr/lib64/mysql

# Adicionados os caminhos da Libevent mais recente
LIBEVENT14LIB=/usr/local/lib64/libevent-1.4.13/lib
LIBEVENT14INC=/usr/local/lib64/libevent-1.4.13/include

CCFLAGS=-g -Wall -O2 -pipe -I/usr/local/include -I$(MYSQLINC) -I$(LIBEVENT14INC) -fno-builtin-log

LDFLAGS=-L/usr/local/lib -L$(LIBEVENT14LIB) -levent -L$(MYSQLLIB) -lmysqlclient

Note que as variáveis MYSQLINC, MYSQLLIB, CCFLAGS e LDFLAGS devem ser alteradas, e as variáveis LIBEVENT14LIB e LIBEVENT14INC adicionadas. Isso indica explicitamente ao compilador o caminho (de binários e cabeçalhos) da Libevent mais atual, para que o MSN-Proxy use essa versão ao invés da padrão do sistema. Os caminhos referentes à biblioteca de cliente MySQL são padrão da distribuição, mas podem ser conferidos explicitamente através do comando "mysql_config --libs --include".

Após editar e salvar o arquivo, basta compilar o programa normalmente:

# make
# make install

O último passo é criar links simbólicos para os binários dessa versão da Libevent nos locais corretos, de modo que o programa os encontre ao executar.

# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent-1.4.so.2.1.3 /usr/lib64/libevent-1.4.so.2
# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent_core-1.4.so.2.1.3 /usr/lib64/libevent_core-1.4.so.2.1.3
# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent_extra-1.4.so.2.1.3 /usr/lib64/libevent_extra-1.4.so.2.1.3

Pronto, o MSN-Proxy funcionará normalmente e as etapas adicionais para configuração dele podem ser realizadas como de costume.

Obs.: Lembre-se substituir os caminhos e nomes de arquivo caso esteja usando versões diferentes dos programas.


Referências
[1] http://www.monkey.org/~provos/libevent/
[2] http://sourceforge.net/projects/msn-proxy/

Nenhum comentário:

Postar um comentário