全局安装Composer - mv:无法创建常规文件

时间:2018-01-24 11:34:45

标签: php terminal composer-php

我在Ubuntu上,我正在尝试在我的机器上全局安装composer。

我跑了

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');" 

但是当我尝试mv composer.phar /usr/local/bin/composer时,我在终端mv: cannot create regular file '/usr/local/bin/composer': Permission denied上收到错误。

权限是

// $ ls -lah /usr/local/bin/
drwxr-xr-x  2 root root 4.0K Aug  1 12:17 .
drwxr-xr-x 10 root root 4.0K Aug  1 12:17 ..

我进行了快速的谷歌搜索,但我找到的大多数解决方案都建议chmod 777 /usr/local/bin/sudo mv ...这可能不是最好的解决方案。

哪种方法可以正确解决?

2 个答案:

答案 0 :(得分:2)

如果您以用户身份运行命令(就像看起来那样),那么您无法在/usr/local/...之类的系统目录中安装任何内容,而无需使用sudo,因为您已经找到了。

将目录的权限更改为777是一个非常糟糕的主意。

答案 1 :(得分:0)

使用mv运行sudo很好,可能是全局安装的最佳解决方案。唯一要记住的是你必须使用sudo运行自我更新,所以你可能希望为自己的用户安装composer,以便更灵活吗?