8 votes

Comment réinstaller Mac OS X built in Perl sur Mountain Lion ?

J'ai mis à jour Mountain Lion il y a 4 jours et je me suis rendu compte que mes scripts perl ne fonctionnaient plus. J'ai donc installé ActivePerl 5.14 (dernière version) car je pensais que perl avait été supprimé. Après l'installation d'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, il apparaît qu'il utilise l'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.

Le propre Perl de Mac OS X semble être installé 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. C'est ce que j'ai fait et j'ai également supprimé la version 5.12.4 ainsi que le répertoire site_perl dans /opt/local/lib/perl5.

Ensuite, j'ai voulu réinstaller le module XLSX::Writer en utilisant cpan. Je pensais qu'il était alors installé dans l'ancien répertoire perl. Cependant, en lançant cpan, j'obtiens 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 pas quoi faire maintenant. Je pense que le mieux que je puisse faire est probablement de réinstaller le Perl propre à Mac OS X, comment faire ?

6voto

Lieven Cardoen Points 5233

J'ai trouvé sur un autre site web la commande suivante

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

J'ai ainsi mis à jour tous mes modules perl et tout est rentré dans l'ordre. Je ne sais pas trop pourquoi, mais je me fiche que cela fonctionne maintenant.

0voto

Bryan McLemore Points 21

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éé un Migration qui détaille la procédure à suivre pour que votre environnement portuaire fonctionne à nouveau 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écharger le Installateur 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 permet d'obtenir une copie de tous les ports installés.
  7. Désinstaller tous les ports : sudo port -f uninstall installed
  8. Mettez de l'ordre dans votre aire de jeu : sudo port clean all
  9. Parcourir le dossier myports.txt et réinstallez les paquets que vous souhaitez réellement.

J'ai en fait accéléré mon processus de réinstallation en modifiant le fichier myports.txt de manière à ce qu'il contienne les noms (et uniquement les noms) des paquets que je souhaite, avec un paquet par ligne, et en exécutant la commande suivante

cat myports.txt | xargs -n1 port install

Il s'agit de parcourir ce fichier et d'exécuter la commande port install line pour chaque ligne du fichier. C'est une utilisation inutile de cat, mais peu importe, c'est plus facile à lire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X