Come ottenere l'elenco di tutti i pacchetti installati insieme alla versione in compositore?


258

Ho lavorato su un progetto usando Symfony 2.1 sul mio computer locale. L'ho caricato sul mio server ma quando provo ad installare i bundle del fornitore usando Composer, ricevo molti errori di dipendenza. Presumibilmente questo ha a che fare con l'ultima versione di Symfony appena rilasciata e il mio composer.jsonfile non specifica i numeri esatti di versione.

Esiste un modo per visualizzare rapidamente i numeri di versione di tutto sul mio computer locale?

Ecco il mio file composer.json (che ha funzionato bene fino a pochi giorni fa):

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.1.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.0.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*",
        "jms/security-extra-bundle": "1.2.*",
        "jms/di-extra-bundle": "1.1.*",
        "sonata-project/admin-bundle": "*",
        "sonata-project/cache-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "stof/doctrine-extensions-bundle": "1.1.x-dev",
        "sonata-project/user-bundle": "dev-master",
        "sonata-project/easy-extends-bundle": "dev-master",
        "friendsofsymfony/user-bundle": "2.0.x-dev",
        "friendsofsymfony/jsrouting-bundle": "*",
        "liip/imagine-bundle": "*",
        "simplethings/form-extra-bundle": "dev-master",
        "antimattr/google-bundle": "dev-master",
        "doctrine/doctrine-fixtures-bundle": "dev-master",
        "genemu/form-bundle": "2.1.*",
        "behat/behat":                  "2.4.*@stable",
        "behat/mink":                   "1.4.*@stable",
        "behat/symfony2-extension":     "*@stable",
        "behat/mink-extension":         "*@stable",
        "behat/mink-selenium2-driver":  "*@stable",
        "behat/mink-browserkit-driver":  "*",
        "liip/functional-test-bundle": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web"
    },
    "config": {
        "bin-dir": "bin/"
    }
}

Risposte:


538

Puoi correre composer show -i(abbreviazione di --installed).

Nell'ultima versione basta usare composer show.

Le -iopzioni sono state deprecate.

Puoi anche usare l' globalinstallazione di compositore:composer global show


scrivi questo chiunque cerchi di ottenerlo usando composer.phar e php
Yashrajsinh Jadeja,

9
L'opzione '-i' è ora obsoleta. composer showelenca il pacchetto installato per impostazione predefinita.
Herve

E probabilmente va da sé che composer show --helpstampa tutte le opzioni disponibili.
Gerard Roche,

53

Per elencare i pacchetti del compositore installati a livello globale:

composer global show -i


12

Il comportamento di questo comando è stato modificato in modo da non dover passare l' -iopzione:

[10:19:05] coil@coil:~/workspace/api$ composer show -i
You are using the deprecated option "installed". 
Only installed packages are shown by default now. 
The --all option can be used to show all packages.

10

Se vuoi solo verificare la versione per una sola, puoi farlo

composer show -- twig/twig

Si noti che ora vengono visualizzati solo i pacchetti installati per impostazione predefinita e l'opzione installata è ora obsoleta.


6

La risposta di Ivan sopra è buona:

composer global show -i

Informazioni aggiunte: se ricevi un messaggio in qualche modo simile a:

Composer could not find a composer.json file in ~/.composer

... potresti non avere ancora pacchetti installati. In tal caso, puoi ignorare la parte successiva del messaggio contenente:

... please create a composer.json file ...

... poiché una volta installato un pacchetto il messaggio sparirà.


2

Se vuoi installare Symfony2.2, puoi vedere la modifica completa nel tuo composer.json blog di Symfony .

Basta aggiornare il file in base a quello ed eseguirlo composer updatedopo. Ciò installerà tutte le nuove dipendenze e Symfony2.2 sul tuo progetto.


Se non vuoi aggiornare a Symfony2.2, ma hai errori di dipendenza, dovresti pubblicarli, così possiamo aiutarti ulteriormente.


Risulta che i problemi che stavo riscontrando erano le incompatibilità tra il bundle di utenti FOS 2x e il bundle di utenti sonata
Dan

1
@Dan, penso che sia stato perché SonataUserBundle non è stato configurato nel modo corretto. È stato risolto ieri.
Wouter J

0

C'è un modo per ottenerlo tramite $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

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.