Qual é a maneira mais fácil de atualizar meu Perl 5.14 para o Perl 5.16 no FreeBSD 9 usando o sistema de ports?

3

Eu uso o sistema de ports no FreeBSD. Qual é a maneira mais fácil de atualizar o Perl usando portas? Eu atualmente desinstalo todos os perl e é dependências. Eu acho que haveria uma maneira legal de atualizar o Perl e todas as suas dependências. O que seria isso?

    
por EhevuTov 07.07.2012 / 06:12

2 respostas

7

veja / usr / ports / ATUALIZANDO a entrada de 20120630 tem uma descrição detalhada de como fazer isso com o portmaster ou portupgrade

    
por 07.07.2012 / 13:18
3

Aqui está a maneira mais manual de fazê-lo.

perl-after-upgrade é o truque para a maioria dos arquivos (exceto binários como o irssi), no entanto, eu acho que ele não funciona tão bem, então eu faço tudo manualmente.

Antes de atualizar o perl, eu desligaria qualquer coisa que dependesse disso, já que é provável que essas coisas quebrem enquanto o processo de atualização está em execução. Para mim, isso geralmente significa desligar o SpamAssassin, o que na verdade significa que eu simplesmente fecho o postfix pelos poucos minutos que me levam.

Eu também colocaria a lista atual de dependentes no perl - pkg info -r perl , caso você precise fazer um upgrade manual para tudo.

Primeiro, crie e instale a versão do perl. Todos os seus módulos perl serão quebrados porque ainda estão instalados no diretório perl antigo. Use portmaster ou portupgrade para forçar uma reconstrução de todos os módulos perl: portmaster p5- faz o truque para mim.

Em seguida, vá procurar binários que tenham dependências no perl que estão quebradas - eu uso o libchk para isso. Basta executá-lo e procurar por binários que tenham referências não resolvidas para libperl.so. Use pkg which para descobrir qual porta instalou esse binário, se não for óbvio a partir do nome, e depois reconstrua essa porta usando o portmaster ou o portupgrade.

Você provavelmente pode começar a fazer backup de seus serviços baseados em perl, como o SpamAssassin.

Então eu vou examinar o diretório / usr / local / lib / perl5, e ver se algum arquivo ainda está lá que não deveria estar. pkg which novamente para descobrir de onde vieram, atualize essas portas, repita até esvaziar ou todos os arquivos não são reivindicados.

portmaster -r perl- seria a maneira mais fácil e barata de fazer isso, mas provavelmente gastaria horas reconstruindo coisas que não precisam ser reconstruídas. Desta forma, é provavelmente muito mais rápido, mas é muito mais trabalho e requer um pouco mais de brincadeira.

    
por 17.06.2013 / 17:52

Tags