J'ai effectué une mise à jour vers Mountain Lion il y a 4 jours, puis j'ai réalisé que mes scripts Perl ne fonctionnaient plus. J'ai donc installé ActivePerl 5.14 (la dernière version) parce que je pensais que perl avait été supprimé. Après avoir installé ActivePerl, mes programmes ne fonctionnaient toujours pas:
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.
Dans le terminal, lorsque je tape perl -v, cela montre qu'il utilise le ActivePerl nouvellement installé. J'ai utilisé sudo clan -> install Excel :: Writer :: XLSX pour installer le module manquant. Cependant, il ne l'installe pas pour 5.12 mais pour ActivePerl 5.14.
Les propres coutures Mac OS X Perl à installer ici:
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$
Il existe également une version ici:
bash-3.2$ ls /opt/local/lib/perl5/
5.12.4 site_perl vendor_perl
J'ai pensé que le mieux était de supprimer ActivePerl en exécutant son programme de désinstallation. Je l'ai fait et j'ai également supprimé le 5.12.4 ainsi que le répertoire site_perl dans / opt / local / lib / perl5.
Ensuite, je voulais réinstaller le module XLSX :: Writer à l'aide de cpan. Je pensais qu'il était ensuite installé dans l'ancien répertoire perl. Cependant, l'exécution de cpan entraîne désormais l'erreur suivante:
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.
Je ne sais plus quoi faire maintenant. Je pense que le mieux que je puisse faire est probablement de réinstaller le propre Perl de Mac OS X, comment faire?
la source
Réponses:
J'ai trouvé sur un autre site Web la commande suivante
$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (install => CPAN :: Shell-> r)'
Cela a mis à jour tous mes modules Perl et tout est revenu à la normale. Je ne sais pas pourquoi ni quoi, mais ne se soucie pas que cela fonctionne maintenant.
la source
Pour diverses raisons, la mise à niveau du système d'exploitation nécessite une mise à niveau / réinstallation séparée de MacPorts. Les développeurs ont en fait créé une très jolie page de migration qui détaille le processus nécessaire pour faire fonctionner à nouveau votre environnement de ports après la mise à niveau du système d'exploitation.
En résumé, les étapes à suivre sont les suivantes:
port -qv installed > myports.txt
. Cela récupère une copie de tous les ports installés.sudo port -f uninstall installed
sudo port clean all
myports.txt
et réinstallez les packages que vous souhaitez réellement.En fait, j'ai accéléré mon processus de réinstallation en modifiant le
myports.txt
fichier, de sorte qu'il contenait les noms (et uniquement les noms) des packages que je voulais avec un package par ligne, et en exécutant la commande suivanteCela revient à parcourir ce fichier et à exécuter la commande
port install line
pour chaque ligne du fichier. C'est une utilisation inutile du chat, mais qui s'en soucie, c'est plus facile à lire.la source