Опция «tar» понимает как голые .tar
, так .tar.gz
и даже.tar.bz2
так, просто указывает, "type": "tar"
и нет необходимости указывать "gz"
. Это вычисляет декомпрессию самостоятельно.
Я столкнулся с этой проблемой, а также был в замешательстве, пытаясь автоматически развернуть приложение php, использующее проприетарную библиотеку. Однако я попробовал только «tar», это сработало! Моя repositories
JSON-часть выглядит немного глупо из-за необычной структуры архива tar, но она работает. Это выглядело примерно так:
"repositories": [ { "type": "package", "package": { "name": "RocketShipIt/RocketShipIt", "version": "1.4.9.3", "dist": { "url": "https://secret-deployment-server/RocketShipIt.tar.gz", "type": "tar" }, "autoload": { "files": [ "RocketShipIt/RocketShipIt.php" ], "psr-0": { "RocketShipIt\\": "RocketShipIt/RocketShipIt/RocketShipIt/" } } } } ]
В документации Composer API (не в руководстве для конечного пользователя) вы можете найти некоторые сведения о том .tar
, что .tar.gz
и .tar.bz2
все они официально поддерживаются "type": "tar"
. По-видимому, это обрабатывается внутри Composer\Downloader\TarDownloader
класса композитором .