Там нет простого способа извлечения всех версий пакетов из частного хранилища с Satis и зеркало всех зависимостей, а также.
Это связано с тем, что в какой-то момент зеркало будет пытаться извлечь весь контент Packagist.
Чтобы отразить все зависимости ваших пакетов в Satis вы можете выбрать между двумя различными подходами:
A) Добавлением источников хранилища и требует всех собственных пакетов
Satis имеет связи с Packagist отключить, по умолчанию. Поэтому вам нужно добавить Packagist в качестве репозитория. Если вы добавите свои репозитории, не требуя конкретной версии своего пакета, Satis переключится на режим «требовать-все» («Нет явного требования, определенного, разрешающего require-all»). Затем вы попытались получить все версии пакетов вашего репозитория и все версии пакета на Packagist. Boom. Это не удастся. Поэтому для предотвращения режима «требовать-все» требуются определенные пакеты.
- Добавить ваше хранилище
- Установка требует зависимостей (
require-dependencies: true
, require-dev-dependencies: true
)
- Добавить Packagist в качестве источника хранилища (Satis отключает packagist.org по умолчанию)
- Отключить
require-all
флаг
- Требовать все ваши собственные пакеты, чтобы избежать того, что Satis переключится на «требуемый-все» режим
Так что ваш 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 поднять лимит памяти при запуске Satis, как это:
php -d memory_limit=2GB ./bin/satis build satis.json web
B) Установите два Satis экземпляра - один четыре собственных пакетов, один, чтобы отразить все зависимости
Если у вас есть много пакетов в вашем репозитории, но только в нескольких зависимостях, тогда эта оценка поможет вам сэкономить время, чтобы записать требования (например, 100 пакетов в вашей компании, но только 5 зависимостей от сторонних пакетов).
- Добавить ваше хранилище
- Set »требуют, все« извлечь все версии пакета в репозитории
Этот 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