4

Я испортил мою установку Perl на Mac OS X 10.6. Я объясню, как:
Я хотел добавить пакет cpan для Bundle::DBD::mysql, cpan сказал мне сначала обновить Bundle::CPAN. Я не мог из-за разрешений. Итак, я sudo ed perl -MCPAN -e shell и обновил cpan, затем я получил пакет mysql, но он не прошел некоторые тесты, которые я затем принудительно установил (это работает, кстати). Затем по какой-то причине я решил перестроить пакет mysql. Это заняло много времени. В конце концов я понял, что он много перестроен, как perldoc.

Теперь, когда я пытаюсь запустить perldoc, у меня нет разрешения на это, но когда я sudo perldoc сообщает, что не может его найти.

dlamblins-macbook:~ dlamblin$ perldoc
-bash: /usr/bin/perldoc: Permission denied
dlamblins-macbook:~ dlamblin$ sudo perldoc
Password:
sudo: perldoc: command not found
dlamblins-macbook:~ dlamblin$ sudo /usr/bin/perldoc
Password:
sudo: /usr/bin/perldoc: command not found

Я бы хотел переустановить Perl по-настоящему, как Apple установил его, когда я обновил Snow Leopard (хотя было бы неплохо сохранить DBD::mysql), и я не знаю, с чего начать. Я не хочу использовать какой-то пакет fink или систему в стиле портов. Получение последней версии Perl 5.10 было бы плюсом.

6 ответов6

4

Может показаться, что я полный Mac Newb (хотя я пользуюсь Mac со времен LC), но с тех пор, как установка комбинированного обновления для 10.6.2 не устранила эту проблему, несмотря на перезапись файлов, я с опозданием понял, что Кнопка "Восстановить разрешения" Дисковой утилиты исправит это. И это сделал.

Странно, что настоящий бинарный файл /usr/bin/perldoc не был затронут. Вероятно, это как-то связано с одним из этих пакетов в выводе.

Вот что он выводит, когда исправляет вещи (обратите внимание, что последняя строка - это? для меня)

Repairing permissions for “Macintosh HD”
Permissions differ on "private/etc/postfix/main.cf.default", should be -rw-r--r-- , they are -r--r--r-- .
Repaired "private/etc/postfix/main.cf.default".
Permissions differ on "usr/bin/c2ph", should be -rwxr-xr-x , they are -rw-rw-rw- .
Repaired "usr/bin/c2ph".
Permissions differ on "usr/bin/config_data", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/config_data".
Permissions differ on "usr/bin/cpan", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/cpan".
Permissions differ on "usr/bin/enc2xs", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/enc2xs".
Permissions differ on "usr/bin/instmodsh", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/instmodsh".
Permissions differ on "usr/bin/piconv", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/piconv".
Permissions differ on "usr/bin/prove", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/prove".
Permissions differ on "usr/bin/shasum", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/shasum".
Permissions differ on "usr/share/derby", should be drwxr-xr-x , they are lrwxr-xr-x .
Repaired "usr/share/derby".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/NetSNMP/default_store.pm", should be -rw-rw-r-- , they are -r--r--r-- .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/NetSNMP/default_store.pm".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/autosplit.ix", should be -rw-rw-r-- , they are -r--r--r-- .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/autosplit.ix".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/default_store.bundle", should be -rwxrwxr-x , they are -r-xr-xr-x .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/default_store.bundle".
Warning: SUID file "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent" has been modified and will not be repaired.

Permissions repair complete
3

Попробуйте использовать Pacifist для запуска соответствующего установочного пакета с вашего диска 10.6. Я не уверен, какой пакет находится у меня на голове, но Pacifist позволяет вам просматривать и искать пакеты на диске. Я не верю, что это удалит новые файлы, но это восстановит вашу установку Perl к рабочему состоянию по умолчанию. Вы также можете выборочно извлекать файлы и папки.

Использование Pacifist для поиска «Perl» на диске Mac OS X 10.6.

Я использовал его пару лет назад для контроля ущерба (вполне успешно, я мог бы добавить) после довольно неприятного инцидента с участием sudo rm -fr /bin . Не спрашивай

2

Ага...Дисковые утилиты "Ремонт разрешений" работали и у меня. Та же проблема ... установил модуль DBD::mysql, и он поднял разрешения.

1

Вы всегда можете скачать последнюю версию Perl с http://www.cpan.org/src/5.0/latest.tar.bz2.

Вам нужно будет разархивировать и запустить Configure.

Лично я обычно предпочитаю иметь собственную установку Perl, даже если в базовую ОС включена версия. Это означает, что мои сценарии могут быть обновлены до более поздних версий по моему расписанию, а не сопровождающие.

1

возможно, это поможет установить последнее обновление по адресу http://support.apple.com/kb/DL959. У меня были огромные проблемы после полного восстановления системы с машиной времени. кажется, что это портит многие вещи, и я не могу больше использовать quicklook, кроме прочего. после переустановки этого обновления все функции работают как обычно. с небольшим количеством удачи Perl в этом обновлении.

0

Установлен свежий CPAN на Lion.

Перед "Утилитами восстановления" дисковой утилиты:

$ perldoc
-bash: /usr/bin/perldoc: Permission denied

Работает снова после:

$ perldoc
Usage: perldoc5.12 [-h] [-V] [-r] [-i] [-D] [-t] [-u] [-m] [-n nroffer_program] [-l] [-T] [-d output_filename] [-o output_format] [-M FormatterModuleNameToUse] [-w formatter_option:option_value] [-L translation_code] [-F] [-X] PageName|ModuleName|ProgramName
       perldoc5.12 -f PerlFunc
       perldoc5.12 -q FAQKeywords
       perldoc5.12 -v PerlVar

The -h option prints more help.  Also try "perldoc perldoc" to get
acquainted with the system.                        [Perldoc v3.15_02]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .