Comment obtenir la liste de tous les packages installés ainsi que la version dans composer?

258

Je travaille sur un projet utilisant Symfony 2.1 sur ma machine locale. Je l'ai téléchargé sur mon serveur mais lorsque j'essaie d'installer les bundles de fournisseurs à l'aide de Composer, je reçois beaucoup d'erreurs de dépendance. Vraisemblablement, cela a quelque chose à voir avec la dernière version de Symfony qui vient d'être publiée et mon composer.jsonfichier ne spécifiant pas les numéros de version exacts.

Existe-t-il un moyen d'afficher rapidement les numéros de version de tout sur ma machine locale?

Voici mon fichier composer.json (qui a bien fonctionné jusqu'à il y a quelques jours):

{
    "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
la source

Réponses:

538

Vous pouvez courir composer show -i(court pour --installed).

Dans la dernière version, utilisez simplement composer show.

Les -ioptions sont obsolètes.

Vous pouvez également utiliser l' globalinstalation du compositeur:composer global show

Seldaek
la source
écrivez ceci toute personne essayant d'obtenir ceci en utilisant composer.phar et php
Yashrajsinh Jadeja
9
L'option '-i' est désormais déconseillée. composer showrépertorie le package installé par défaut.
herve
Et cela va sans dire qui composer show --helpimprime toutes les options disponibles.
Gerard Roche
53

Pour répertorier les packages de compositeur installés globalement:

composer global show -i
Ivan
la source
20

Liste des dépendances installées:

  • Plat: composer show -i
  • Arbre: composer show -i -t

-icourt pour --installed.

-tcourt pour --tree.

réf: https://getcomposer.org/doc/03-cli.md#show

vikyd
la source
1
Je vous remercie. J'ai aussi trouvé le -tdrapeau très utile
Oniya Daniel
12

Le comportement de cette commande a été modifié afin que vous n'ayez pas à passer l' -ioption:

[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.
Bobine
la source
10

Si vous ne voulez vérifier la version que pour une seule, vous pouvez le faire

composer show -- twig/twig

Notez que seuls les packages installés sont maintenant affichés par défaut et que l'option installée est désormais obsolète.

Jean-Luc Barat
la source
6

La réponse d'Ivan ci-dessus est bonne:

composer global show -i

Ajout d'informations: si vous obtenez un message un peu comme:

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

... vous n'avez peut-être pas encore installé de paquet. Si c'est le cas, vous pouvez ignorer la partie suivante du message contenant:

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

... comme une fois que vous avez installé un paquet, le message disparaîtra.

marque
la source
2

Si vous souhaitez installer Symfony2.2, vous pouvez voir la modification complète dans votre composer.json sur le blog Symfony .

Mettez simplement à jour votre fichier en fonction de cela et exécutez composer updateaprès cela. Cela installera toutes les nouvelles dépendances et Symfony2.2 sur votre projet.


Si vous ne souhaitez pas mettre à jour vers Symfony2.2, mais que vous avez des erreurs de dépendance, vous devez les publier, afin que nous puissions vous aider davantage.

Wouter J
la source
Il s'avère que les problèmes que j'avais rencontrés étaient dus aux incompatibilités entre le groupe d'utilisateurs FOS 2x et le groupe d'utilisateurs de sonates
Dan
1
@ Dan, je pense que c'est parce que le SonataUserBundle n'a pas été configuré correctement. Cela a été corrigé hier.
Wouter J
0

Existe-t-il un moyen de l'obtenir via $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Sudo
la source