OSX El Capitan Beta3中不允许使用Unix“ ln -s”命令


54

当我遇到“不允许操作”错误时,我正在为Symphony安装nodejs。有人知道为什么会这样吗?

MacBook Pro-de-XXX:〜XXX $ sudo ln -s / usr / local / bin / node / usr / bin / node

密码:

ln:/ usr / bin / node:不允许操作


1
首先检查/ usr / bin / node是否已经设置。如果要更改它,可以使用ln -sf强制符号链接。

MacBook Pro-de-XXX:
〜XXX

ls -la / usr / bin / node

MacBook Pro-de-XXX:〜XXX $ ls -la / usr / bin / node ls:/ usr / bin / node:没有这样的文件或目录
Kurr0

Answers:


70

在新版本的OS X中,这就是所谓的“无根”模式。它有效地使某些系统目录为只读(即使对于管理员)。“ / usr”是那些受保护的目录之一(此规则中唯一排除的子目录是“ / usr / local”)

可以使用以下命令禁用此无根模式:

$ sudo nvram boot-args="rootless=0"
$ sudo reboot

但这不推荐!最佳做法是仅将自定义内容安装到“ / usr / local”。


更新(15年10月27日):10.11(El Capitan)公开发布

请注意,上述解决方法不适用于El Capitan的公开发布,因为苹果已经改变了周围的情况。

禁用“无根”模式(也称为系统完整性保护,“ SIP”)的正确方法是暂时引导到恢复模式(在引导过程中按住Command + R)并从终端使用csrutil disable命令(或csrutil enable重新启用)。可通过以恢复模式启动的安装程序菜单访问终端。


2
可能不建议使用,但就目前而言,MacTeX似乎已经可以期待了/usr/texbin,所以我们走吧!
David Lord

至少从GM版本开始,在El Capitan上修改NVRAM以禁用无根模式无效。检查这个答案,在现在是不可能的版本工作的方法:stackoverflow.com/questions/32590053/...
克里斯Ostmo

这对我也不起作用。
gsscoder 2015年

1
还是给我Operation not permitted
Sinux

2
我的解决方法是安装到/ usr / local / bin
anon58192932 '02

-2

在我的El Capitan版本中,该/bin目录不存在:

/usr/local/bin

因此,解决方法是:

mkdir -p /usr/local/bin

-p如果不存在,该标志将创建目录(以及完整路径中的所有目录)。

然后,您可以创建符号链接并将应用程序复制到,/usr/local/bin因为这/usr/local不是“无根”模式的一部分。


这无助于解决问题。有时,您仅需要/ usr / bin中的符号链接,而无法避免这种情况。
Dmitri
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.