当我尝试在/usr/bin文件夹中创建二进制链接时,会出现"Operation not permitted"错误。
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/
目录下的文件,即使是超级用户也无法更改。
像你现在做的这样的本地自定义应该放在 /usr/local
中,而不是 /usr/bin
。默认情况下不存在路径 /usr/local/bin
,但是你可以创建该路径并将自定义的二进制文件(和符号链接)放到里面:
sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2
请注意,虽然/usr/local/bin
不是默认存在的文件夹,但它在默认路径中,因此一旦您创建它,系统会搜索其中的命令。
也可以禁用系统完整性保护(SIP),但最好将其保留并在更合适的位置进行自定义操作。有一个苹果堆栈交换问题详细介绍了此功能:什么是El Capitan中的Rootless功能?。
python
,它会调用 /usr/bin/python
下的文件,而不是 /usr/local/bin/python
下的文件。 - Daniel W.PATH
环境变量设置为什么了?通常情况下,/usr/local/bin
会排在 /usr/bin
的前面,因此它会被优先使用。 - Gordon Davissonpython
的函数或别名?如果你正在使用bash,请运行type python
(或者type -a python
以获取可能含义的完整列表);如果你正在使用zsh,请运行whence python
(或者whence -a python
)。 - Gordon Davisson我在Mac OS High Sierra中创建了Sublime Text 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"的访问受到了限制。
重启系统 - 长按 cmd + R。 从实用程序菜单中选择一个终端。 输入以下命令 csrutil disable。 关闭终端并重启系统。
sudo
在此目录或任何目录中创建符号链接。 - rjhilgefort 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
尝试先运行sudo su
,然后以root级别运行命令。
/usr/local/bin
或/usr/local/sbin
中。 - Shayan Amani