Bagaimana cara menginstal ulang Mac OS X bawaan Perl di Mountain Lion?

8

Saya memperbarui ke Mountain Lion 4 hari yang lalu dan kemudian menyadari bahwa skrip perl saya tidak berfungsi lagi. Jadi saya menginstal ActivePerl 5.14 (versi terbaru) karena saya pikir perl telah dihapus. Setelah menginstal ActivePerl meskipun program saya masih tidak berfungsi:

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.

Di terminal ketika saya mengetik perl -v itu menunjukkan bahwa ia menggunakan ActivePerl yang baru diinstal. Saya menggunakan klan sudo -> instal Excel :: Writer :: XLSX untuk menginstal modul yang hilang. Namun, itu tidak menginstalnya untuk 5,12 tetapi untuk ActivePerl 5.14.

Lapisan Mac OS X Perl sendiri yang harus dipasang di sini:

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$

Ada juga versi di sini:

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

Saya pikir yang terbaik adalah menghapus ActivePerl dengan menjalankan uninstaller-nya. Saya melakukan itu dan juga menghapus 5.12.4 serta direktori site_perl di / opt / local / lib / perl5.

Kemudian saya ingin menginstal ulang modul XLSX :: Writer menggunakan cpan. Saya pikir itu kemudian diinstal ke direktori perl yang lama. Namun menjalankan cpan sekarang menghasilkan kesalahan berikut:

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.

Saya tidak tahu harus berbuat apa sekarang. Saya pikir yang terbaik yang bisa saya lakukan mungkin menginstal ulang Perl Mac OS X sendiri, bagaimana melakukan itu?

pengguna26392
sumber
Apakah Anda memiliki macports yang diinstal? menebak dari / opt / local / bin
user151019
ya saya lakukan. Saya baru saja menginstal ulang xcode dan alat-alat baris perintah pengembang tetapi masih sama ... Saya mungkin menginstal ulang seluruh sistem saya dan mengembalikan beberapa barang saya melalui mesin waktu. Tidak akan
keberatan
Anda perlu memutuskan perl apa yang akan digunakan - Apple, macports atau activestate dan kemudian pastikan hanya satu yang muncul di @INC - beri tahu kami yang mana yang bisa kami bantu
user151019
baik, saya ingin menggunakan perl apel tetapi untuk dapat menggunakannya saya juga perlu menginstal modul XLSX.pm untuk versi perl. Namun, karena menghapus beberapa folder saya tidak dapat memulai cpan lagi ... apa yang menurut Anda terbaik untuk dilakukan?
user26392
Direktori mana yang Anda hapus?
user151019

Jawaban:

6

Saya menemukan perintah berikut di situs web lain

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

Ini memperbarui semua modul perl saya dan semuanya kembali normal. Tidak yakin mengapa atau apa, tetapi tidak peduli itu berfungsi sekarang.

Matthew Weiss
sumber
Inilah salah satu sumber dari perintah itu
BryanH
0

Untuk berbagai alasan mengapa upgrade OS mengharuskan seseorang untuk secara terpisah meng-upgrade / menginstal ulang MacPorts. Para pengembang sebenarnya telah membuat halaman Migrasi yang cukup bagus yang merinci proses yang diperlukan untuk membuat lingkungan port Anda berfungsi kembali setelah memutakhirkan OS.

Ringkasnya, langkah-langkah yang perlu Anda ikuti adalah:

  1. Unduh dan instal Xcode baru.
  2. Pastikan alat baris perintah (gcc, make, dll.) Diinstal. Dari dalam aplikasi Xcode, buka Preferences-> Downloads dan instal.
  3. Unduh installer MacPorts pilihan untuk versi OS Anda.
  4. Pasang itu.
  5. Buka terminal pilihan Anda.
  6. Jalankan perintah port -qv installed > myports.txt. Ini mengambil salinan semua port yang diinstal.
  7. Copot semua port: sudo port -f uninstall installed
  8. Rapikan area bermain Anda: sudo port clean all
  9. Buka file myports.txtdan instal ulang paket yang Anda inginkan.

Saya benar-benar mempercepat proses instal ulang saya dengan mengedit myports.txtfile, sehingga berisi nama (dan hanya nama) dari paket yang saya inginkan dengan satu paket per baris, dan menjalankan perintah berikut

cat myports.txt | xargs -n1 port install

Apa yang dilakukan adalah melalui file itu dan menjalankan perintah port install lineuntuk setiap baris dalam file. Ini adalah penggunaan kucing yang tidak berguna, tetapi siapa yang peduli, lebih mudah dibaca.

Scott Pack
sumber