[SP-pm] FAQ - Primeira rodada 09/10 até 17/10
Eden Cardim
edencardim at gmail.com
Mon Oct 17 14:08:15 PDT 2011
>>>>> "Leonardo" == Leonardo Ruoso <leonardo em ruoso.com> writes:
Leonardo> Minha pergunta foi mais como uma sugestão para a
Leonardo> FAQ. Pessoalmente, eu acredito que o melhor é usar a
Leonardo> local::lib para as aplicações e instalar módulos via
Leonardo> pacotes para o sistema operacional. O que é um pé-no-saco,
Leonardo> mas ainda é mais simples que
Olha, isso é um tanto quanto controversial, mas a minha opinião é de que
boa parte dos módulos que vem empacotados nas distras são para uso em
software da distro, os poucos que vem com o intuito de servir pra
desenvolvimento costumam ficar bem pra trás na manutenção porque poucas
pessoas usam módulos perl empacotados (já está limitado aos usuários da
distro, que tende a ser menor do que o total de desenvolvedores perl) e
quem usa geralmente está querendo evitar o overhead de ter que manter a
biblioteca manualmente, e por isso nunca vai colaborar com o processo de
manutenção do pacote. Além disso, quando aparecer uma ocasião onde você
quiser instalar um módulo sem pacote, suas alternativas são:
1 - criar (e manter) o pacote você mesmo - essa alternativa é a menos
ruim, ao meu ver, mas tem um overhead demais pro meu gosto.
2 - manter uma instalação híbrida - só de pensar em explicar os
problemas com essa abordagem já me dá dor de cabeça.
3 - ignorar tudo e deixar as instalações dos módulos não-empacotados
pisotearem os arquivos da distro quando forem instalar versões
atualizadas de dependências que também estão instaladas via pacotes.
Além disso, usando pacotes você não ganha as diversas vantagens de usar
sistemas como o shipit ou distzilla e tende a ficar um pouco amarrado na
distro específica onde você está desenvolvendo. Testar releases de
código também é um pé-no-saco porque precisa ficar removendo os módulos
do sistema, etc.
Bottomline: para desenvolvimento, fique longe dos pacotes.
Invés disso, use o App::cpanminus que é trivial de instalar, e que sabe
fazer instalações auto-contidas via local-lib:
$ curl -L http://cpanmin.us | perl - -L meusmodulos --self-upgrade
$ cpanm -L meusmodulos local::lib Modulo::Um Modulo::Dois
e no seu programa:
use local::lib 'meusmodulos';
São tremendas as possibilidades. Por exemplo, você pode distribuir um
diretório com a sua aplicação e um subdiretório contendo a instalação de
todas as dependências. O Miyagawa tá trabalhando num sistema chamado
carton pra facilitar ainda mais esse processo.
Leonardo> ficar criando múltiplos chroot para poder instalar módulos
Leonardo> Perl atualizados.
Preciso atravessar a rua, me dá carona na nave espacial? :D
--
Eden Cardim
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc
More information about the SaoPaulo-pm
mailing list