Mountain Lion Perl'de yerleşik Mac OS X nasıl yeniden yüklenir?


8

4 gün önce Mountain Lion'a güncelledim ve daha sonra perl betiklerimin artık çalışmadığını fark ettim. Bu yüzden perl'nin silindiğini düşündüğüm için ActivePerl 5.14'ü (en yeni sürüm) yükledim. ActivePerl'i yükledikten sonra programlarım hala çalışmadı:

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.

Perl -v yazdığımda terminalde yeni yüklenen ActivePerl kullandığını gösteriyor. Eksik modülü kurmak için sudo clan -> install Excel :: Writer :: XLSX kullandım. Ancak, 5.12 için değil, ActivePerl 5.14 için yüklenir.

Buraya kurulacak olan kendi Mac OS X Perl dikişleri:

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$

Burada da bir sürüm var:

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

En iyisinin ActivePerl'i kaldırıcısını çalıştırarak silmek olduğunu düşündüm. Bunu yaptım ve ayrıca / opt / local / lib / perl5 içindeki 5.12.4 ve site_perl dizinini kaldırdım.

Sonra cpan kullanarak XLSX :: Writer modülünü yeniden kurmak istedim. Daha sonra eski perl dizinine yüklendiğini düşündüm. Ancak cpan'ı çalıştırmak şu hatayla sonuçlanır:

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.

Şimdi ne yapacağımı bilmiyorum. Sanırım yapabileceğim en iyi şey muhtemelen Mac OS X'in kendi Perl'sini yeniden kurmaktır, nasıl yapılır?


Yüklü macport'unuz var mı? / opt / local /
bin'ten

Evet ediyorum. Ben sadece xcode ve geliştirici komut satırı araçlarını yeniden yükledim ama yine de aynı ... Ben sadece tüm sistemimi yeniden yüklemek ve zaman makinesi aracılığıyla bazı şeyler geri yükleyebilirsiniz.
Yine de

Hangi perl'in kullanılacağına karar vermelisiniz - Apple, macports veya activestate ve daha sonra @INC'de yalnızca birinin göründüğünden emin olun
hangisine

iyi, ben elma perl kullanmak istiyorum ama bunu kullanabilmek için ben de perl bu sürümü için XLSX.pm modülünü yüklemeniz gerekir. Ancak, bazı klasörleri sildiğim için artık cpan'ı başlatamıyorum ... en iyi ne düşünüyorsunuz?
user26392

Hangi dizinleri sildiniz?
user151019

Yanıtlar:


6

Başka bir web sitesinde aşağıdaki komutu buldum

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

Bu, tüm perl modüllerimi güncelledi ve hepsi normale döndü. Neden veya ne olduğundan emin değilim, ama şimdi çalıştığına aldırmayın.


İşte bu komutun bir kaynağı
BryanH

0

İşletim sisteminin yükseltilmesi çeşitli ve çeşitli nedenlerden ötürü MacPorts'u ayrı olarak yükseltmek / yeniden yüklemek için bir tane gerektirir. Geliştiriciler , işletim sistemini yükselttikten sonra bağlantı noktaları ortamınızın tekrar çalışmasını sağlamak için gerekli işlemi detaylandıran oldukça güzel bir Taşıma sayfası oluşturdular .

Özet olarak, izlemeniz gereken adımlar şunlardır:

  1. Yeni Xcode'u indirin ve yükleyin.
  2. Komut satırı (gcc, make, vb.) Araçlarının kurulu olduğundan emin olun. Xcode uygulamasından Tercihler-> İndirilenler'e gidin ve yükleyin.
  3. İşletim sistemi sürümünüz için tercih ettiğiniz MacPorts yükleyicisini indirin .
  4. Yükle.
  5. Tercih ettiğiniz terminali açın.
  6. Komutu çalıştırın port -qv installed > myports.txt. Bu, kurulu tüm bağlantı noktalarının bir kopyasını alır.
  7. Tüm bağlantı noktalarını kaldırın: sudo port -f uninstall installed
  8. Oyun alanınızı toplayın: sudo port clean all
  9. Dosyayı gözden myports.txtgeçirin ve gerçekten istediğiniz paketleri yeniden yükleyin.

Aslında myports.txt, her satırda bir paketle istediğim paketlerin adlarını (ve yalnızca adlarını) içerecek ve aşağıdaki komutu çalıştıracak şekilde dosyayı düzenleyerek yeniden yükleme işlemimi hızlandırdım

cat myports.txt | xargs -n1 port install

Bunun yaptığı şey, o dosyadan geçmek ve dosyadaki port install lineher satır için komutu yürütmektir . Kedinin işe yaramaz bir kullanımıdır, ancak umurunda, okumak daha kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.