Come reinstallare Mac OS X integrato in Perl su Mountain Lion?


8

Ho aggiornato a Mountain Lion 4 giorni fa e poi ho capito che i miei script perl non funzionavano più. Quindi ho installato ActivePerl 5.14 (la versione più recente) perché pensavo che perl fosse stato eliminato. Dopo aver installato ActivePerl anche se i miei programmi non funzionavano ancora:

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.

Nel terminale quando digito perl -v mostra che utilizza l'ActivePerl appena installato. Ho usato il clan sudo -> installa Excel :: Writer :: XLSX per installare il modulo mancante. Tuttavia, non lo installa per 5.12 ma per ActivePerl 5.14.

Le giunture Perl di Mac OS X da installare qui:

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$

C'è anche una versione qui:

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

Ho pensato che fosse meglio eliminare ActivePerl eseguendo il suo programma di disinstallazione. L'ho fatto e rimosso anche la 5.12.4 e la directory site_perl in / opt / local / lib / perl5.

Quindi volevo reinstallare il modulo XLSX :: Writer usando cpan. Ho pensato che fosse quindi installato nella vecchia directory perl. Tuttavia, l'esecuzione di cpan ora provoca il seguente errore:

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.

Non so cosa fare adesso. Penso che il meglio che posso fare sia probabilmente reinstallare il Perl di Mac OS X, come si fa?


Hai macport installato? indovinando da / opt / local / bin
user151019

sì, certamente. Ho appena reinstallato xcode e gli strumenti della riga di comando dello sviluppatore, ma sempre lo stesso ... Potrei semplicemente reinstallare tutto il mio sistema e ripristinare alcune delle mie cose tramite Time Machine. Non mi dispiacerebbe avere un sistema pulito comunque ...
user26392

Devi decidere quale perl usare - Apple, macports o activestate e quindi assicurarti che ne venga visualizzato solo uno in @INC - dicci quale poi possiamo aiutare
user151019

bene, voglio usare le mele perl ma per poterle usare ho anche bisogno di installare il modulo XLSX.pm per quella versione di perl. Tuttavia, a causa dell'eliminazione di alcune cartelle non riesco più ad avviare cpan ... cosa pensi sia meglio fare?
user26392

Quali directory hai eliminato?
user151019

Risposte:


6

Ho trovato su un altro sito Web il seguente comando

$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (install => CPAN :: Shell-> r)'

Questo ha aggiornato tutti i miei moduli perl e tutto è tornato alla normalità. Non so perché o cosa, ma non importa che funzioni ora.


Ecco una fonte di quel comando
BryanH,

0

Per vari e vari motivi, l'aggiornamento del sistema operativo richiede l'aggiornamento / reinstallazione MacPorts separatamente. Gli sviluppatori hanno effettivamente creato una pagina di migrazione piuttosto carina che descrive in dettaglio il processo necessario per far funzionare di nuovo l'ambiente delle porte dopo l'aggiornamento del sistema operativo.

Riassumendo, i passaggi che devi seguire sono:

  1. Scarica e installa il nuovo Xcode.
  2. Assicurarsi che siano installati gli strumenti da riga di comando (gcc, make, ecc.). Dall'applicazione Xcode vai su Preferenze-> Download e installali.
  3. Scarica il programma di installazione MacPorts preferito per la versione del tuo sistema operativo.
  4. Installalo.
  5. Apri il tuo terminale preferito.
  6. Eseguire il comando port -qv installed > myports.txt. Questo prende una copia di tutte le porte installate.
  7. Disinstallare tutte le porte: sudo port -f uninstall installed
  8. Riordina l'area di gioco: sudo port clean all
  9. Scorri il file myports.txte reinstalla i pacchetti che desideri effettivamente.

In realtà ho velocizzato il mio processo di reinstallazione modificando il myports.txtfile, in modo che contenesse i nomi (e solo i nomi) dei pacchetti che volevo con un pacchetto per riga ed eseguendo il comando seguente

cat myports.txt | xargs -n1 port install

Ciò che fa è passare attraverso quel file ed eseguire il comando port install lineper ogni riga nel file. È un uso inutile del gatto, ma a chi importa, è più facile da leggere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.