Як перевстановити Mac OS X, побудований в Perl на Mountain Lion?


8

Я оновлювався до Mountain Lion 4 дні тому, і тоді зрозумів, що мої сценарії Perl вже не працюють. Тому я встановив ActivePerl 5.14 (найновіша версія), тому що вважав, що Perl видалено. Після установки ActivePerl, хоча мої програми все ще не працювали:

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, він показує, що він використовує нещодавно встановлений ActivePerl. Я використовував клан sudo -> встановити Excel :: Writer :: XLSX для встановлення відсутнього модуля. Однак він встановлюється не за 5.12, а для ActivePerl 5.14.

Тут слід встановити власні шви Mac OS X Perl:

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$

Тут також є версія:

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

Я вважав, що найкраще видалити ActivePerl, запустивши його деінсталятор. Я зробив це, а також видалив 5.12.4, а також каталог site_perl в / opt / local / lib / perl5.

Тоді я хотів перевстановити модуль XLSX :: Writer за допомогою cpan. Я подумав, що його потім встановлять у старий каталог perl. Однак запущений cpan тепер призводить до наступної помилки:

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.

Я не знаю, що зараз робити. Я думаю, що найкраще, що я можу зробити, - це, мабуть, перевстановлення Perl Mac OS X, як це зробити?


У вас встановлені макпорти? гадати з / opt / local / bin
user151019

так. Я щойно перевстановив xcode та інструменти командного рядка розробника, але все одно той самий ... Я можу просто перевстановити всю свою систему та відновити деякі мої речі через машину часу. Не хотів би мати чисту систему все одно ...
user26392

Вам потрібно вирішити, якою можливістю користуватися - Apple, макпортами або activestate, а потім переконайтеся, що в @INC з’являється лише один - скажіть, яким тоді ми можемо допомогти
user151019

добре, я хочу використовувати яблука perl, але щоб мати можливість його використовувати, мені також потрібно встановити модуль XLSX.pm для цієї версії perl. Однак через видалення деяких папок я більше не можу запустити cpan ... що, на вашу думку, краще зробити?
користувач26392

Які каталоги ви видалили?
користувач151019

Відповіді:


6

Я знайшов на іншому веб-сайті таку команду

$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (установка => CPAN :: Shell-> r)'

Це оновило всі мої модулі Perl, і все повернулося до нормального. Не впевнений, чому чи що, але все одно, що це працює зараз.


Ось одне джерело цієї команди
BryanH

0

З різних та різних причин оновлення ОС вимагає окремо оновити / перевстановити MacPorts. Розробники створили дуже гарну сторінку Migration, яка детально описує процес, необхідний для того, щоб ваше порту знову працювало після оновлення ОС.

Узагальнено, кроки, які вам потрібно виконати:

  1. Завантажте та встановіть новий Xcode.
  2. Переконайтесь, що інструменти командного рядка (gcc, make тощо) встановлені. Зсередини програми Xcode перейдіть у меню Налаштування-> Завантаження та встановіть їх.
  3. Завантажте інсталятор MacPorts за вашою версією ОС.
  4. Встановіть його.
  5. Відкрийте свій термінал за вибором.
  6. Виконайте команду port -qv installed > myports.txt. Це захоплює копію всіх встановлених портів.
  7. Видаліть усі порти: sudo port -f uninstall installed
  8. Наводьте акуратну зону гри: sudo port clean all
  9. Перейдіть через файл myports.txtі перевстановіть пакети, які ви насправді хочете.

Я фактично прискорив процес перевстановлення, редагуючи myports.txtфайл, таким чином, щоб він містив імена (і лише імена) пакетів, які я хотів, з одним пакетом на рядок, і виконую наступну команду

cat myports.txt | xargs -n1 port install

Для цього потрібно перейти через цей файл і виконати команду port install lineдля кожного рядка у файлі. Це марне використання кота, але хто дбає, його легше читати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.