我正在尝试运行一个composer install来更新我的生产服务器上的依赖项,但是我仍然遇到以下错误(这恰好出现在Laravel Forge部署的服务器上)。
Loading composer repositories with package information
Installing dependencies from lock file
Package operations: 0 installs, 0 updates, 24 removals
- Removing symfony/dom-crawler (v3.2.1)
[RuntimeException]
Could not delete /home/forge/website.com/vendor/symfony/dom-crawler/composer.json:
为什么会这样?我可以手动删除伪造服务器上的整个供应商文件夹并重新部署所有依赖项而不会损害它吗?
答案 0 :(得分:3)
问题可能是因为作曲家正在超时。所以你可能需要增加作曲家的时间。
你可以采取以下措施来获得一些速度:
为github启用https协议,速度更快。
~/.composer/config.json
{
"config": {
"process-timeout": 600,
"preferred-install": "dist",
"github-protocols": ["https"]
}
}
如果之后仍有问题,您还可以清除作曲家的缓存:
rm -rf ~/.composer/cache
您也可以尝试更新git。
讨论了类似的问题Here in laracasts
答案 1 :(得分:2)
这可能是许可问题。也许在某些时候您使用了sudo
,现在这些文件归root
所有。如果您经常使用其他用户进行此操作,现在再次使用该操作,则无法删除文件。
所以试试
ls -l /home/forge/website.com/vendor/symfony/dom-crawler/composer.json
查看哪个用户/组拥有该文件。还要检查该目录的权限;也许它不再可写了?
答案 2 :(得分:0)
只需更新您的作曲家版本
composer self-update