Re: [nodebr] NodeJS & Oracle

401 views
Skip to first unread message

Luciano Ramalho

unread,
Apr 15, 2013, 10:11:35 PM4/15/13
to nod...@googlegroups.com
Pelas mensagens de erro, fica claro que o script de instalação do
db-oracle não foi feito para rodar no Windows.

Pessoalmente acho que você tem 2 problemas graves aí: 1) Windows e 2) Oracle

Atualmente o Windows é um cidadão de 2a classe quando se fala de
ambientes de desenvolvimento Open Source, seja Node.js, Python, Ruby
etc. etc. O básico até funciona mas ao tentar qualquer coisa fora do
arroz-com-feijão percebe-se que o suporte para Windows nesses sistemas
deixa a desejar, e isso de certa forma é culpa dos próprios usuários
de Windows, que não colaboram tanto para fazer os projetos funcionarem
em sua plataforma quanto colaboram as pessoas que usam GNU/Linux, *BSD
e Mac OSX.

Juntando o cenário acima com o tortuoso processo de instalar qualquer
coisa ligada ao Oracle, o resultado é uma dor de cabeça inevitável.
Quando eu trabalhava com Python e Oracle eu costumava dizer para os
meus clientes que instalar o Oracle (ou simplesmente
bibliotecas-cliente para acessar o Oracle) é uma operação que pode
levar de algumas horas a alguns dias, impossível prever. Vale lembrar
que o Oracle é o banco de dados mais caro que existe, então se o seu
cliente/patrão exige Oracle ele deve ter verba para pagar por um
consultor para te ajudar. Se não tem verba, melhor não usar Oracle.

Uma coisa que complica a vida dos desenvolvedores Open Source é que as
bibliotecas-cliente da Oracle não são Open Source. Isso significa que
não se pode distribuir os drivers para acessar Oracle em binários
executáveis. Ou seja, o script de instalação precisa encontrar os
fontes dessas bibliotecas, que só a Oracle distribui, e tudo precisa
ser compilado na sua máquina, o que exige um compilador C ou C++ e
todo um ambiente de build, coisas que não vem empacotadas no Windows.
Tudo isso é bem mais simples nos *nix.

Espero que consiga ajuda de algum expert nessa combinação. Meu
objetivo aqui foi apenas te preparar para uma longa jornada, porque eu
não sou expert em Windows há muito tempo.

Boa sorte!

[ ]s
Luciano


