sábado, 17 de maio de 2008

Instalação do Bonjour/mDNSResponder para Java no Debian 4


Primeiro um pouco da história: (para quem estiver "na forca" e quiser ir logo para o tutorial, pode pular esta parte, eu deixo ;)

Recentemente participei de um projeto Java que utilizava o Zeroconf como meio de transporte de mensagens. O projeto já chegou pra mim quase todo pronto e funcionando com o Bonjour.

Como todos sabem :), o Bonjour é a implementação da Apple para o Zeroconf, uma família de protocolos que permitem que programas registrem serviços na rede, e clientes possam "descobrir" onde e como acessar estes serviços, de forma automática e sem configuração prévia. Quem já usou o iTunes em rede sabe bem como é. O iTunes "acha" outros iTunes na rede automáticamente para que você possa ouvir música de outros computadores.

Pois bem, a instalação do Bonjour no Windows é tranquila, tem um setup disponibilizado no próprio site da Apple, apesar de que na versão final do software desenvolvido eu ter mudado para a implementação "Pure Java" JmDNS.

No Mac OS X, claro, não precisa fazer nada, pois o Bonjour já vem instalado como serviço básico do S.O.

Porém, o módulo "cliente" do sistema desenvolvido deveria rodar em Linux. Como não consegui migrar do Bonjour para o JmDNS no software cliente, por falta de tempo, tive que usar a implementação Open Source da Apple, mDNSResponder. Esta implementação a princípio deveria ser multiplataforma, e compilar/rodar em várias plataformas.

Mas parece que a Apple ainda tem que aprender algumas coisinhas sobre como desenvolver para multiplas plataformas, pois a instalação do mDNSResponder no Linux é, no mínimo, um desafio.

No Ubuntu, uma das distribuições usadas pelo cliente, foi relativamente fácil a instalação. Infelizmente não anotei os passos, pois consegui resolver em alguns minutos.

Já no Debian a coisa foi bastante mais complicada. E pra piorar não achei nenhuma referência no Google de como resolver, só gente procurando solução em diversos fórums.

Então depois de quebrar bastante a cabeça consegui criar um passo-a-passo de como fazer esta instalação. Resolvi colocar aqui estas instruções, caso alguém também passe por isto.


Instalação do mDNSResponder (Bonjour) no Debian 4

1 Pré­requisitos:

Instalar packages necessários:
$ sudo apt­-get install gcc libc6­-dev make­-jpkg fakeroot

Baixar arquivos necessários:
Bonjour: http://www.opensource.apple.com/darwinsource/tarballs/other/mDNSResponder­107.6.tar.gz
JDK 6 update 6 : http://java.sun.com/javase/downloads/?intcmp=1281

2 Instalar JDK 6:

OBS: Caso você já tenha a JDK 6 instalada no seu sistema, pode pular esta parte, apenas corrigindo o path para a JDK no próximo passo

$ ln ­-s jdk-­6u6-­linux-­i586.bin jdk-­1_5_0_11­-linux-­i586.bin
$ fakeroot make-­jpkg jdk­-1_5_0_11­-linux­-i586.bin
$ sudo dpkg ­-i sun-­j2sdk1.5_1.5.0+update11_i386.deb



3 Instalar Bonjour (mDNSResponder):

$ tar xfz  mDNSResponder­-107.6.tar.gz
$ cd mDNSResponder­-107.6/mDNSPosix


editar Makefile, linha 267:
JDK=/usr/lib/j2sdk1.5­-sun



$ make os=linux
$ sudo make os=linux install
$ make os=linux Java

$ sudo chmod +x /usr/sbin/mdnsd
$ sudo /etc/init.d/mdns start

$ cd build/prod
$ sudo cp dns_sd.jar /usr/lib/j2sdk1.5­sun/lib/ext
$ sudo cp libjdns_sd.so /usr/lib


Após estes passos, o mDNSResponder estará instalado e tudo deve funcionar.

Qualquer dúvida sobre o que estes passos fazem, ou se não funcionar pra você, ou até uma forma mais fácil que esta, não deixe de comentar.

Inté!

Nenhum comentário: