在El Capitan系统中,执行sudo mkdir /usr/时会出现“Operation not permitted”错误。

19
尝试安装PHP,需要在/usr/lib/php/extensions中创建一个扩展目录。然而安装返回了“操作不允许”的错误信息。
后来我发现sudo无法在/usr/下创建任何目录。还有其他人遇到过类似情况吗?

你是在尝试从PHP运行该命令吗? - Jonathan Kuhn
1
在运行sudo make install时失败了,所以我尝试手动安装。但那种方式也不起作用。 - THEK
1
我的观点是,除非您从PHP运行命令,否则它与PHP无关。您安装PHP与无法从终端窗口创建目录没有任何关系。这被标记为PHP问题。 - Jonathan Kuhn
修改问题,更新标签 - THEK
一个快速的谷歌搜索得到了以下结果:http://digitizor.com/2015/10/01/fix-homebrew-permissions-osx-el-capitan/。虽然它涉及另一个程序,但它解决了同样的问题并提供了修复方法。您可以决定是使用此方法还是在其他地方安装。 - Jonathan Kuhn
这应该是根据此链接的原因: https://superuser.com/questions/1152753/system-library-folder-on-macos-sierra-does-not-allow-permissions-modifications - nmeegama
1个回答

28

本地安装应该安装在 /usr/local 下,而不是直接安装在 /usr 下。从 El Capitan 开始,这由 系统完整性保护 所强制执行。这不应该是一个很大的变化,只需将扩展安装在 /usr/local/lib/php/extensions 中,并编辑 php.ini 将 extension_dir 设置为适当的位置。


在安装程序时会发生什么情况呢?就拿我想要在bin目录中安装Trimmomatic为例,同样的错误消息也出现了。提前感谢您的帮助。 - msimmer92
1
@melunuge92 这是一个Java程序,所以放在哪里并不重要,只要使用java -jar /path/to/trimmomatic.jar运行即可。这个makefile建议将其通常安装在特定用户的~/bin/trimmomatic.jar中(例如/Users/melunuge92/bin/trimmomatic.jar)。我对安装Java程序的最佳惯例并不太熟悉。 - Gordon Davisson
谢谢你,Gordon!毕竟这只是一个愚蠢的错误。我在bin文件夹中有一个名为trmmomatic的文件夹,里面有可执行文件。我把可执行文件直接放在bin文件夹中,而不是在中间加上“trimmomatic”文件夹,这样就可以运行了。 - msimmer92

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接