Jak ponownie zainstalować Mac OS X wbudowany w Perla na Mountain Lion?

8

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ć?

użytkownik26392
źródło
Czy masz zainstalowane Macports? zgadywanie z / opt / local / bin
user151019,
tak. Właśnie przeinstalowałem xcode i narzędzia wiersza poleceń dla programistów, ale wciąż to samo ... Mogę po prostu ponownie zainstalować cały system i przywrócić niektóre rzeczy za pomocą wehikułu czasu. W każdym razie nie
chciałbym
Musisz zdecydować, jakiego perla użyć - Apple, Macports lub activestate, a następnie upewnić się, że tylko jeden pojawia się w @INC - powiedz nam, który z nich możemy pomóc
151019
cóż, chcę używać jabłek perl, ale aby móc go używać, muszę również zainstalować moduł XLSX.pm dla tej wersji perla. Jednak z powodu usunięcia niektórych folderów nie mogę już uruchomić cpan ... co Twoim zdaniem najlepiej zrobić?
user26392,
Które katalogi usunąłeś?
user151019,

Odpowiedzi:

6

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.

Matthew Weiss
źródło
Oto jedno źródło tego polecenia
BryanH
0

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:

  1. Pobierz i zainstaluj nowy Xcode.
  2. Upewnij się, że zainstalowane są narzędzia wiersza poleceń (gcc, make itp.). Z poziomu aplikacji Xcode przejdź do Preferencje-> Pobieranie i zainstaluj je.
  3. Pobierz instalator MacPorts dla swojej wersji systemu operacyjnego.
  4. Zainstaluj to.
  5. Otwórz wybrany terminal.
  6. Uruchom polecenie port -qv installed > myports.txt. Spowoduje to pobranie kopii wszystkich zainstalowanych portów.
  7. Odinstaluj wszystkie porty: sudo port -f uninstall installed
  8. Uporządkuj swój plac zabaw: sudo port clean all
  9. Przejrzyj plik myports.txti ponownie zainstaluj pakiety, które naprawdę chcesz.

Naprawdę przyspieszyłem proces ponownej instalacji, edytując myports.txtplik, 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ę

cat myports.txt | xargs -n1 port install

Powoduje to przejście przez ten plik i wykonanie polecenia port install linedla każdej linii w pliku. Jest to bezużyteczne użycie kota, ale kogo to obchodzi, łatwiej jest je czytać.

Scott Pack
źródło