¿Cómo obtener una lista de todos los paquetes instalados junto con la versión en Composer?

258

He estado trabajando en un proyecto usando Symfony 2.1 en mi máquina local. Lo he subido a mi servidor, pero cuando intento instalar los paquetes de proveedores con Composer, recibo muchos errores de dependencia. Presumiblemente, esto tiene algo que ver con la última versión de Symfony que acaba de ser lanzada y mi composer.jsonarchivo no especifica números de versión exactos.

¿Hay alguna forma de que pueda mostrar rápidamente los números de versión de todo en mi máquina local?

Aquí está mi archivo composer.json (que funcionó bien hasta hace unos días):

{
    "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/"
    }
}
Dan
fuente

Respuestas:

538

Puedes correr composer show -i(abreviatura de --installed).

En la última versión solo use composer show.

Las -iopciones han quedado en desuso.

También puedes usar la globalinstalación de composer:composer global show

Seldaek
fuente
escribe esto cualquiera que intente obtener esto usando composer.phar y php
Yashrajsinh Jadeja
9
La opción '-i' ahora está en desuso. composer showEnumera el paquete instalado de forma predeterminada.
herve
Y probablemente no hace falta decir que composer show --helpimprime todas las opciones disponibles.
Gerard Roche
53

Para enumerar los paquetes de compositor instalados globalmente:

composer global show -i
Ivan
fuente
20

Lista de dependencias instaladas:

  • Plano: composer show -i
  • Árbol: composer show -i -t

-iabreviatura de --installed.

-tabreviatura de --tree.

ref: https://getcomposer.org/doc/03-cli.md#show

vikyd
fuente
1
Gracias. También encontré la -tbandera muy útil
Oniya Daniel
12

El comportamiento de este comando se modificó para que no tenga que pasar la -iopción:

[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.
Bobina
fuente
10

Si solo desea verificar la versión de una sola, puede hacerlo

composer show -- twig/twig

Tenga en cuenta que solo los paquetes instalados se muestran por defecto ahora, y la opción instalada ahora está en desuso.

Jean-Luc Barat
fuente
6

La respuesta de Ivan anterior es buena:

composer global show -i

Información agregada: si recibe un mensaje similar a:

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

... es posible que todavía no tenga paquetes instalados. Si es así, puede ignorar la siguiente parte del mensaje que contiene:

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

... ya que una vez que instales un paquete, el mensaje desaparecerá.

marca
fuente
2

Si desea instalar Symfony2.2, puede ver el cambio completo en su composer.json blog de Symfony .

Simplemente actualice su archivo de acuerdo a eso y ejecútelo composer updatedespués de eso. Eso instalará todas las nuevas dependencias y Symfony2.2 en su proyecto.


Si no desea actualizar a Symfony2.2, pero tiene errores de dependencia, debe publicarlos para que podamos ayudarlo más.

Wouter J
fuente
Resulta que los problemas que tenía eran las incompatibilidades entre el paquete de usuario de FOS 2x y el paquete de usuario de sonata
Dan
1
@Dan, creo que fue porque SonataUserBundle no se configuró de la manera correcta. Eso fue arreglado ayer.
Wouter J
0

¿Hay alguna manera de obtenerlo a través de $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Sudo
fuente