compositore: come trovare la versione esatta di un pacchetto?


103

Supponiamo che io stia scrivendo una libreria A, che dipende da un'altra libreria, monologo per esempio.

Voglio installare l'ultima versione di monolog, quindi lo metto in composer.json:

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

Poi corro $ php composer.phar install.

Mi aspettavo di trovare la versione installata, all'interno di composer.lock, ma non è lì:

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

Ho bisogno della versione perché voglio collegare la mia libreria a un insieme specifico di versioni, ad esempio: se trovo che la versione è 1.3.5, nel mio composer.json vorrei mettere qualcosa del genere:

    "require": {
        "monolog/monolog": "1.3.*"
    }

Qualche idea?

Risposte:


170

So che è una vecchia domanda, ma ...

composer.phar show

Mostrerà tutti i pacchetti attualmente installati e le relative informazioni sulla versione. (Questo era mostrato nelle versioni precedenti di Composer solo quando si utilizzava l' -iopzione ora deprecata .)

Per vedere maggiori dettagli, specifica anche il nome del pacchetto:

composer.phar show monolog/monolog

Questo mostrerà molte cose, incluso l'hash MD5 di commit, l'URL di origine, il tipo di licenza, ecc.


11
php composer.phar show -ae php composer.phar show package/namesono anche entrambi utili.
vescovo

1
Per i dev-masterpacchetti, questo è utile, perché mostra anche l'hash del commit. Quindi devi andare su GitHub, trovare l'hash di commit, controllare la data e quindi trovare il tag con la data più vicina prima di quella, per scoprire veramente quale "versione" stai utilizzando
andrewtweber

2
può anche essere trovato nel file composer.lock.
Hafiz

41

Puoi usare lo spettacolo del compositore in questo modo:

composer show package/name

13

Se sei interessato solo a ottenere l'output come numero di versione del pacchetto come: 1.7.5 o 1.x-dev o dev-master .

Snippet della console Linux:

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

5

Tecnicamente "dev-master" è la versione esatta che hai finito per usare lì. È il ramo di sviluppo e quindi l'ultima versione.

Il posto migliore per cercare le versioni disponibili per i pacchetti del compositore è Packagist poiché è il posto in cui il compositore carica le versioni da quando installi i pacchetti. Le versioni monolog sono elencate su http://packagist.org/packages/monolog/monolog .


2

Puoi usare mostra tutto, specialmente quando non hai il file package.json, ottieni i pacchetti disponibili da packagist.org:

composer show "monolog/monolog" --all

Inoltre è possibile specificare le versioni

composer show "monolog/monolog" 1.* --all
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.