Estou trabalhando em um projeto em Erlang e CouchDB. Então resolvi fazer este guia, mostrando como instalá-los no Mac OS X Leopard.

Antes de começar, certifique-se que você tem o XCode devidamente instalado!

Instalando o Erlang

Instalar o Erlang é, de longe, a parte mais fácil deste guia. Basta baixar o código-fonte e compilar com os comandos abaixo.

cd /tmp
wget -c http://www.erlang.org/download/otp_src_R12B-5.tar.gz 
tar -xzf otp_src_R12B-5.tar.gz 
cd opt_src_R12B-5 
./configure --prefix=/usr/local --enable-smp-support --enable-hipe  --enable-darwin-universal --enable-threads
make 
sudo make install
cd ..

Para testar, execute o comando which.

$ which erl
/usr/local/bin/erl

Instalando as dependências do CouchDB

O primeiro passo é instalar o ICU (International Components for Unicode). Execute os comandos abaixo e você deve instalá-lo sem dificuldades.

wget http://download.icu-project.org/files/icu4c/4.0.1/icu4c-4_0_1-src.tgz
tar xvf icu4c-4_0_1-src.tgz
cd icu/source
./configure --prefix=/usr/local 
make
sudo make install
cd ../..

Depois, você precisará instalar o SpiderMonkey, Javascript engine da Mozilla Foundation. É ele quem torna a tarefa de instalação do CouchDB complicada. Baixe e extraia o código com os comandos abaixo.

wget ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
tar xvf js-1.7.0.tar.gz
cd js/src

Agora, exporte algumas variáveis de ambiente.

export XCFLAGS="-fno-common"
export XMKSHLIBOPTS="-dynamic -undefined suppress -flat_namespace"
export OTHER_LIBS="-L/usr/lib/gcc/i686-apple-darwin9/4.0.1/ -lgcc"

Para compilar o SpiderMonkey, execute o comando make.

make -f Makefile.ref

Agora, é preciso copiar os arquivos gerados para o diretório /usr/local.

make -f Makefile.ref export
sudo cp ../../dist/bin/js /usr/local/bin/
sudo cp ../../dist/lib/libjs.* /usr/local/lib/
sudo cp ../../dist/include/* /usr/local/include/
cd ../..

Instalando o CouchDB

Finalmente podemos instalar o CouchDB.

wget http://www.apache.org/dist/incubator/couchdb/0.8.1-incubating/apache-couchdb-0.8.1-incubating.tar.gz
tar xvf apache-couchdb-0.8.1-incubating.tar.gz
cd apache-couchdb-0.8.1-incubating
./configure --prefix=/usr/local 
make
sudo make install

Você pode ver que o CouchDB foi instalado com o comando which.

$ which couchdb 
/usr/local/bin/couchdb

Para iniciar o CouchDB, execute o comando sudo couchdb -b. Você pode acessar o endereço http://localhost:5984 para ver se ele está funcionando; uma mensagem como esta deverá aparecer:

{"couchdb":"Welcome","version":"0.8.1-incubating"}

Para parar o CouchDB, execute o comando sudo couchdb -d.

E para finalizar...

Se você está interessado em aprender Erlang, acompanhe este projeto no Github; são as anotações que estou fazendo enquanto leio o livro Programming Erlang: Software for a Concurrent World.

NOTA: Não adianta sugerir MacPorts ou Fink; eu simplesmente não gosto deles!

Comentários #

#1 Tapajós disse:
29 Jan 09, 07:22PM

Para testar é uma boa acessar a url http://localhost:5984/_utils e fazer umas brincadeiras. :-)

#2 Nando Vieira disse:
29 Jan 09, 07:32PM

Boa Tapa! ;)

#3 Dirceu Pauka Jr. disse:
29 Jan 09, 07:52PM

Instala o do trunk ae! O jchris não resistiu e já começou a falar em req/sec (ou seja, fazer otimizações) - http://twitter.com/jchris/status/1145957437.

Estou no 0.8.1 e usando no Ruby por HTTP, mas se você está usando no Erlang, try that at home :)

#4 Lucas Húngaro disse:
29 Jan 09, 08:00PM

Ou:

sudo port install erlang +smp +no-hipe
sudo port install couchdb

E vá tomar um cafézinho. Time is life. ;)

Zuera, Nando do Spesa. :P

#5 Luiz Rocha disse:
29 Jan 09, 09:02PM

Pegando a deixa do Lhúngaro, seria uma boa colocar '--enable-smp-support --enable-hipe --enable-darwin-universal --enable-threads' no seu configure. Na minha máquina eu compilei com o hipe de boa.

Bom, existe um build (não oficial) do CouchDB que vem com uma interfacezinha bem besta (mais besta que a do MAMP) para iniciar/parar o servidor do CouchDB.

http://code.google.com/p/couchprojects/downloads/list

O lado positivo é que não tem que lidar com o spidermonkey e nem com o ICU (se bem que em *nix o ICU é bem menos chato). Mas entendo seus porquês de instalar na mão.

#6 Nando Vieira disse:
29 Jan 09, 09:13PM

Luiz, tinha esquecido dos flags! Na verdade, eu já tinha o Erlang instalado! :P
Já atualizei o post!

#7 Lucas Húngaro disse:
29 Jan 09, 11:57PM

Eu estava instalando sem o HiPE pois li que ele dava pau no MacOS X. Mas busquei mais informações agora e vi que era apenas até a versão 10.5.3 do sistema operacional.

#8 Daniel Passos disse:
12 Fev 09, 09:11PM

Otima dica!

#9 Proteu Alcebidiano disse:
26 Jan 10, 10:04PM

So um adendo: quem quiser usar as versões mais atuais dos programas citados neste post, quando é exetucado o makefile do spidermonkey, ele está com um bug, o qual pode ser corrigido com este patch

http://github.com/janl/couchdbx-core/blob/ff47372552d10df00d74cb7989dfed4a19a6040d/patches/js/patch-jsprf.c

T+

#10 Gustavo disse:
09 Jun 10, 06:25PM

@Lucas Húngaro: Não no Snow x86_64bits

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO