A opção "tar" compreende nus .tar
, .tar.gz
e até .tar.bz2
, portanto, basta especificar "type": "tar"
e não há necessidade de especifique o "gz"
. Ele descobre a descompressão por conta própria.
Eu me deparei com esse problema e também fiquei inicialmente confuso, tentando implantar automaticamente um aplicativo php que usava uma biblioteca proprietária. No entanto eu tentei apenas "tar", funcionou! Minha parte repositories
JSON parece um pouco boba devido à estrutura incomum do arquivo tar, mas funciona. Parecia algo assim:
"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/"
}
}
}
}
]
Você pode encontrar, de maneira um tanto obscura, a documentação da Composer API (não o usuário final manual) que os .tar
, .tar.gz
e .tar.bz2
são todos os três suportados oficialmente por "type": "tar"
. Aparentemente, ele é tratado internamente pelo compositor pela classe Composer\Downloader\TarDownloader
.