Zaktualizowałem do Mountain Lion 4 dni temu, a potem zdałem sobie sprawę, że moje skrypty perla już nie działają. Więc zainstalowałem ActivePerl 5.14 (najnowsza wersja), ponieważ myślałem, że perl został usunięty. Po zainstalowaniu ActivePerl moje programy nadal nie działały:
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.
W terminalu, gdy piszę perl -v, pokazuje, że używa nowo zainstalowanego ActivePerla. Użyłem sudo clan -> zainstaluj Excel :: Writer :: XLSX, aby zainstalować brakujący moduł. Jednak nie instaluje go w wersji 5.12, ale w wersji ActivePerl 5.14.
Własne szwy Mac OS X Perl do zainstalowania tutaj:
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$
Istnieje również wersja tutaj:
bash-3.2$ ls /opt/local/lib/perl5/
5.12.4 site_perl vendor_perl
Pomyślałem, że najlepiej jest usunąć ActivePerl, uruchamiając deinstalator. Zrobiłem to i usunąłem 5.12.4, a także katalog site_perl w / opt / local / lib / perl5.
Potem chciałem ponownie zainstalować moduł XLSX :: Writer przy użyciu cpan. Myślałem, że jest on następnie instalowany w starym katalogu Perla. Jednak uruchomienie cpan powoduje teraz następujący błąd:
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.
Nie wiem co teraz robić. Myślę, że najlepsze, co mogę zrobić, to prawdopodobnie ponownie zainstalować Perla dla Mac OS X. Jak to zrobić?
źródło
Odpowiedzi:
Na innej stronie internetowej znalazłem następujące polecenie
$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (install => CPAN :: Shell-> r)'
To zaktualizowało wszystkie moje moduły perla i wszystko wróciło do normy. Nie jestem pewien, dlaczego i co, ale nie przejmuj się, że teraz działa.
źródło
Z różnych i różnych powodów aktualizacja systemu operacyjnego wymaga osobnej aktualizacji / ponownej instalacji MacPorts. Programiści stworzyli całkiem ładną stronę migracji, która szczegółowo opisuje proces niezbędny do ponownego uruchomienia środowiska portów po aktualizacji systemu operacyjnego.
Podsumowując, kroki, które musisz wykonać to:
port -qv installed > myports.txt
. Spowoduje to pobranie kopii wszystkich zainstalowanych portów.sudo port -f uninstall installed
sudo port clean all
myports.txt
i ponownie zainstaluj pakiety, które naprawdę chcesz.Naprawdę przyspieszyłem proces ponownej instalacji, edytując
myports.txt
plik, tak aby zawierał nazwy (i tylko nazwy) pakietów, których potrzebowałem, z jednym pakietem w linii i uruchamiając następującą komendęPowoduje to przejście przez ten plik i wykonanie polecenia
port install line
dla każdej linii w pliku. Jest to bezużyteczne użycie kota, ale kogo to obchodzi, łatwiej jest je czytać.źródło