无法更改 bin 上的文件模式:不允许操作

Unable to change file mode on bin: Operation not permitted

我正在尝试在 Mac OS 上全局安装 Composer。

我尝试按照“入门”部分中的说明在终端中使用此命令移动 composer.phar 文件:

mv composer.phar /usr/bin/composer

我收到这个错误:

mv: rename composer.phar to /usr/bin/composer: No such file or
directory

当我尝试创建目录时,它说不允许该操作:

bash-3.2# mkdir -p /usr/bin/composer mkdir: /usr/bin/composer:
Operation not permitted

我什至试图导航到“bin”目录,它说:

bash-3.2# mkdir composer mkdir: composer: Operation not permitted

我已成功启用 root,但我仍然尝试更改权限:

bash-3.2# chmod ugo+rwx "bin" chmod: Unable to change file mode on
bin: Operation not permitted bash-3.2#

我做错了什么?

提前致谢!

编辑:

感谢您的回复!

当我输入以下命令时:

ls -leO@d /usr/local/bin

它打印:

-rwxrwxr-x 1 username staff  - 2212003 27 Mar 17:00 /usr/local/bin

/usr/bin 是受保护的系统文件夹。 不要更改其权限。

而是将其安装在其他地方,例如进入 /usr/local/bin。您可能仍然需要 运行 使用 sudo 的复制命令:sudo mv composer.phar /usr/local/bin/composer

背景:/usr/bin 通常用于“标准”二进制文件,而不是您自己安装的东西;这些通常属于 /usr/local/bin 这样的地方。在最新版本的 macOS 中,这是由 System Integrity Protection and by keeping "system" files/directories on .

强制执行的

问题:在您的系统上,似乎有一个名为 /usr/local/bin 的文件,而不是一个目录。如果某些安装程序试图将程序安装到 /usr/local/bin(例如使用 mv someprogram /usr/local/bin),而没有先确保该名称的目录存在,就会发生这种情况。

如何解决:首先要做的是 move/rename 安装任何文件作为 /usr/local/bin,然后将其创建为目录:

sudo mv /usr/local/bin /usr/local/bin-moved
sudo mkdir -p /usr/local/bin

理顺之后,你应该可以正常安装composer了。根据 this(并添加 sudo 以获得对目录的访问权限),您可以使用:

sudo mv composer.phar /usr/local/bin/composer

最后,如果您愿意,可以尝试找出安装的程序是什么(而不是 in/usr/local/bin。或者直接删除/usr/local/bin-moved文件,不用担心。