Laravel Composer 更新错误 - 权限被拒绝

5

我在更新composer时遇到了错误。这是一个Laravel 4项目,我从......下载的,并且第一次更新时没有问题,成功更新了。但由于某些原因,我删除了它,并用该项目的新副本替换了它。但现在当我开始更新它时,它会给我以下错误:

[ErrorException]                                                           
copy(/home/username/.composer/cache/files/symfony/security-core/3a27d7b34ee6  
2cb0fdf5ad970e7777912ef4722f.zip): failed to open stream: Permission denied

在第一次和第二次更新之间,我做了以下操作:
  1. 尝试安装Vagrant和Homestead,但由于某些互联网连接问题失败。
  2. 更新Composer失败
  3. 卸载vagrant并重新安装composer。
  4. 重新安装Composer
  5. 更新composer(成功)
  6. 尝试安装Vagrant和Homestead(成功)
  7. 更新composer(失败)
  8. 卸载vagrant
  9. 重新安装Composer
  10. 更新Composer(失败)
上述错误一遍又一遍地发生。我还尝试了'composer clearcache',但没有起作用。我注意到自从我尝试安装Vagrant以来,已经过去了16-19个月,我从未听说过这样的错误,但是现在它为我创建了障碍和错误。
  • 我使用Ubuntu 15.04
  • 更新Laravel 4.0项目
  • 更新Laravel 5
在安装Vagrant和Homestead之前,两个项目都已得到更新,但现在没有了。/ var / www位于“www-data”组下,“用户名”也是该组的一部分。
请帮忙!!!!!!!

很可能你需要使用 sudo 或者 root 权限来访问那个。 - angelcool.net
如果我使用sudo,那么在更新期间Composer下载的所有文件都将是'sudo'的,我将无法访问它们。你对此有什么看法? - Khuram
你尝试过删除文件(在路径中它说缓存),这样composer就会重新获取它吗? - jsphpl
5个回答

6
我找到了解决方案。如果你看到这个错误,那么很明显我没有访问权限:
 "/home/username/.composer/cache/files/symfony/security-core/3a27d7b34ee62cb0fdf5ad970e7777912ef4722f.zip".

当我浏览这个目录时,发现它的所有者是'root'或'sudo'。
所以我删除了'.composer'目录,然后在我的laravel项目目录中开始更新,一切都很好!没有任何问题!

3
sudo composer update

对我来说有效,这是一个权限问题。

如果不起作用,您可以尝试删除“ .composer”目录,然后进行“ composer update”更新。


1
你永远不应该以root身份运行composer。 - shikata

2

我知道这是一个老话题,但对于Mac用户来说可能很有用,因为macOS中的命令与Linux发行版略有不同,我曾经费了很大力气才弄明白。

  1. 进入~目录
  2. sudo chmod -R 777 .composer

完成。现在您可以安装/更新composer。


1

我在Mac上遇到了同样的问题,Composer警告我使用超级用户权限运行命令,所以我只是更改了repo中/Users/MyUserName/.composer/cache目录下files文件夹的所有者,方法如下:

sudo chown -R MyUserName files/

希望这有所帮助。

0

我只是在所有命令前加了sudo,然后一切都正常了

sudo composer create-project laravel/laravel=5.3 /Users/peter/Sites/blog --prefer-dist


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接