Wie installiere ich Mac OS X, das in Perl on Mountain Lion erstellt wurde, neu?

8

Ich habe vor 4 Tagen auf Mountain Lion aktualisiert und dann festgestellt, dass meine Perl-Skripte nicht mehr funktionieren. Also habe ich ActivePerl 5.14 (neueste Version) installiert, weil ich dachte, dass Perl gelöscht wurde. Nach der Installation von ActivePerl funktionierten meine Programme immer noch nicht:

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.

Wenn ich im Terminal perl -v eingebe, wird angezeigt, dass das neu installierte ActivePerl verwendet wird. Ich habe sudo clan -> Excel :: Writer :: XLSX installiert, um das fehlende Modul zu installieren. Es wird jedoch nicht für 5.12, sondern für ActivePerl 5.14 installiert.

Hier können die eigenen Mac OS X Perl-Nähte installiert werden:

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$

Hier gibt es auch eine Version:

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

Ich dachte, am besten löschen Sie ActivePerl, indem Sie das Deinstallationsprogramm ausführen. Ich habe das getan und auch das Verzeichnis 5.12.4 sowie site_perl in / opt / local / lib / perl5 entfernt.

Dann wollte ich das XLSX :: Writer-Modul mit cpan neu installieren. Ich dachte, dass es dann in das alte Perl-Verzeichnis installiert wird. Das Ausführen von cpan führt jetzt jedoch zu folgendem Fehler:

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.

Ich weiß jetzt nicht, was ich tun soll. Ich denke, das Beste, was ich tun kann, ist wahrscheinlich, Mac OS Xs eigenes Perl neu zu installieren. Wie geht das?

user26392
quelle
Haben Sie Macports installiert? Vermutung von / opt / local / bin
user151019
ja, ich will. Ich habe gerade xcode und die Entwickler-Befehlszeilentools neu installiert, aber immer noch das Gleiche ... Ich könnte einfach mein gesamtes System neu installieren und einige meiner Sachen über eine Zeitmaschine wiederherstellen. Ich würde sowieso nicht
gerne
Sie müssen entscheiden, welches Perl verwendet werden soll - Apple, Macports oder Activestate - und dann sicherstellen, dass nur eines in @INC angezeigt wird - sagen Sie uns, welches dann wir helfen können
user151019
Nun, ich möchte Apple Perl verwenden, aber um es verwenden zu können, muss ich auch das XLSX.pm-Modul für diese Version von Perl installieren. Aufgrund des Löschens einiger Ordner kann ich cpan jedoch nicht mehr starten ... Was ist Ihrer Meinung nach am besten zu tun?
user26392
Welche Verzeichnisse haben Sie gelöscht?
user151019

Antworten:

6

Ich habe auf einer anderen Website den folgenden Befehl gefunden

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

Dadurch wurden alle meine Perl-Module aktualisiert und alles ist wieder normal. Ich weiß nicht warum oder was, aber es ist mir egal, dass es jetzt funktioniert.

Matthew Weiss
quelle
Hier ist eine Quelle dieses Befehls
BryanH
0

Aus verschiedenen Gründen muss für ein Upgrade des Betriebssystems MacPorts separat aktualisiert / neu installiert werden. Die Entwickler haben tatsächlich eine hübsche Migrationsseite erstellt , auf der der Prozess beschrieben wird, der erforderlich ist, damit Ihre Portumgebung nach dem Upgrade des Betriebssystems wieder funktioniert.

Zusammenfassend müssen Sie folgende Schritte ausführen:

  1. Laden Sie den neuen Xcode herunter und installieren Sie ihn.
  2. Stellen Sie sicher, dass die Befehlszeilentools (gcc, make usw.) installiert sind. Gehen Sie in der Xcode-Anwendung zu Einstellungen-> Downloads und installieren Sie sie.
  3. Laden Sie das MacPorts-Installationsprogramm Ihrer Wahl für Ihre Betriebssystemversion herunter .
  4. Es installieren.
  5. Öffnen Sie das Terminal Ihrer Wahl.
  6. Führen Sie den Befehl aus port -qv installed > myports.txt. Dadurch wird eine Kopie aller installierten Ports abgerufen.
  7. Deinstallieren Sie alle Ports: sudo port -f uninstall installed
  8. Räumen Sie Ihren Spielbereich auf: sudo port clean all
  9. Gehen Sie die Datei durch myports.txtund installieren Sie die gewünschten Pakete neu.

Ich habe meinen Neuinstallationsprozess tatsächlich beschleunigt, indem ich die myports.txtDatei so bearbeitet habe , dass sie die Namen (und nur die Namen) der gewünschten Pakete mit einem Paket pro Zeile enthält, und den folgenden Befehl ausgeführt habe

cat myports.txt | xargs -n1 port install

Gehen Sie dazu diese Datei durch und führen Sie den Befehl port install linefür jede Zeile in der Datei aus. Es ist eine nutzlose Verwendung von Katze, aber wen interessiert das schon, es ist leichter zu lesen.

Scott Pack
quelle