在 Ubuntu 上使用 Composer 时“卡住”是非常常见的问题,通常不是程序死掉,而是在等网络或资源。下面按最常见原因给你梳理一下,并给出对应解决办法。
Composer 默认从 repo.packagist.org 和 GitHub 拉取数据,国内经常卡在:
Loading composer repositories with package informationUpdating dependenciesgit clonecomposer config -g repos.packagist composer https://mirrors.aliyun.com/composer/
或(官方中国镜像):
composer config -g repos.packagist composer https://packagist.phpcomposer.com
查看是否生效:
composer config -g repos.packagist
composer config -g github-oauth.github.com your_token
Token 在 GitHub → Settings → Developer settings 生成。
如果依赖是 git@github.com:xxx/xxx.git:
composer config -g github-protocols https
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
添加到 GitHub
小内存机器(1G 或更低)容易卡在:
php composer.phar update
php -d memory_limit=-1 composer.phar update
或限制并行:
COMPOSER_PROCESS_TIMEOUT=0 composer update
composer self-update
composer clearcache
composer update -vvv
你会看到是:
mkdir test && cd test
composer init -n
composer require monolog/monolog -vvv
如果这里也卡 → 网络问题
如果不卡 → 你项目 composer.json 有问题
✅ 是否国内服务器
✅ 是否配置镜像
✅ 是否有 GitHub Token
✅ 是否内存不足
✅ 是否 SSH 卡住
✅ 是否 composer update -vvv 看日志
如果你愿意,可以把卡住时的最后几行输出(尤其是 -vvv 的)贴出来,我可以直接帮你定位是哪一环卡住的。