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

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

Seldaek
quelle
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
Ivan
quelle
20

Liste der installierten Abhängigkeiten:

  • Eben: composer show -i
  • Baum: composer show -i -t

-ikurz für --installed.

-tkurz für --tree.

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

vikyd
quelle
1
Danke dir. Ich fand auch die -tFlagge sehr nützlich
Oniya Daniel
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.
Spule
quelle
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.

Jean-Luc Barat
quelle
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.

Kennzeichen
quelle
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.

Wouter J.
quelle
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?

Sudo
quelle