Comment réinstaller Mac OS X intégré à Perl sur Mountain Lion?

8

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?

user26392
la source
Avez-vous installé macports? deviner depuis / opt / local / bin
user151019
Oui. Je viens de réinstaller xcode et les outils de ligne de commande du développeur mais toujours les mêmes ... Je pourrais simplement réinstaller tout mon système et restaurer certaines de mes affaires via Time Machine. Je ne voudrais pas avoir un système propre de toute façon ...
user26392
Vous devez décider quel perl utiliser - Apple, macports ou activestate, puis assurez-vous qu'un seul apparaît dans @INC - dites-nous lequel nous pouvons vous aider
user151019
eh bien, je veux utiliser des pommes perl mais pour pouvoir l'utiliser, j'ai aussi besoin d'installer le module XLSX.pm pour cette version de perl. Cependant, en raison de la suppression de certains dossiers, je ne peux plus démarrer cpan ... que pensez-vous qu'il est préférable de faire?
user26392
Quels répertoires avez-vous supprimés?
user151019

Réponses:

6

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.

Matthew Weiss
la source
Voici une source de cette commande
BryanH
0

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:

  1. Téléchargez et installez le nouveau Xcode.
  2. Assurez-vous que les outils de ligne de commande (gcc, make, etc.) sont installés. Depuis l'application Xcode, allez dans Préférences-> Téléchargements et installez-les.
  3. Téléchargez le programme d' installation MacPorts de votre choix pour la version de votre système d'exploitation.
  4. Installez-le.
  5. Ouvrez le terminal de votre choix.
  6. Exécutez la commande port -qv installed > myports.txt. Cela récupère une copie de tous les ports installés.
  7. Désinstallez tous les ports: sudo port -f uninstall installed
  8. Ranger votre aire de jeux: sudo port clean all
  9. Parcourez le fichier myports.txtet 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.txtfichier, 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 suivante

cat myports.txt | xargs -n1 port install

Cela revient à parcourir ce fichier et à exécuter la commande port install linepour chaque ligne du fichier. C'est une utilisation inutile du chat, mais qui s'en soucie, c'est plus facile à lire.

Scott Pack
la source