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

Symfony Fork Bundle后Composer更新报错,需发布至Packagist吗?

关于Composer使用Fork仓库的问题解答

问题回顾

我Fork了egeloen/ivory-google-map仓库到自己的GitHub地址,然后修改了项目的composer.json,把依赖改成了spinoza123/ivory-google-map: dev-master,但执行composer update时出现错误:

[InvalidArgumentException] Could not find a matching version of package spinoza123/google-map. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability (stable)

想请教三个问题:是否必须将Fork的包发布到Packagist?如果是,是否免费?该如何操作?


解答

1. 是否必须发布到Packagist?

不一定。有两种可行的方式来使用你Fork的仓库:

  • 方式一:发布到Packagist(适合需要分享给他人使用的场景)
  • 方式二:直接在项目的composer.json中指定你的Fork仓库地址(适合自己私人使用的场景)

你之前出错的核心原因是:你修改了依赖的包名为spinoza123/ivory-google-map,但这个包名既没有在Packagist上注册,你也没告诉Composer去哪里找这个包。而实际上,你Fork的仓库里的composer.json的name字段还是egeloen/ivory-google-map,所以Composer找不到对应的包。

2. 如果发布到Packagist,是否免费?

完全免费!Packagist是开源的Composer包仓库,所有公开的GitHub/GitLab仓库都可以免费提交。

3. 如何发布到Packagist?

操作步骤很简单:

  • 首先,访问Packagist官网,用你的GitHub账号登录(直接授权即可,无需单独注册)
  • 点击页面顶部的「Submit」按钮,输入你Fork后的仓库地址:https://github.com/spinoza123/ivory-google-map
  • 点击「Check」,Packagist会自动校验仓库中的composer.json配置,确认无误后点击「Submit」完成发布
  • (可选但推荐)设置自动更新:在Packagist的包详情页,找到「GitHub Service Hook」的地址,然后到你GitHub仓库的「Settings → Webhooks」中添加这个地址,触发事件选择「Push events」,这样你每次往Fork仓库推代码,Packagist都会自动同步更新

4. 替代方案:无需发布到Packagist直接使用Fork仓库

如果你只是自己使用这个Fork包,不需要分享给他人,更简单的方式是在项目的composer.json中添加repositories字段,指定你的Fork仓库地址,同时保持依赖的包名为原包名:

修改后的composer.json关键部分如下:

{
  ...
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/spinoza123/ivory-google-map"
    }
  ],
  "require": {
    ...
    "egeloen/ivory-google-map": "dev-master"
  },
  ...
}

添加后执行composer update egeloen/ivory-google-map,Composer就会从你的Fork仓库拉取代码,而不是原作者的仓库。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:27:47