有没有简单的方法来获取与赛帝的私人仓库的所有包版本和镜像所有的依赖关系为好。
这是由于这样的事实,即在某一点上镜会最终要的Packagist全部内容抓取。
要反映在赛帝的包都依赖你可以在两种不同方法之间做出决定:
A)添加存储库来源,并要求所有自己的包
赛帝有Packagist通过禁用连接默认。所以你必须添加Packagist作为存储库。如果您添加存储库而不需要特定版本的软件包,则Satis将切换到“全部需求”模式(“无需明确要求定义,启用要求全部”)。然后,这将尝试在Packagist上获取全部存储库的版本和全部包版本。繁荣。这将失败。因此需要特定的软件包来防止“全部需要”模式。
- 添加您的仓库
- 设置需要依赖(
require-dependencies: true
,require-dev-dependencies: true
)
- 添加Packagist作为仓库源(赛帝禁用packagist.org默认)
- 禁用
require-all
标志
- 要求所有的自己的包,以避免赛帝切换到»要求,所有«模式
所以你satis.json应该是这样的:
{
"name": "My satis repository",
"homepage": "http://satis.example.com",
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.org/"
},
"my-repo": {
"url": "[email protected]:<user>/<repository>.git",
"type": "vcs"
}
},
"require": {
"mycompany/package-foo": "^1.1",
"mycompany/package-bar": "*"
},
"require-all": false,
"require-dependencies": true,
"require-dev-dependencies": true,
"archive": {
"directory": "dist",
"format": "zip",
"skip-dev": true
}
}
来源:https://github.com/composer/satis/issues/296
BTW:从多个仓库抓取所有这些依赖可能导致内存限制错误。Composer suggests像这样跑赛帝时提高内存限制:
php -d memory_limit=2GB ./bin/satis build satis.json web
B)安装两个赛帝实例 - 四位一体的你自己的包,一个镜像所有依赖
如果你有很多包在您的存储库中,但只有一些依赖项,那么这个评估将为您节省一些时间来记录需求(例如,公司中的100个包,但仅包含5个与第三方包的依赖关系)。
- 添加您的仓库
- 集»要求,所有«在你的仓库,以获取所有包版本
这satis.json应该是这样的:
{
"name": "My package repository",
"homepage": "http://packages.example.com",
"repositories": {
"my-repo": {
"url": "[email protected]:<user>/<repository>.git",
"type": "vcs"
}
},
"require-all": true,
"archive": {
"directory": "dist",
"format": "zip",
"skip-dev": true
}
}
这不会获取依赖关系。这些需要在另一个Satis实例中手动添加。
- 添加另一个Satis.json镜像所有依赖
- 添加Packagist作为仓库
- 要求所有所需依赖软件包只
这satis.json应该是这样的:
{
"name": "My mirror repository",
"homepage": "http://mirror.example.com",
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.org/"
}
},
"require": {
"acme/some-package-foo": "*",
"johndoe/some-package-bar": "*"
},
"require-all": false,
"require-dependencies": true,
"require-dev-dependencies": true,
"archive": {
"directory": "dist",
"format": "zip",
"skip-dev": true
}
}
请注意,镜像全部依赖关系需要很长很长的时间。
来源:http://tech.m6web.fr/composer-installation-without-github.html