El Capitan 现在以“无根”模式(又称系统完整性保护)保护某些系统目录。如果你运行这个命令ls -lO /System/Library/LaunchDaemons
,你会看到那里的目录和文件现在被标记为“restricted”。
您可以像这样禁用无根模式:
- 重新启动进入恢复模式(重新启动并按住 Cmd-R)
- 打开终端
- 使用这个命令:
csrutil disable
- 重新启动并运行在 El Capitan 之前有效的命令
完成后,强烈建议您按照相同的步骤重新启用 SIP,但csrutil enable
在步骤 3 中使用。
在尝试安装 pear/pecl 模块和 macports/homebrew 应用程序时,我遇到了具有相同根本原因的问题。那些通常需要将文件安装到 /usr/include 和 /usr/lib 中,现在它们也受到限制。
注意:互联网上有关此问题的先前答案为您提供了修改 NVRAM 设置的说明,但 Apple 表示 NVRAM 方法将停止使用 El Capitan 的公开版本。GM 版本已经禁用了 NVRAM 解决方法,所以这个答案应该能让你得到你需要的东西。
更新:同样的方法适用于 macOS Sierra,在可预见的未来可能还会有新的 macOS 版本。
另一个更新!看起来 Catalina 试图让我们参与进来。他们将我之前强迫去的所有文件移到了 Linux 必须去的地方:

他们留下了这个有趣
的通知:我有点想知道我现在在使用谁的电脑。
无论如何,我认为大多数需要这种解决方法的工具(如 brew 和 PEAR)已经适应了。我真的不知道,因为让 macOS 的行为 100% 像 Linux 一样变得愚蠢,所以当我需要命令行 Linux 的东西时,我会使用虚拟机。
这种解决方法可能仍然对 Catalina 有用。我没试过。为了研究,我不会这样做,但如果我需要试一试,我会回来报告。