当我尝试在我的/usr/bin 文件夹中对一个二进制文件进行符号链接时,我得到一个“不允许的操作”错误:
sudo ln -s /usr/bin/python2.7 /usr/bin/python2 ln: /usr/bin/python2: Operation not permitted
即使是 sudo,我也会得到这个错误。
/usr/bin
El Capitan 的新 系统完整性保护特性可以防止对 OS X 的几个核心部分进行更改,包括大部分 /usr/,甚至可以通过 root 用户进行更改。
/usr/
本地定制,比如您正在做的事情,应该放在 /usr/local中。路径 /usr/local/bin默认不存在,但是您可以创建它并在其中放入自定义二进制文件(和符号链接) :
/usr/local
/usr/local/bin
sudo mkdir -p /usr/local/bin sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2
请注意,虽然 /usr/local/bin在默认情况下不存在,但它在默认 PATH 中是 是,因此一旦创建它,就会在其中搜索命令。
也可以禁用系统完整性保护,但通常最好保持开机状态,并在更合适的位置进行定制。关于这一点,苹果 StackExchange 的一个问题有更多的细节: El-Captain 的无根特征到底是什么?。
重新启动系统-> 长按 Cmd + R。 从工具菜单中选择一个终端 键入以下命令 Csrutil 失效 关闭终端并重新启动系统。
我在 Mac OS High Sierra 中创建了崇高文本3的符号链接
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
我还尝试在“/usr/bin”中创建符号链接,并得到了“不允许操作”。
然后我在“/usr/local/bin”中创建了符号链接,没有错误。符号链接工作正常。只需确保路径中有“/usr/local/bin”即可。
因此,对“/usr/bin”的访问似乎受到了限制。
尝试先运行 sudo su,然后运行命令 w/root 级别。
sudo su
1. Create a symbolic link to psql in usr/bin (for mac only) command: sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/bin/psql
如果您因为权限问题而不能创建符号链接,那么它将是由于“ csrutil”。禁用 csrutil 之后,您可以创建符号链接。 按照以下步骤禁用 CSRUtil:
重启你的 Mac。 在 OS X 启动之前,按住 Command-R 并保持按住,直到你看到一个苹果图标和一个进度条。放手。这会让你进入康复期。 从“实用程序”(在顶部栏)菜单中,选择“终端”。 在提示符下输入以下内容,然后按 Return: csrutil able 终端应显示禁用 SIP 的消息。 从菜单中选择“重新启动”。