Compilando o MSN-Proxy no CentOS/Red Hat 5

Este artigo descreve como compilar o programa MSN-Proxy na distribuição CentOS (ou Red Hat) 5, apresentando uma solução para uma incompatibilidade entre a versão da biblioteca Libevent disponível na distribuição e a necessária para a compilação do proxy.

[ Hits: 19.444 ]

Por: Edson Marquezani Filho em 29/04/2010


Compilação



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/

Página anterior    

Páginas do artigo
   1. Introdução
   2. Compilação
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Arch Linux - Instalação completa

Como instalar o Brackets nas versões mais recentes do Linux

Cadê o cubo?

Biometria: Transforme-se no usuário root com sua impressão digital

Arduino - Crie o seu próprio robô ou sensores inteligentes

  
Comentários
[1] Comentário enviado por dastyler em 29/04/2010 - 08:07h

Olá Edson,

Lembro que certa vez instalei o MSN_proxy no fedora e precisei lançar mão de procedimentos semelhantes para a instalação do MSN-Proxy devido ao memso problema, mas não consegui postar a solução aqui como voce fez.
Bom artigo!!

[]´s

[2] Comentário enviado por arc em 29/04/2010 - 11:19h

Gosto muito do msn-proxy, mas tive que tirar da minha rede pois temos vendedores aqui com muitos(+ de 800) contatos. Ai o msn fica caindo toda hora, fiz testes com as versões em desenvolvimento mesmo assim não ficou bom. Alguem usa ele com + de 800 contatos e nao tem problemas???? Caso tenham por favor me digam o que fizeram para funcionar direito.

[3] Comentário enviado por manoserpa em 30/04/2010 - 09:09h

Bom dia.

Arc, eu uso ele a pouco tempo e algumas máquinas ficam caindo mesmo, não sei qual o motivo, eu estou utilizando o Emesene nessas máquina (inclusive na minha), funciona sem problemas.

Aproveitando o embalo...

Eu estou visualizando as conversas direto na base do MySQL, quando eu clico no nome do contato pelo navegador não abre a janela com a conversa dele, alguém sabe o que fazer para ler as conversas numa interface mais amigável.

Valeu.

[4] Comentário enviado por arc em 30/04/2010 - 09:27h

Manoserpa você esta usando a versão 0.7 ou é do trunk???? 0.7 interface web funciona mas fica lenta, ja no trunk ainda nao ta funcionando

[5] Comentário enviado por manoserpa em 30/04/2010 - 09:57h

Eu uso a 0.6, tive problema com a interface lenta mas resolvi com um script em php que encontrei na net, na verdade as conversas ficam por um tempo tempo lá na página, mas depois elas somem e ficam gravadas no banco, daí eu vejo direto na base.

A 0.7 deu erro de conexão aqui.

[6] Comentário enviado por dastyler em 30/04/2010 - 10:00h

tentaram indexar a base de dados o MSn-Proxy?
Tive os mesmos problemas de voces, e ao indexar a base de dados melhorou muito o acesso.
minha dica postada aqui no VOL: http://www.vivaolinux.com.br/dica/Acelerando-a-velocidade-de-conexao-das-paginas-do-MSNProxy/


[]´s


[7] Comentário enviado por dastyler em 30/04/2010 - 10:03h

Um detalhe importante: as confs do php.ini (relacionadas a desempenho)e apache também são importantes, bem como o hardware utilizado na maquina.

[]´s

[8] Comentário enviado por manoserpa em 30/04/2010 - 10:54h

Bom dia dastyler.

Com isso resolvo o meu problema para visualizar os logs?

Valeu.

[9] Comentário enviado por rafael.gumiero em 30/04/2010 - 15:53h

Estava tendo alguns problemas na hora de visualizar as conversas mais observei que tinha um bug quanto a isso e achei uma solução para visualização.Quem precisar me avisa que passo o procedimento e tenho realizado algumas implementações na interface do msn-proxy, quando terminar disponibilizo para o pessoal.

Rafael Gumiero
isctecnologia.com.br

[10] Comentário enviado por manoserpa em 30/04/2010 - 15:57h

Boa tarde Rafael.

Se puderes passar por e-mail eu agradeço.

manoserpa@gmail.com

Valeu.

[11] Comentário enviado por top_designer em 01/05/2010 - 14:30h

Boa Tarde, Rafael

