Composer安装无法删除文件
Composer install cannot delete files
我正在尝试 运行 composer 安装以更新我的生产服务器上的依赖项,但我继续收到以下错误(这恰好发生在 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:
为什么会这样?我可以手动删除 forge 服务器上的整个 vendor 文件夹并重新部署所有依赖项而不损害它吗?
问题可能是因为作曲家超时了。所以你可能需要增加作曲家的时间。
您可以采取以下措施来提高速度:
- 增加 composer process-timeout(默认 300)(如果以下设置可以帮助您提高速度,但不会造成伤害,则不是真正需要)
- 将 dist 设置为首选安装类型。
为 github 启用 https 协议,速度更快。
~/.composer/config.json
{
"config": {
"process-timeout": 600,
"preferred-install": "dist",
"github-protocols": ["https"]
}
}
如果之后还是有问题,也可以清空composer的缓存:
rm -rf ~/.composer/cache
您也可以尝试更新 git。
讨论了类似的问题Here in laracasts
可能是权限问题。也许在某些时候您使用了 sudo
,而文件现在归 root
所有。如果您通常使用另一个用户进行此操作,现在再次使用该用户,则文件当然无法删除。
所以试试
ls -l /home/forge/website.com/vendor/symfony/dom-crawler/composer.json
查看哪个 user/group 拥有该文件。还要检查该目录的权限;也许它不再可写了?
只需更新您的作曲家版本
composer self-update
我正在尝试 运行 composer 安装以更新我的生产服务器上的依赖项,但我继续收到以下错误(这恰好发生在 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:
为什么会这样?我可以手动删除 forge 服务器上的整个 vendor 文件夹并重新部署所有依赖项而不损害它吗?
问题可能是因为作曲家超时了。所以你可能需要增加作曲家的时间。
您可以采取以下措施来提高速度:
- 增加 composer process-timeout(默认 300)(如果以下设置可以帮助您提高速度,但不会造成伤害,则不是真正需要)
- 将 dist 设置为首选安装类型。
为 github 启用 https 协议,速度更快。
~/.composer/config.json { "config": { "process-timeout": 600, "preferred-install": "dist", "github-protocols": ["https"] } }
如果之后还是有问题,也可以清空composer的缓存:
rm -rf ~/.composer/cache
您也可以尝试更新 git。
讨论了类似的问题Here in laracasts
可能是权限问题。也许在某些时候您使用了 sudo
,而文件现在归 root
所有。如果您通常使用另一个用户进行此操作,现在再次使用该用户,则文件当然无法删除。
所以试试
ls -l /home/forge/website.com/vendor/symfony/dom-crawler/composer.json
查看哪个 user/group 拥有该文件。还要检查该目录的权限;也许它不再可写了?
只需更新您的作曲家版本
composer self-update