¿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/"
    }
}

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


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


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.

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.


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á.


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.


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 ()

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.