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.579 ]

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

Mate Desktop no Slackware

Instalação da Zabbix 3.0 em Debian 8.6 Jessie

Criando um pacote DEB manualmente

VLC Media Player

Monitorando automaticamente o Docker com Zabbix

  
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