Instalando Erlang e CouchDB no Mac OS X
29 de Janeiro de 2009
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!
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Voodoo Glow Skulls – El Mas Chingón
Textos escritos por
Comentários #
Para testar é uma boa acessar a url http://localhost:5984/_utils e fazer umas brincadeiras. :-)
Boa Tapa! ;)
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 :)
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
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.
Luiz, tinha esquecido dos flags! Na verdade, eu já tinha o Erlang instalado! :P
Já atualizei o post!
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.
Otima dica!
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+
Deixe um comentário