You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置本地Satis仓库后Composer install无法离线运行,如何解决?

Composer离线配置问题:为何仍访问Packagist及完全离线解决方案

我来帮你拆解下问题出现的原因,再一步步教你实现完全离线运行:

问题根源分析

你遇到的Composer仍访问https://packagist.org/packages.json的问题,主要有几个可能的原因:

  • 默认Packagist仓库未被禁用:Composer的默认行为是,如果你配置了自定义仓库,但某个包在自定义仓库里找不到,它会自动 fallback 到官方Packagist查找。哪怕你的Satis仓库已经包含了大部分包,只要有一个依赖缺失,就会触发对Packagist的请求。
  • Satis仓库未覆盖全部依赖:虽然你设置了require-dependencies: true,但如果satis.json的require块没有包含项目所需的所有依赖(包括子依赖),构建后的仓库就会有遗漏,Composer自然会去外部找补。
  • 全局配置干扰:如果你的全局Composer配置(比如~/.composer/composer.json)里还保留了Packagist仓库的设置,可能会覆盖项目级的配置。

完全离线的解决方案

1. 禁用项目的默认Packagist仓库

在你的项目composer.json的repositories数组里,明确添加禁用Packagist的配置,确保Composer只从你的Satis仓库拉取包:

{
  "repositories": [
    {"type": "composer", "url": "http://<some_ip>:9500"},
    {"packagist.org": false} // 关键:禁用官方Packagist
  ],
  "config": {
    "secure-http": false,
    "preferred-install": "dist" // 和Satis配置保持一致,优先用压缩包
  },
  // ... 你的其他项目配置
}

2. 确保Satis仓库包含所有依赖

修改你的satis.json,确保它能拉取到项目所需的全部依赖:

  • 如果你不想手动列出所有包,可以用"require-all": true替代原来的require块(或者补充到require里),这样Satis会拉取所有依赖链上的包:
{
  "name": "private/composer",
  "homepage": "http://<some_ip>:9500",
  "repositories": [{"type": "composer", "url": "https://packagist.org"}],
  "require-dependencies": true,
  "require-all": true, // 拉取所有依赖,确保没有遗漏
  "archive": {
    "directory": "offline",
    "format": "zip"
  },
  "config": {
    "preferred-install": "dist"
  }
}

然后重新运行Satis构建命令,更新本地仓库:

./satis/bin/satis build ./satis.json ./mirror

3. 启用Composer离线模式

当确认Satis仓库已经包含所有需要的包后,你可以强制Composer进入离线模式,彻底不访问网络:

  • 临时离线:运行install命令时加上--offline参数:
composer install --offline
  • 永久离线:在项目composer.json的config里添加"offline": true,以后每次运行命令都会默认离线:
"config": {
  "secure-http": false,
  "preferred-install": "dist",
  "offline": true
}

4. 检查全局Composer配置

避免全局配置干扰项目设置,运行以下命令查看全局配置:

composer config --global --list

如果发现有多余的Packagist仓库配置,用以下命令禁用它:

composer config --global repositories.packagist.org false

按照这些步骤操作后,Composer就会完全依赖你的本地Satis仓库,不会再尝试访问官方Packagist了。

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:21:13