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?
quelle
Antworten:
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.
quelle
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:
port -qv installed > myports.txt
. Dadurch wird eine Kopie aller installierten Ports abgerufen.sudo port -f uninstall installed
sudo port clean all
myports.txt
und installieren Sie die gewünschten Pakete neu.Ich habe meinen Neuinstallationsprozess tatsächlich beschleunigt, indem ich die
myports.txt
Datei 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 habeGehen Sie dazu diese Datei durch und führen Sie den Befehl
port install line
für jede Zeile in der Datei aus. Es ist eine nutzlose Verwendung von Katze, aber wen interessiert das schon, es ist leichter zu lesen.quelle