【问题标题】:macOS 10.15 Terminal - unlink gets "Operation not permitted"macOS 10.15 终端 - 取消链接得到“不允许操作”
【发布时间】:2021-03-23 06:15:21
【问题描述】:

zsh;终端在系统偏好设置中有全盘访问权限。

/usr/bin % ls -alF python
lrwxr-xr-x  1 root  wheel  75 Jul 12 11:48 python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
/usr/bin % sudo unlink python
Password:
unlink: python: Operation not permitted
/usr/bin % 

由 OP 编辑​​以添加此终端脚本:

~ % whence python
/usr/bin/python
~ % echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/brec/.rvm/bin
~ % ls -alF /usr/local/bin/python
lrwxr-xr-x  1 brec  admin  24 Dec 11 10:45 /usr/local/bin/python@ -> /usr/local/bin/python3.8
~ % python

WARNING: Python 2.7 is not recommended.

注意:/usr/local/bin/python3.8 不存在。

【问题讨论】:

  • 这可能是根文件系统以只读方式挂载的问题,这使得单个文件权限没有实际意义。
  • @chepner 如果这是问题所在,我将如何重新定位符号链接?
  • 也许可以尝试sudo chown符号链接。
  • chown: python: Operation not allowed :(
  • 你没有。不理会系统安装的东西。将包含您要使用的版本的目录放在PATH 变量中/usr/bin 之前,或者使用虚拟环境。

标签: terminal zsh macos-catalina unlink


【解决方案1】:

在最近的 macOS 版本上,系统完整性保护 (SIP) 可防止修改多个位置的文件,包括 /usr/bin。因为 macOS 的某些部分使用 Python,所以您无法修改 /usr/bin/python 处的符号链接 - 如果您这样做了,它可能会破坏依赖于特定 Python 版本的操作系统的某些部分。即使是 root 也不能​​修改受 SIP 保护的文件。

最好的办法是安装单独版本的 Python,并确保您的 PATH 环境变量已相应设置。

【讨论】:

    【解决方案2】:

    我取消了 /usr/local/bin/python 的链接,然后创建了一个软链接 /usr/local/bin/python 到我希望执行 python 命令的 python 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 2023-03-07
      • 2019-11-04
      • 2014-07-16
      相关资源
      最近更新 更多