答案是先检查报错路径的属主,若vendor/属主为root则执行sudo chown -r $user:$user vendor/修复所有权,禁用chmod 777;path仓库需同步修复源目录归属或启用"symlink": false。

vendor目录创建失败,先看报错路径再查属主
报错里出现 file_put_contents(/path/to/vendor/autoload.php) 或 mkdir(): Permission denied,说明 Composer 卡在 vendor/ 目录创建或写入环节。这不是权限位(rwx)不够,而是该路径的属主(owner)不是当前用户。直接运行:ls -ld vendor/
如果输出第一列含 root root,问题就锁定了——vendor/ 被 sudo composer install 污染过。
修复 vendor 所有权,别碰 chmod -R 777
用 chmod -R 777 vendor/ 不仅无效,还会让 CI 工具拒绝构建、Git 记录错误的文件模式(100777)、后续 composer dump-autoload 静默失败。
唯一可靠动作是归还控制权:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
sudo chown -R $USER:$USER vendor/(末尾斜杠不能少) - 如果
composer.lock也显示root root,一并加入:sudo chown -R $USER:$USER vendor/ composer.lock - 修复后立刻验证:
composer install --no-scripts;成功后再补composer run-script post-install-cmd
path 类型仓库导致 symlink 失败怎么办
当 composer.json 里用了 "type": "path",Composer 默认尝试软链接本地包进 vendor/。若源目录(如 /home/user/mylib)属主是 root,就会报 Could not symlink ... Permission denied。
必须同步修复源路径归属:
-
ls -ld /home/user/mylib→ 若属主为root,执行sudo chown -R $USER:$USER /home/user/mylib - 临时绕过:在对应 repository 块中加
"options": {"symlink": false},强制复制而非链接 - 注意:启用
"symlink": false后,composer update不会自动同步本地变更,需手动cp -r
Windows 和 WSL 下 vendor 写入失败的特殊处理
Windows 下报 Access is denied,大概率不是权限问题,而是防病毒软件拦截了 .bat 文件生成,或终端(CMD/PowerShell)未正确识别 PATH 中的全局 bin。
WSL 下挂载 Windows 分区(如 /mnt/c/project)时,Linux 权限模型失效,chown 无效。
应对方式:
- Windows:改用 Git Bash 运行
composer install;或加参数跳过脚本:composer install --no-scripts - WSL:把项目移到原生路径(如
~/projects/myapp),避免用/mnt/c/ - 若已污染,删掉
vendor/和composer.lock,再用当前用户重装 —— 比硬修权限更干净










