我在 Mac OS X 10.6 上安装的 perl 搞砸了。我来解释一下是怎么回事:
我想为 Bundle::DBD::mysql 添加一个 cpan 包,cpan 告诉我先更新 Bundle::CPAN。但由于权限问题,我无法做到。所以我sudo
编辑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
我想像 Apple 在更新到 Snow Leopard 时安装 perl 那样重新安装它(尽管保留 DBD::mysql 会更好),但我不知道从哪里开始。我不想使用一些 fink 包或 ports 风格的系统。获得最新的 perl 5.10 将是一个加分项。
答案1
这可能看起来像我是一个完全的 Mac 新手(虽然我从 LC 开始就一直在使用 Mac),但由于安装 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
答案2
尝试使用和平主义者从您的 10.6 光盘运行相应的安装程序包。我不确定它是哪个包,但 Pacifist 允许您浏览和搜索光盘上的包。我不相信它会删除新文件,但它会将您的 Perl 安装恢复为工作默认值。您还可以有选择地提取文件和文件夹。
几年前,在发生一起相当尴尬的事件后,我曾用它来控制损失(我想补充一下,相当成功)。sudo rm -fr /bin
别问。
答案3
是的……磁盘实用程序“修复权限”也对我有用。同样的问题……安装了 DBD::mysql 模块,它破坏了权限。
答案4
也许这有助于安装最新的更新http://support.apple.com/kb/DL959。使用时间机器进行完整系统还原后,我遇到了大量问题。这似乎破坏了很多东西,除了其他东西之外,我无法再使用 quicklook。重新安装此更新后,所有功能均正常。幸运的是,perl 包含在这次更新中。