O
MSN-Proxy é um proxy para os protocolos do mensageiro instantâneo MSN/Live Messenger da Microsoft, que permite o monitoramento e arquivamento das conversas, além de outras funções de controle como bloqueio de contatos, transferência de arquivos, vídeo-conferência etc. É desenvolvido por brasileiros e escrito em linguagem C, o que o torna ágil e leve, e sua compilação e instalação são bastante simples, exigindo alguns poucos passos. Tornou-se já há algum tempo popular entre os administradores de sistemas que desejam ter esse recurso de controle/monitoramento em suas redes, mostrando-se estável e eficiente no desempenho de suas funções.
Este artigo aborda um cenário particular de instalação desse programa - no qual o administrador se depara com um problema no momento da compilação - e propõe uma solução para esse impasse, sem que se comprometa a integridade do sistema
GNU/Linux utilizado.
Não é objetivo deste artigo descrever todo o processo de instalação e configuração do programa, uma vez que a respeito desse tópico já existe uma grande quantidade de guias disponíveis na Internet, e a documentação contida no próprio pacote já é clara e suficiente para esse fim.
Este documento é para aqueles que desejam instalar o MSN-Proxy em um ambiente GNU/Linux CentOS/Red Hat 5 e que certamente depararam-se com um empecilho no momento da compilação.
O problema e a solução
O MSN-Proxy requer, além das bibliotecas C padrão disponibilizadas pela Glibc, apenas duas outras: a biblioteca de cliente MySQL (Libmysqlclient) e outra para tratamento de eventos, a Libevent. Uma vez que o programa será compilado na sistema hospedeiro, é necessário, além das versões binárias dessas bibliotecas, ter também a versão desenvolvimento de cada uma, que contém os cabeçalhos necessários à compilação.
A distribuição CentOS/Red Hat dispõe de pacotes oficiais para ambas as bibliotecas, em suas versões binárias e de desenvolvimento, porém a versão disponível para a
Libevent é a 1.1. A compilação do MSN-Proxy com essa versão falha devido à ausência de uma função, que só está disponível em versões mais recentes dela.
Uma solução possível para esse problema seria recorrer a pacotes compatíveis não-oficiais da Libevent e atualizar o sistema com eles. Porém, esse procedimento quebra as dependências de um outro pacote importante, o
nfs-utils, que contém as ferramentas básicas de montagem de sistemas de arquivos NFS, e que exige especificamente aquela versão da biblioteca, não aceitando alguma mais recente.
Sendo assim, para utilizar um pacote de versão mais recente da Libevent seria necessário abrir mão das ferramentas NFS ou manter (à força) pacotes com dependências quebradas no sistema, duas opções não desejáveis para um servidor de produção.
A melhor solução portanto é instalar separadamente uma versão mais recente da Libevent e compilar o MSN-Proxy com ela, que será o único a utilizá-la. Isso resolve o problema do programa e ao mesmo tempo mantém a versão oficial da distribuição, sem interferir no funcionamento e consistência de outros programas ou pacotes que vierem a utilizá-la.
Ambiente de trabalho
Todo o procedimento que será descrito aqui foi testado e validado em dois ambientes GNU/Linux: um de produção, rodando Red Hat 5.4 e outro em laboratório, rodando CentOS 5.4, ambos em versão para a arquitetura x86_64 e, na ocasião, totalmente atualizados. Assume-se aqui uma instalação mínima desses sistemas, e qualquer outro pacote necessário ao processo será explicitamente mencionado.
Obs.: Embora tenha-se usado um sistema 64 bits, todos os passos devem ser plenamente aplicáveis também à versão de 32 bits (x86) dos sistemas CentOS/Red Hat, exceto quando mencionado o contrário.