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


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 usando Composer, recibo muchos errores de dependencia. Presumiblemente esto tiene que ver con la última versión de Symfony que acaba de ser lanzada y mi archivo composer.json no especifica los números de versión exactos.

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

Aquí está mi compositor.archivo json (que funcionaba 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/"
    }
}
 176
Author: Nic Wortel, 2013-03-03

7 answers

Puede ejecutar composer show -i (abreviatura de --installed).

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

Las opciones -i han quedado obsoletas.

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

 374
Author: Seldaek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-16 00:20:32

Para listar los paquetes de composer instalados globalmente:

composer global show -i
 37
Author: Ivan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-03 11:01:08

Lista las dependencias instaladas:

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

-i abreviatura de --installed.

-t abreviatura de --tree.

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

 10
Author: vikyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-12 09:30:23

El comportamiento de este comando ha sido modificado para que no tenga que pasar la opción -i:

[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.
 9
Author: COil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-22 08:21:58

La respuesta de Iván arriba es buena:

composer global show -i

Información añadida: si recibes un mensaje similar a:

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

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

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

As como una vez que instale un paquete, el mensaje desaparecerá.

 6
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-09 18:31:19

Si solo desea verificar la versión para una sola, puede hacer

composer show -- twig/twig

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

 5
Author: Jean-Luc Barat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-18 12:47:34

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

Simplemente actualice su archivo de acuerdo con eso y ejecute composer update después de eso. Eso instalará todas las dependencias nuevas y Symfony2.2 en su proyecto.


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

 2
Author: Wouter J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-03 12:30:17