Wie erhalte ich eine Liste aller installierten Pakete zusammen mit der Version in Composer?


258

Ich habe mit Symfony 2.1 auf meinem lokalen Computer an einem Projekt gearbeitet. Ich habe es auf meinen Server hochgeladen, aber wenn ich versuche, die Hersteller-Bundles mit Composer zu installieren, werden viele Abhängigkeitsfehler angezeigt. Vermutlich hat dies damit zu tun, dass die neueste Version von Symfony gerade veröffentlicht wird und meine composer.jsonDatei keine genauen Versionsnummern enthält.

Gibt es eine Möglichkeit, die Versionsnummern von allem auf meinem lokalen Computer schnell anzuzeigen?

Hier ist meine composer.json-Datei (die bis vor ein paar Tagen einwandfrei funktioniert hat):

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

Antworten:


536

Sie können laufen composer show -i(kurz für --installed).

In der neuesten Version einfach verwenden composer show.

Die -iOptionen sind veraltet.

Sie können auch die globalInstallation des Komponisten verwenden:composer global show


Schreiben Sie dies jedem, der versucht, dies mit composer.phar und php zu erreichen
Yashrajsinh Jadeja

9
Die Option '-i' ist jetzt veraltet. composer showlistet standardmäßig das installierte Paket auf.
Herve

Und wahrscheinlich versteht es sich von selbst, dass composer show --helpalle verfügbaren Optionen gedruckt werden.
Gerard Roche

52

So listen Sie die global installierten Composer-Pakete auf:

composer global show -i


12

Das Verhalten dieses Befehls wurde geändert, sodass Sie die -iOption nicht übergeben müssen :

[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

Wenn Sie nur die Version für nur eine überprüfen möchten, können Sie dies tun

composer show -- twig/twig

Beachten Sie, dass jetzt standardmäßig nur installierte Pakete angezeigt werden und die installierte Option jetzt veraltet ist.


6

Iwans Antwort oben ist gut:

composer global show -i

Info hinzugefügt: Wenn Sie eine Nachricht erhalten wie:

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

... Sie haben möglicherweise noch keine Pakete installiert. In diesem Fall können Sie den nächsten Teil der Nachricht ignorieren, der Folgendes enthält:

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

... sobald Sie ein Paket installiert haben, verschwindet die Nachricht.


2

Wenn Sie Symfony2.2 installieren möchten, können Sie die vollständige Änderung in Ihrem composer.json Symfony-Blog sehen .

Aktualisieren Sie einfach Ihre Datei entsprechend und führen Sie sie anschließend composer updateaus. Dadurch werden alle neuen Abhängigkeiten und Symfony2.2 in Ihrem Projekt installiert.


Wenn Sie nicht auf Symfony2.2 aktualisieren möchten, aber Abhängigkeitsfehler haben, sollten Sie diese veröffentlichen, damit wir Ihnen weiterhelfen können.


Es stellte sich heraus, dass die Probleme, die ich hatte, auf die Inkompatibilitäten zwischen FOS User Bundle 2x und Sonata User Bundle zurückzuführen waren
Dan

1
@ Dan, ich denke, das lag daran, dass das SonataUserBundle nicht richtig konfiguriert wurde. Das wurde gestern behoben.
Wouter J

0

Gibt es eine Möglichkeit, es über $ event-> getComposer () -> getRepositoryManager () -> getAllPackages () abzurufen?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.