Композитор Установить .tar.gz

1519
DanFromGermany

Попытка установить node.js через composer (для автоматизации).

"repositories": [ "type": "package", "package": { "name": "nodejs/nodejs", "version": "0.12.6", "dist": { "type": "gzip", "url": "https://nodejs.org/dist/v0.12.6/node-v0.12.6-linux-x64.tar.gz" } } } ], "require": { "nodejs/nodejs": "0.12.*" } 

Проблема в том, что я могу использовать архив tar или gzip распаковать его.

Available types: git, svn, hg, perforce, zip, rar, tar, gzip, phar, file. 

Пакет nodejs, очевидно, использует оба .

Как я могу распаковать .tar.gzупакованные файлы, используя композитор?

Я знаю, что я мог бы использовать post-update-cmdи post-install-cmdкоманду и вручную выполнить распакуйте / разархивировать, но это не так, как композитор Мента быть.

3
Разве он не использует tar с флагом -z? Hennes 8 лет назад 0
При использовании «tar» ничего не распаковывается, когда я использую «gzip», он не распаковывается. DanFromGermany 8 лет назад 0
'tar' только что установил и распаковал tar.gz из архива кодов Google. Хорошая вещь - больше нет доступа к репо в коде Google, и некоторые проекты еще никуда не переместились! Joey T 7 лет назад 0
Тот же вариант использования для установки редактора Ace через композитор с https://github.com/ajaxorg/ace/archive/v1.2.6.tar.gz Xavi Montero 7 лет назад 0

1 ответ на вопрос

4
A.B. Carroll

Опция «tar» понимает как голые .tar, так .tar.gzи даже.tar.bz2 так, просто указывает, "type": "tar"и нет необходимости указывать "gz". Это вычисляет декомпрессию самостоятельно.

Я столкнулся с этой проблемой, а также был в замешательстве, пытаясь автоматически развернуть приложение php, использующее проприетарную библиотеку. Однако я попробовал только «tar», это сработало! Моя repositoriesJSON-часть выглядит немного глупо из-за необычной структуры архива 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класса композитором .

Похожие вопросы