Composer 找不到我在自定义包的 "repository" 设置中声明的分叉存储库
Composer does not find my forked repository declared on a custom package's "repository" settings
我目前正在开发自己的 composer 包,但他们未能尝试执行 composer update
。
这是我的根composer.json:
{
...
"repositories": {
"bar": {
"type": "path",
"url": "packages/pinnokkio/bar",
"options": {
"symlink": true
}
}
},
"require": {
"php": "^8.0",
...
"pinnokkio/bar": "@dev"
},
...
}
这意味着,应该安装软件包 pinnokkio/bar。包 pinnokkio/bar 需要 pinnokkio/foo 作为依赖。
composer.json pinnokkio/bar:
{
"name": "pinnokkio/bar",
...
"repositories": {
"foo": {
"type": "path",
"url": "../foo",
"options": {
"symlink": true
}
}
},
"require": {
"pinnokkio/foo": "@dev"
},
...
}
composer.json pinnokkio/foo:
{
"name": "pinnokkio/foo",
"require": {
"php": "^8.0"
},
...
}
总而言之,在我的主要 composer.json 中,我将需要一个需要 pinnokkio/foo[= 的包41=] 到 运行。进一步即将推出的软件包都需要 pinnokkio/foo 才能 运行,但不幸的是,我在尝试执行 composer update
时遇到此错误。所有包都位于 <root>/packages/
:
Problem 1
- pinnokkio/bar[dev-feature-modules, dev-master] require pinnokkio/foo@dev -> could not be found in any version, there may be a typo in the package nam
e.
- Root composer.json requires pinnokkio/bar@dev -> satisfiable by pinnokkio/bar[dev-feature-modules, dev-master].
repositories
密钥仅在根 composer.json
上读取。
如 docs 中所述:
Repositories are not resolved recursively. You can only add them to your main composer.json. Repository declarations of dependencies' composer.jsons are ignored.
递归解析 repositories
会出现问题。如果多个包声明了包含相同包的不同存储库,composer 如何知道使用哪个?
此外,这将为依赖项打开大门,通过为已知包提供备用存储库来劫持您的系统,并且您最终会在系统中安装不受信任的包。
如果您从自定义存储库安装多个包,则需要在根配置文件中声明所有自定义存储库。
我目前正在开发自己的 composer 包,但他们未能尝试执行 composer update
。
这是我的根composer.json:
{
...
"repositories": {
"bar": {
"type": "path",
"url": "packages/pinnokkio/bar",
"options": {
"symlink": true
}
}
},
"require": {
"php": "^8.0",
...
"pinnokkio/bar": "@dev"
},
...
}
这意味着,应该安装软件包 pinnokkio/bar。包 pinnokkio/bar 需要 pinnokkio/foo 作为依赖。
composer.json pinnokkio/bar:
{
"name": "pinnokkio/bar",
...
"repositories": {
"foo": {
"type": "path",
"url": "../foo",
"options": {
"symlink": true
}
}
},
"require": {
"pinnokkio/foo": "@dev"
},
...
}
composer.json pinnokkio/foo:
{
"name": "pinnokkio/foo",
"require": {
"php": "^8.0"
},
...
}
总而言之,在我的主要 composer.json 中,我将需要一个需要 pinnokkio/foo[= 的包41=] 到 运行。进一步即将推出的软件包都需要 pinnokkio/foo 才能 运行,但不幸的是,我在尝试执行 composer update
时遇到此错误。所有包都位于 <root>/packages/
:
Problem 1
- pinnokkio/bar[dev-feature-modules, dev-master] require pinnokkio/foo@dev -> could not be found in any version, there may be a typo in the package nam
e.
- Root composer.json requires pinnokkio/bar@dev -> satisfiable by pinnokkio/bar[dev-feature-modules, dev-master].
repositories
密钥仅在根 composer.json
上读取。
如 docs 中所述:
Repositories are not resolved recursively. You can only add them to your main composer.json. Repository declarations of dependencies' composer.jsons are ignored.
递归解析 repositories
会出现问题。如果多个包声明了包含相同包的不同存储库,composer 如何知道使用哪个?
此外,这将为依赖项打开大门,通过为已知包提供备用存储库来劫持您的系统,并且您最终会在系统中安装不受信任的包。
如果您从自定义存储库安装多个包,则需要在根配置文件中声明所有自定义存储库。