[Cascavel-pm] Empacotamento Debian e Módulos Perl

Daniel Ruoso daniel em ruoso.com
Sábado Maio 3 11:59:30 PDT 2008


Sáb, 2008-05-03 às 02:07 -0300, Eden Cardim escreveu:
> Eu instalo tudo via CPAN

O que eu faço é usar da Debian o que tem disponível e empacotar
localmente o que não tem (eu uso o dh-make-perl, ele tem uma série de
limitações, mas dá o nível de controle que eu quero ter).

Se for para fazer tudo pela CPAN, recomendo sinceramente que você
compile um perl separado do perl do Sistema Operacional e que mantenha
as bibliotecas *completamente* separadas do perl do sistema operacional.
Você ainda pode ter o benefício de ter um perl que pode ter bibliotecas
instaladas naturalmente por um usuário comum.

No entanto, eu tenho que fazer uma observação adicional.

Nem todos os módulos Perl são escritos somente em Perl. Uma importante
parte deles é implementada através de XS, o que significa que você vai
ter um arquivo binário nativo para a sua máquina que implementa aquela
biblioteca.

A consequencia de você instalar módulos CPAN na mão direto no perl do
sistema operacional é que no momento em que você tiver uma versão nova
do Perl, mesmo que a mudança não seja de 5.8 para 5.10, mas de 5.10.0
para 5.10.2, *absolutamente todos os módulos* que usam XS vão parar de
funcionar. A vantagem de você usar pacotes debian é que esses módulos
vão estar integrados no processo de release da debian, o que significa
que quando a transição de 5.10.0 para 5.10.2 ocorrer, todos esses
módulos vão ser atualizados junto (o que explica porque a debian demora
tanto a fazer releases), e o seu sistema continuará funcionando sem
problemas.

Se você, por outro lado, mantiver uma versão do perl compilada em
separado, você elimina esse problema (garantindo que não vai haver
nenhum upgrade), mas você ainda não elimina o problema de que esses
módulos XS podem estar ligados à bibliotecas nativas do seu sistema
operacional. Na hora em que o seu sistema operacional for atualizado, a
biblioteca com aquele SONAME pode ser desinstalada, e o seu sistema vai
quebrar com problemas de "unresolved symbol".

Agora, se você tiver tudo empacotado com pacotes Debian, mesmo que com
pacotes locais, upgrades de pacotes de bibliotecas vão deixar sinalizado
que um pacote ainda depende daquele SONAME antigo, e aquela versão não
vai ser desinstalada. Se houver uma mudança incompatível de bibliotecas,
o APT vai te informar que você não pode fazer o upgrade sem remover a
biblioteca que você instalou, e você pode tomar uma decisão.

Mas o melhor de tudo mesmo vai ser se você se juntar ao "Debian Perl
Group" e ajudar a manter os módulos na CPAN na Debian, e daí você vai
ter módulos mais bem mantidos e a garantia de transições mais bem
sucedidas nos upgrades, tanto do Perl, quanto de outros softwares
instalados na sua máquina.

daniel



Mais detalhes sobre a lista de discussão Cascavel-pm