无法更改 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
文件,不用担心。
我正在尝试在 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
文件,不用担心。