全局镜像配置必须严格执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺一不可:-g为全局、repo.packagist为单数键名、composer为type值、URL须HTTPS且末尾带/,验证需输出{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。

全局镜像配置必须用 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Arch Linux 默认不预装 Composer,你得先手动装好(比如用 curl -sS https://getcomposer.org/installer | php + sudo mv composer.phar /usr/local/bin/composer),但装完不配镜像,composer install 仍会卡在 Loading composer repositories 或超时失败。
真正起效的命令只有一条,漏一个字符都不行:
-
repo.packagist是固定键名,写成repos.packagist、packagist.org或mirror全无效 -
composer是 type 值,必须显式写出,不能省略 - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,少斜杠就 404 - 别加
/packages.json后缀——阿里镜像服务自动路由所有子路径
执行后立刻生效,不需要重启终端或重载 shell 配置。
验证是否真走镜像源,别信“命令跑完了”
Arch Linux 用户权限干净,但容易忽略缓存残留和实际请求域名。执行以下三步才能确认:
- 清缓存:
composer clear-cache——否则旧元数据还在用repo.packagist.org域名重试 - 查配置:
composer config -g repo.packagist,输出必须是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 看真实请求:
composer show monolog/monolog -vvv 2>&1 | grep "Downloading",日志里出现mirrors.aliyun.com才算到位
如果看到 Could not fetch https://mirrors.aliyun.com/composer//p2/...(注意双斜杠),说明 URL 少了末尾 /;如果仍是 repo.packagist.org,大概率是项目根目录下有 composer.json 且含 "repositories" 字段,全局配置被静默覆盖。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
桌面环境(如 KDE/GNOME)下别让 GUI 应用绕过用户配置
Arch 的桌面环境启动的 GUI 程序(比如 IDE 内嵌终端、文件管理器右键菜单调用的 composer)可能不读取当前 shell 的环境变量,导致 ~/.composer/config.json 不被加载。
- 确保
COMPOSER_HOME没被意外设置:运行echo $COMPOSER_HOME,非空则需 unset 或修正路径 - GUI 程序默认继承的是桌面会话的环境,不是你终端里的 bash/zsh 配置——所以不要依赖
~/.bashrc里 export 的东西 - 最稳做法:在 IDE 设置里显式指定 PHP CLI 路径,并确认它调用的是系统级
/usr/local/bin/composer(而非项目内局部 bin)
尤其 VS Code Remote-SSH 连 Arch 主机时,如果卡住,先运行 php -r "print_r(openssl_get_cert_locations());" 看 CA 证书路径是否可读——Arch 的 ca-certificates 包若未安装或未更新,https:// 请求会直接失败,跟镜像无关。
CI/CD 或 AUR 构建中避免污染全局配置
Arch 用户常在 PKGBUILD 里用 composer install 构建 PHP 包,但 composer config -g 会写入当前用户的 ~/.composer/config.json,在多用户或 CI 场景下极易出错。
- 构建脚本应改用临时隔离:
COMPOSER_HOME=/tmp/composer-home-$$ composer install --no-dev --optimize-autoloader - 不要在 PKGBUILD 中执行
composer config -g——它会影响宿主机其他用户 - 若必须用镜像,推荐临时参数:
composer install --repository=https://mirrors.aliyun.com/composer/,单次生效,无副作用
另外注意:Arch 的 php 包默认启用 openssl,但如果你自编译过 PHP 或用了 php-apache 变体,务必确认 extension=openssl 在 php.ini 中已取消注释,否则 HTTPS 镜像请求根本发不出去。

















