インストールされているすべてのパッケージのリストをComposerのバージョンと一緒に取得するにはどうすればよいですか?


258

ローカルマシンでSymfony 2.1を使用するプロジェクトに取り組んでいます。サーバーにアップロードしましたが、Composerを使用してベンダーバンドルをインストールしようとすると、多くの依存関係エラーが発生します。おそらくこれは最新バージョンのSymfonyがリリースされたばかりで、私のcomposer.jsonファイルに正確なバージョン番号が指定されていないためです。

ローカルマシン上のすべてのバージョン番号をすばやく表示する方法はありますか?

これが私のcomposer.jsonファイルです(数日前まで正常に機能していました)。

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

回答:


538

実行できますcomposer show -i(の略--installed)。

最新バージョンではを使用してくださいcomposer show

-iオプションは廃止されました。

globalcomposerのインストールを使用することもできます。composer global show


composer.pharとphpを使用してこれを取得しようとしている人にこれを書いてください
Yashrajsinh Jadeja '12

9
「-i」オプションは廃止されました。composer showインストールされているパッケージをデフォルトでリストします。
16

そして、おそらくそれcomposer show --helpはすべての利用可能なオプションを表示することは言うまでもありません。
ジェラールロシュ

53

グローバルにインストールされたcomposerパッケージを一覧表示するには:

composer global show -i


12

このコマンドの動作は変更されているため、-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.

10

バージョンを1つだけ確認したい場合は、

composer show -- twig/twig

インストール済みのパッケージのみがデフォルトで表示されるようになりました。インストール済みオプションは廃止されました。


6

上記のイヴァンの答えは良いです:

composer global show -i

追加情報:次のようなメッセージが表示された場合:

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

...まだパッケージがインストールされていない可能性があります。その場合は、メッセージの次の部分を無視できます。

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

...パッケージをインストールすると、メッセージは消えます。


2

Symfony2.2をインストールする場合composer.json は、Symfonyブログで完全な変更を確認できます。

それに従ってファイルを更新し、composer updateその後実行するだけです。これにより、プロジェクトにすべての新しい依存関係とSymfony2.2がインストールされます。


Symfony2.2に更新したくないが、依存関係のエラーがある場合は、これらを投稿してください。


私が抱えていた問題は、FOSユーザーバンドル2xとソナタユーザーバンドルの間の非互換性が原因であることが判明
Dan

1
@ Dan、SonataUserBundleが正しい方法で構成されていなかったためだと思います。それは昨日修正されました。
Wouter J 2013

0

$ event-> getComposer()-> getRepositoryManager()-> getAllPackages()で取得する方法はありますか

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.