[Cascavel-pm] Problemas ao instalar Modulo
Eden Cardim
edencardim em gmail.com
Sábado Junho 12 05:39:10 PDT 2010
>>>>> "Gilmar" == Gilmar Santos <jgasjr em gmail.com> writes:
Gilmar> Do mesmo modo que usar a versão mais recente de um módulo
Gilmar> (ou qualquer software) é assumir o risco de usar software
Gilmar> não muito testado.
Então a solução é ficar preso com a biblioteca bugada por 2 anos? Esse
risco do qual você está falando só existe se você não tiver uma boa
política de homologação. (Você tem uma política de homologação, né?)
Gilmar> Em 7 anos usando debian e 6 programando em Perl acho que só
Gilmar> precisei instalar um módulo via cpan nos casos que não tinha
Gilmar> pacote (e em boa parte desses casos fiz backport dos pacotes
Gilmar> da unstable, quando precisei em servidores).
Pois é, em 11 anos programando perl e 5 anos como desenvolvedor e
consultor de alguns dos módulos mais usados do CPAN, 99% dos problemas
dos usuários são resolvidos com um "cpan upgrade".
Gilmar> E ainda supondo a possibilidade de usar módulos sem features
Gilmar> ou com alguns bugs, mas poder gerenciar isso através do
Gilmar> sistema de pacotes, eu prefiro do que instalar via cpan e
Gilmar> não ter atualizações automáticas, resolução de dependências
Gilmar> e poder remover depois as dependências desnecessárias
Gilmar> (quando sai uma nova versão do módulo que depende da libfoo2
Gilmar> ao invés da libfoo1, nesse caso a libfoo1 vai pro saco, ao
Gilmar> invés de ficar como lixo no sistema).
Acho que estamos falando de coisas diferentes aqui, mas vamos lá. Uma
coisa é implantar uma biblioteca para utilizar durante o
desenvolvimento, outra é implantar o sistema de produção per se. Em
ambos os casos, a "remoção de dependências desnecessárias" é
irrelevante. Se a biblioteca for para desenvolvimento, você vai precisar
das versões antigas para testar/resolver problemas de
retro-compatibilidade. Se for para release/implantação, o correto é
distribuir versões auto-contidas do software, invés de implantar
bibliotecas para uso global no sistema.
Gilmar> No caso extremo, em que eu preciso da feature na versão nova
Gilmar> ou um bug corrigido me afeta, eu baixo o fonte do pacote
Gilmar> junto com o fonte da versão nova e faço um pacote. Dá mais
Gilmar> trabalho do que via cpan, mas posso usar o pacote em várias
Gilmar> máquinas e ter todas as vantagens/facilidades que citei
Gilmar> antes.
OK, isso funciona, até a hora em que o teu ambiente de implantação
envolver 4 ou mais plataformas diferentes. Pelo menos no meu mundo,
"casos extremos" envolvem mais plataformas do que isso.
Gilmar> No dia-a-dia uso debian testing com alguns pacotes da
Gilmar> unstable e vejo muito pouca defasagem entre as versões
Gilmar> empacotadas dos módulos e o upstream. No cenário de uso do
Gilmar> debian stable o problema aparece mais, pois são 2 anos e
Gilmar> meio entra as versões. Mas ainda assim isso só seria
Gilmar> impactante se algum sistema *realmente* precisasse da versão
Gilmar> mais recente e que tal sistema *realmente* seja
Gilmar> necessário. Já me deparei com casos em que não eram (achamos
Gilmar> outro software similar ou ficamos com uma versão do sistema
Gilmar> que funcionava com as libs que tínhamos).
Ah, como eu suspeitava... O uso do termo "dia-a-dia" é um indicador de
que você está falando sobre uso doméstico, e nesse caso talvez faça
sentido usar pacotes sim. Mas em sistemas de grande porte e de missão
crítica, as atualizações dos módulos são *muito* importantes,
principalmente porque o ciclo de desenvolvimento dos módulos é
propulsiondo pelos casos de uso que surgem no contexto desses sistemas
de produção. Enfim, é frustrante, como desenvolvedor de módulos, ver
usuários reclamando de problemas com módulos, quando o problema é com as
práticas de engenharia de software que eles adotam. Já passei por
inúmeros casos onde alguém falou "catalyst é uma porcaria, não faz X
direito", quando fui ver, era uma versão defasada instalada por pacote e
o bug tinha sido corrigido duas semanas depois num release subsequente
mas os empacotadores não acompanharam. A culpa nem é dos empacotadores,
não tem como uma equipe de empacotadores acompanharem e adotarem as
políticas de release de todos os projetos no repositório de uma
distribuição e também não tem como os desenvolvedores de um projeto
fazerem o mesmo para todas as distros existentes. Mas, disseminar esse
tipo de prática não contribui nem um pouco com a popularidade da
linguagem.
Mais detalhes sobre a lista de discussão Cascavel-pm