Poderia passar para meu e-mail, tambem.. Obrigado.

thiago@cdznet.com.br


Abcs.


[12] Comentário enviado por 4l3x4ndr3 em 23/09/2010 - 17:48h

Muito bom seu artigo, mas não tive a certeza se funciona.
Devido a várias tentantivas, já estou com o msn-proxy instalado, mas precisaria desistalar ele para fazer da maneira como vc descreve.
Como posso desistala-lo?

Obrigado

[13] Comentário enviado por edsonmarquezani em 23/09/2010 - 17:56h

Creio que você pode compilar novamente e instalar normalmente, que a versão anterior será sobrescrita.

[14] Comentário enviado por lpossamai em 29/10/2010 - 14:27h

Boa tarde.
Realizei a instalação do MSN-PROXY no centos 5.5 64 Bits.
Editei o Makefile.. Compilei.. compilei o libevent...
configurei o mysql
os arquivos de configurações..

Inicio o msn-proxy com o comando msn-proxy -b -i &

ele me mostra a seguinte tela:

[root@xxxxxxx msnproxy]# info: reading config file [/usr/local/etc/msn-proxy/msn-proxy.conf]
msn-proxy release : msn-proxy-0.7a [$Id: msn-proxy.h 112 2009-03-15 17:30:28Z loos-br $]
config file : /usr/local/etc/msn-proxy/msn-proxy.conf
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 10
max ctl clients : 10
port range begin : 25000
port range end : 30000
ctl read timeout : 5
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180

ACLs
connect : ALLOW
log messages : YES
save_contacts : YES

listen on [0.0.0.0:1863]

Porém, quando dou um NMAP 127.0.0.1 não vejo o protocolo msn na porta 1863 iniciado.
Ai, não capta as mensagens..

Alguma sugestão?

Obrigado.

[15] Comentário enviado por wesllay em 31/05/2011 - 16:26h

Está aparecendo isso no tela do msn-proxy gostaria de saber como resolver:

Notice: Undefined index: in /usr/share/msnproxy/user.inc.php on line 167
suporte ()

Notice: Undefined index: in /usr/share/msnproxy/user.inc.php on line 167
manutencao ()

Notice: Undefined index: in /usr/share/msnproxy/user.inc.php on line 167
faturamento ()

Notice: Undefined index: in /usr/share/msnproxy/user.inc.php on line 167
finceiro ()

[16] Comentário enviado por Estival em 26/12/2012 - 16:35h

Erro na compilação do msn-proxy, estou usando o libevent 1.4 e msn-proxy 0.7
Lembrando que fiz as alterações solicitadas no Makefile.
Meu Linux é Fedora Core 11 x86_64

#make
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c msn-proxy.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c server.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c sb.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c command.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c config.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c net-io.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c client.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c syslog.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c ns.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c mysql.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c sql.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c protocol.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c check-cmd.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c contacts.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c msg.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c p2p.c
p2p.c: In function âp2p_ack_packetâ:
p2p.c:74: warning: format â%lldâ expects type âlong long intâ, but argument 2 has type â__int64_tâ
p2p.c:74: warning: format â%lldâ expects type âlong long intâ, but argument 3 has type â__int64_tâ
p2p.c: In function âmsg_read_p2p_headerâ:
p2p.c:152: warning: suggest parentheses around operand of â!â or change â&â to â&&â or â!â to â~â
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c user.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c string.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c io.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c sig.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c fmt.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c xml.c
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/include/mysql -I/usr/local/lib64/libevent-1.4.13/include -fno-builtin-log -c ctl.c
cc -o msn-proxy msn-proxy.o server.o sb.o command.o config.o net-io.o client.o syslog.o ns.o mysql.o sql.o protocol.o check-cmd.o contacts.o msg.o p2p.o user.o string.o io.o sig.o fmt.o xml.o ctl.o -L/usr/local/lib -L/usr/local/lib64/libevent-1.4.13/lib -levent -L/usr/lib64/mysql:/var/lib/mysql -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
make: *** [msn-proxy] Error 1


Estival...

[17] Comentário enviado por edsonmarquezani em 26/12/2012 - 17:21h

Mas veja que o erro é referente à lib mysqlclient, não à libevent. Dê uma olhada se no Fedora 11 o parâmetro correto é mesmo -lmysqlclient e se você tem a lib (binário dela) instalado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts