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



我正在尝试在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通常用于";标准";二进制文件,而不是您自己安装的东西;它们通常属于像CCD_ 2这样的地方。在最近版本的macOS中,这是由系统完整性保护和保持";系统";单独只读卷上的文件/目录。

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

如何解决:首先要做的是将安装的任何文件移动/重命名为/usr/local/bin,然后将其创建为一个目录:

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

一旦解决了这个问题,您应该能够正常安装composer。根据这一点(并添加sudo以访问目录(,您可以使用:

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

最后,如果你愿意,你可以试着弄清楚什么程序被安装为(而不是中的(/usr/local/bin。或者只需删除/usr/local/bin-moved文件,就不用担心了

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

相反,请将其安装到其他位置,例如/usr/local/bin。您可能仍然需要使用sudo运行复制命令:sudo mv composer.phar /usr/local/bin/composer

最新更新