On Fri, Apr 5, 2013 at 2:21 PM, Rodrigo Zimmer <rodrigo...@gmail.com> wrote:
> Boa Tarde.
>
> Não estou conseguindo instalar o modulo do oracle.
> Alguém sabe o que estou fazendo errado ???
>
>
> Erro:
> c:\nodejs\app1>npm install db-oracle
> npm WARN package.json applicat...@0.0.1 No README.md file found!
> npm http GET https://registry.npmjs.org/db-oracle
> npm http 304 https://registry.npmjs.org/db-oracle
>
>> db-o...@0.2.3 install c:\nodejs\app1\node_modules\db-oracle
>> node-waf configure build
>
> 'node-waf' não é reconhecido como um comando interno
> ou externo, um programa operável ou um arquivo em lotes.
>
>> db-o...@0.2.3 preuninstall c:\nodejs\app1\node_modules\db-oracle
>> rm -rf build/*
>
> 'rm' não é reconhecido como um comando interno
> ou externo, um programa operável ou um arquivo em lotes.
> npm WARN continuing anyway db-o...@0.2.3 preuninstall: `rm -rf build/*`
> npm WARN continuing anyway `cmd "/c" "rm -rf build/*"` failed with 1
> npm ERR! db-o...@0.2.3 install: `node-waf configure build`
> npm ERR! `cmd "/c" "node-waf configure build"` failed with 1
> npm ERR!
> npm ERR! Failed at the db-o...@0.2.3 install script.
> npm ERR! This is most likely a problem with the db-oracle package,
> npm ERR! not with npm itself.
> npm ERR! Tell the author that this fails on your system:
> npm ERR! node-waf configure build
> npm ERR! You can get their info via:
> npm ERR! npm owner ls db-oracle
> npm ERR! There is likely additional logging output above.
>
> npm ERR! System Windows_NT 6.1.7601
> npm ERR! command "c:\\nodejs\\app1\\\\node.exe"
> "c:\\nodejs\\app1\\node_modules\\npm\\bin\\npm-cli.js" "install" "db-ora
> cle"
> npm ERR! cwd c:\nodejs\app1
> npm ERR! node -v v0.10.2
> npm ERR! npm -v 1.2.15
> npm ERR! code ELIFECYCLE
> npm ERR!
> npm ERR! Additional logging details can be found in:
> npm ERR! c:\nodejs\app1\npm-debug.log
> npm ERR! not ok code 0
>
> Obrigado.
>
> att,
> Rodrigo
>
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "NodeJS
> Brasil" dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para nodebr+un...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>



--
Luciano Ramalho / OFICINAS TURING
Twitter: @ramalhoorg

Autor e professor dos cursos:

* Objetos Pythonicos --> http://turing.com.br/oopy
* Python para quem sabe Python --> http://turing.com.br/ppqsp

Diogo Duailibe

unread,
Apr 16, 2013, 1:40:29 AM4/16/13
to nod...@googlegroups.com
Rodrigo, 
Já testou esse outro módulo para o node? 

Não cheguei a testar pois utilizo Mac/Ubuntu para desenvolvimento, mas caso funcione, poste aqui suas conclusões para quem precisar futuramente.


2013/4/15 Luciano Ramalho <luc...@ramalho.org>



--
Atenciosamente,

Diogo Duailibe da Silva
Técnico de Informática
Procuradoria da República no Maranhão - MPF
Email: diodu...@gmail.com

Alan Hoffmeister

unread,
Apr 16, 2013, 9:24:53 AM4/16/13
to nod...@googlegroups.com
Outra dica: cuidado com coisas antigas, este módulo que você está usando teve seu último update há um ano atrás, em termos históricos isso é jurássico e é muito provável que não funcione com as últimas versões do Node.js.

Muitas vezes eu descarto módulos que não tiveram update em menos de um mês, imagina com um ano :-)

--
Att,
Alan Hoffmeister

Caio Ribeiro Pereira

unread,
Apr 16, 2013, 10:21:40 AM4/16/13
to nod...@googlegroups.com
Também concordo com Alan, o Node.js sofreu diversas modificações desde o seu início até os dias de hoje, é bem provavél que você tenha que utilizar versões antigas do Node.js menor ou igual a 0.4.x e isso será ruim em termos de perfomance pois as últimas versões do Node estão sensacionais e recomendo utilizá-las, tanto por performance, quanto segurança e novas funcionalidades.

Outro detalhe trabalhar com banco de dados bloqueantes (Oracle, MySQL, SQL Server, Postgree) faz com que você não utilize 100% o poder do Node.js, devido as suas limitações com locks de tabelas ou campos que bloqueiam um IO do Node.js com o banco.

Neste caso, trabalhar com outras linguagens (Java/C#/PHP/Ruby) que trabalham com threads-bloqueantes é o mais recomendado.

Lembrando que não quis dizer que Node.js é ruim, ele apenas possui um paradigma diferente de se trabalhar e dependendo do seu projeto que necessita de Oracle ele pode não ser uma boa solução.

Você pode utilizar Node.js com Oracle, apenas terá dificuldades em achar módulos atualizados e não utilizará 100% Node.js pq ele é Thread Não-Bloqueante e Oracle é o oposto.

Se você achar um módulo recente de Node com Oracle, por favor compartilhe com a comunidade o github do projeto!

Abs!

Reply all
Reply to author
Forward
0 new messages