Как переустановить 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 clan -> install 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, как это сделать?

user26392
источник
У вас установлены макпорты? предположения из / opt / local / bin
user151019
Да. Я только что переустановил xcode и инструменты командной строки разработчика, но все так же ... Я мог бы просто переустановить всю свою систему и восстановить некоторые вещи с помощью машины времени. Во всяком случае, не
хотелось
Вам нужно решить, какой Perl использовать - Apple, MacPort или ActiveState, а затем убедиться, что в @INC появляется только один - скажите, какой из них мы можем помочь
user151019
ну, я хочу использовать apple perl, но чтобы иметь возможность использовать его, мне также нужно установить модуль XLSX.pm для этой версии perl. Тем не менее, из-за удаления некоторых папок я не могу больше запускать cpan ... что вы думаете лучше всего сделать?
user26392
Какие каталоги вы удалили?
user151019

Ответы:

6

Я нашел на другом сайте следующую команду

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

Это обновило все мои модули Perl, и все возвращается к нормальной жизни. Не уверен, почему или что, но не волнует, что это работает сейчас.

Мэтью Вайс
источник
Вот один из источников этой команды
BryanH
0

По различным и различным причинам обновление ОС требует отдельного обновления / переустановки MacPorts. На самом деле разработчики создали довольно симпатичную страницу миграции, в которой подробно описан процесс, необходимый для того, чтобы ваша среда портов снова заработала после обновления ОС.

Подводя итог, необходимо выполнить следующие шаги:

  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для каждой строки в файле. Это бесполезное использование кошки, но кого это волнует, его легче читать.

Скотт Пак
источник