更新/安装Composer包时遭遇「无法删除」错误求助
在Laravel项目中执行Composer安装或更新操作时,出现类似以下文件锁定错误:
"Could not delete C:\Users.../vendor/composer/bafbb53e\CarbonPHP-carbon-1e9d506\src\Carbon\Lang\nan_TW@latin.php:This can be due to an antivirus or the Windows Search Indexer locking the file while they are analyzed"
即使清除composer.lock、清空缓存、删除vendor文件夹、关闭杀毒软件后仍出现不同文件的锁定错误,可尝试以下解决方法:
暂停Windows搜索索引服务
按下Win+R输入services.msc打开服务管理器,找到Windows Search服务,右键选择「停止」,完成Composer操作后再重启该服务。关闭Windows Defender受控文件夹访问
进入Windows安全中心→病毒和威胁防护→管理设置,找到「受控文件夹访问」并关闭,操作完成后可按需重新开启。带
--no-plugins参数执行Composer命令
部分插件可能在操作中锁定文件,执行以下命令规避:composer install --no-plugins # 更新命令使用: composer update --no-plugins清理Composer临时缓存目录
手动删除C:\Users\[你的用户名]\AppData\Local\Composer下的所有缓存内容,再重新执行Composer操作。以管理员身份运行终端
右键选择命令提示符或PowerShell,点击「以管理员身份运行」,再执行Composer相关命令,避免权限不足导致的文件锁定。排查占用文件的进程
按下Win+R输入resmon打开资源监视器,在CPU选项卡的「关联句柄」中搜索被锁定的文件名,找到对应进程并结束后再重试操作。
内容的提问来源于stack exchange,提问作者Gukkey

