sexta-feira, 4 de janeiro de 2008

Judgement Day

Alguém já tentou instalar qualquer versão do PostgreSQL no windows server 2003 usando cygwin ou mingw? Que sufoco! Depois de dois dias tentando, após dezenas de mensagens de erro, dezenas de utilitários e bibliotecas instaladas, centenas de buscas no google, dezenas de modificações de arquivos de configuração... consegui. Eu chorei de alegria.

Graças a isso hoje, às 3h20min, após 10 horas quase initerruptas de frustrações, eu posso afirmar com certeza que eu detesto aplicativos difíceis de instalar, postgresql...

O pior é que a maioria dos problemas não são documentados. Os manuais de instalação não fornecem quaisquer indicações de como proceder. Simplesmente assumem que você é o Hacker que escreveu o sistema solar. Tudo é muito escondido.

Quase morri de tédio. Tomei uma Coca-cola bem gelada que era do meu amor (que estava na geladeira). Deu vontade de chutar a CPU, de morder a língua. Eu fiquei furioso. Achei que eu era a pior pessoa do mundo por tamanha incompetência, por não conseguir instalar um simples servidor de banco de dados no windows. E o que é pior: tudo o que irei descrever aqui foi ao som terrível de um show ridículo e sem sentido no clube Náutico, a 50 metros de casa em um som esurdecedor. A madrugada inteira de barulho, de música mal tocada, de pagode, brega, "Jacó segurou o anjo e não deixou subir... Piriri Piriri Piriri, eba! (...)". Essa noite eu paguei os meus pecados.

Mas não. A conclusão que eu cheguei é que os caras técnicos da área de computação são loucos. Eles acabam complicando tudo! Deixam tudo muito flexível e solto... em nome de quê!? Nada é de graça. A resposta de um técnico oficial das listas de ajuda do Cygwin a um usuário iniciante e, assim como eu, deseperado pelos erros atrás de erros ao tentar instalar o postgresql:

- "(...) Já tentou instalar o cygserver? Leia o manual.".

Nunca vi resposta tão vaga, tão evasiva, tão maliciosa! O que é o "cygserver"? Por que eu teria que instalá-lo se eu não sei nem o que é isso e se nenhum manual na documentação do postgresql ou do próprio cygwin dizem que isso serve pra alguma coisa? Mas não, "leia o manual.". Soa como "não encha a nossa paciência, idiota!". Para mim, é a mesma coisa. Instalei esse tal de cygserver. Foi relativamente fácil. Mas continuei sem saber por que precisei fazê-lo.

Quando eu penso que tuda essa complicação só porque o instalador "Next... Next... Next..." do PgSQL para windows não funcionou... Dava uma mensagem "erro ao setar permissões para os arquivos instalados..." na conta do administrador! O dia de ontem, aliás, foi todo dedicado a isso: a tentar arranjar um meio de, através das configurações de registro, de políticas de grupos, de permissões de usuários, de diretivas de segurança do windows (que aliás tive de aprender na marra de ontem pra hoje). Em vão. Nada funcionou. Talvez nunca saberei porque não funcionou e talvez nunca consiga fazer com que esse método de instalação funcione. Talvez.

Mas como eu sou teimoso, arranjei outro método: baixar o código fonte em C++ do postgresql, compilar tudo e instalar manualmente. Que coisa mais insana!

- "Que nada!", pensei.
- "Já fiz isso algumas vezes no linux e, com no máximo dois ou três comandos, tudo se resolve". Quanta ingenuidade...

Muitos arquivos precisaram ser baixados, muitas variáveis de ambiente setadas, muitos aplicativos instalados antes de conseguir compilar o código. Isso sem contar o trabalho que deu para descobrir do que era exatamente preciso para tanto. Uma avalanche de idas ao google, de horas baixando coisas, procurando. Nada disso era "Next... Next... Next..." Tudo bem ao estilo Linux: "Pegue o zip, descompacte, jogue numa pasta X, sete as permissões tais, configure os arquivos tais...". Haja paciência! Sem falar nas montanhas de erros até que ,finalmente, consegui compilar o código.

Ok, ok. Só que... Antes fosse só isso. Compilar é uma coisa, saber que eu ainda precisaria iniciar o servidor cygserver era outra! Como fazer? Qual o executável? Encontrei no google o comando. Mas onde ele está? Em que pasta? Bom, o pior é que após finalmente conseguir rodar esse servidor, ele caía! Não sabia mais o que fazer.

Enfrentei de tudo: tive que aguentar comentários de "experts" dizendo: "(...) ao tentar iniciar o banco de dados, erros triviais podem ocorrer devido a má configuração do kernel (...)". Revoltante! "erros triviais"... Se fossem triviais, o mundo inteiro saberia como resolver... mas não. A solução para tanta trivialidade é, em último caso, "recompilar o kernel do SO"!!! Não acreditei... desde quando recompilar o kernel do sistema operacional com as configurações requeridas pelo PostgreSQL é "trivial"? Aliás, que "kernel" se o meu SO não é uma distribuição linux? Não fazia o menor sentido.

Isso sem falar nas idas e vindas entre contas de usuário, problemas de permissão no windows, arquivos que estavam faltando...

Conclusão: Não consegui instalar o PostgreSQL no windows server 2003 através do ambiente Cygwin! Talvez nunca consiga pois, depois de 8 horas, encontrei em um forum alguém comentando que a nova versão do PostgreSQL é incompatível com a versão do Cygwin que estava usando (que também era recente!). Meu Deus! Por que então que os caras guiam você nebulosamente para uma instalação que nunca irá dar certo?

Mas foi bom. Depois de tanta experiência, depois de aprender detalhes de Chamadas Inter-Processos (IPC), de percorrer à força as entranhas dos SO's, acabei decorando o que deveria fazer para conseguir instalar o dito cujo. Acabei conseguindo, sem tantas dores de cabeça, concluir a instalação no ambiente MingW.

Desisto. É mais fácil calcular integrais e estudar computação quântica. Muito mais fácil. Pelo menos na matemática ninguém complica a vida dos outros de propósito inventando coisas desnecessárias e pior: escondendo o jogo!

Esse texto é para que eu me lembre disso para sempre, para que eu nunca esqueça o quanto alguém tem de sofrer para evoluir na área de tecnologia.

Mas há uma lição nisso tudo: agora eu sei porque ninguém da área que já passou pelo que eu passei nos dois últimos dias tem a coragem de abrir a boca para dizer que a área é difícil: porque quando você aprende a instalar e configurar essas coisas, se você tiver a mente fraca ou doentia, você irá se achar um "deus", o mestre dos mestres, o hacker, o geek. É uma droga viciante, um entorpecente, um distúrbio que atinge 90% dos colegas da área de TI.

Mas uma frase me chamou a atenção, ironicamente estampada na assinatura do email de um colega de trabalho com horas de experiência de árduos trabalhos na área, capazes de mascarar qualquer eventual fraqueza conceitual: "O maior prazer de um homem inteligente é bancar o idiota diante de um idiota que tenta se passar por inteligente".

Vai ver que o "idiota" verdadeiro para os experientes colegas, monstros da área de TI seja uma pessoa como eu: cheia de conceitos, algoritmos, fórmulas, teorias, processos e sem prática. Realmente, hoje eu hei de confessar: me senti o maior dos idiotas. E eles, inteligentíssimos, riem de mim enquanto eu aqui ouso tentar "se passar por inteligente", me aventurando em uma área que, definitivamente (e propositadamente), não é para quem tem coisas mais importantes a se fazer.

Carlos Renato Belo Azevedo.

Nenhum comentário: