Como reinstalar o Mac OS X embutido no Perl no Mountain Lion?

8

Atualizei para o Mountain Lion há 4 dias e depois percebi que meus scripts perl não funcionavam mais. Então instalei o ActivePerl 5.14 (versão mais recente) porque achei que o perl foi excluído. Depois de instalar o ActivePerl, meus programas ainda não funcionaram:

Warning message:
running command 'perl calc.pl' had status 2 
Can't locate Excel/Writer/XLSX.pm in @INC (@INC contains:    
/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 
/Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 
/Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level 
/System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-
2level /System/Library/Perl/Extras/5.12 .) at test.pl line 3.
BEGIN failed--compilation aborted at calc.pl line 3.

No terminal, quando digito perl -v, isso mostra que ele usa o ActivePerl recém-instalado. Eu usei sudo clan -> install Excel :: Writer :: XLSX para instalar o módulo ausente. No entanto, não o instala para a versão 5.12, mas para o ActivePerl 5.14.

As próprias costuras do Mac OS X Perl a serem instaladas aqui:

bash-3.2$ ls /Library/Perl/
5.10    5.12    Updates
bash-3.2$ ls /System/Library/Perl/
5.10    5.12    Extras  lib
bash-3.2$

Há também uma versão aqui:

bash-3.2$ ls /opt/local/lib/perl5/
5.12.4      site_perl   vendor_perl

Eu pensei que era melhor excluir o ActivePerl executando o desinstalador. Fiz isso e também removi o diretório 5.12.4 e o site_perl em / opt / local / lib / perl5.

Então eu queria reinstalar o módulo XLSX :: Writer usando cpan. Eu pensei que ele é instalado no diretório perl antigo. No entanto, a execução do cpan agora resulta no seguinte erro:

bash-3.2$ sudo cpan
Can't locate strict.pm in @INC (@INC contains:    
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/site_perl/5.12.4 
/opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-multi-
2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl 
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at 
/opt/local/bin/cpan line 5.
BEGIN failed--compilation aborted at /opt/local/bin/cpan line 5.

Não sei o que fazer agora. Acho que o melhor que posso fazer é provavelmente reinstalar o próprio Perl do Mac OS X, como fazer isso?

user26392
fonte
Você tem macports instalado? adivinhando de / opt / local / bin
user151019
sim eu quero. Acabei de reinstalar o xcode e as ferramentas de linha de comando do desenvolvedor, mas ainda assim ... Posso reinstalar todo o sistema e restaurar algumas das minhas coisas através da máquina do tempo. Coração não iria ter um sistema limpo de qualquer maneira ...
user26392
Você precisa decidir o que Perl para usar - Apple, MacPorts ou activestate e, em seguida, garantir que apenas um deles aparece na @INC - nos dizer que um, então podemos ajudar
user151019
bem, eu quero usar o maçãs perl, mas para poder usá-lo, também preciso instalar o módulo XLSX.pm para essa versão do perl. No entanto, devido à exclusão de algumas pastas, não consigo mais iniciar o cpan ... o que você acha que é melhor fazer?
user26392
Quais diretórios você excluiu?
User151019

Respostas:

6

Encontrei em outro site o seguinte comando

$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (instalação => CPAN :: Shell-> r)'

Isso atualizou todos os meus módulos perl e tudo voltou ao normal. Não sabe por que ou o quê, mas não se preocupe se está funcionando agora.

Matthew Weiss
fonte
Aqui está uma fonte desse comando
BryanH
0

Por várias e diversas razões, a atualização do sistema operacional exige que você atualize / reinstale separadamente o MacPorts. Na verdade, os desenvolvedores criaram uma página de migração bastante agradável que detalha o processo necessário para que o ambiente de portas volte a funcionar após a atualização do sistema operacional.

Resumidas, as etapas que você precisa seguir são:

  1. Baixe e instale o novo Xcode.
  2. Verifique se as ferramentas da linha de comando (gcc, make, etc.) estão instaladas. No aplicativo Xcode, vá para Preferências-> Downloads e instale-os.
  3. Faça o download do instalador preferido do MacPorts para a sua versão do sistema operacional.
  4. Instale-o.
  5. Abra o seu terminal de escolha.
  6. Execute o comando port -qv installed > myports.txt. Isso pega uma cópia de todas as portas instaladas.
  7. Desinstale todas as portas: sudo port -f uninstall installed
  8. Arrume sua área de lazer: sudo port clean all
  9. Percorra o arquivo myports.txte reinstale os pacotes que você realmente deseja.

Na verdade, acelerou meu processo de reinstalação editando o myports.txtarquivo, de forma que contivesse os nomes (e apenas os nomes) dos pacotes que eu queria com um pacote por linha e executando o seguinte comando

cat myports.txt | xargs -n1 port install

O que isso faz é percorrer esse arquivo e executar o comando port install linepara todas as linhas do arquivo. É um uso inútil de gato, mas quem se importa, é mais fácil de ler.

Scott Pack
fonte