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/mDNSResponder107.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.5sun/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é!