Как получить список всех установленных пакетов вместе с версией в 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варианты были устаревшими.

Вы также можете использовать globalустановку композитора:composer global show

Seldaek
источник
Напишите это любому, кто пытается получить это, используя composer.phar и php
Yashrajsinh Jadeja
9
Опция '-i' устарела. composer showвыводит список установленных пакетов по умолчанию.
Herve
И, наверное, само собой разумеется, что composer show --helpпечатает все доступные варианты.
Жерар Рош
53

Для просмотра списка глобально установленных пакетов composer:

composer global show -i
Иван
источник
20

Список установленных зависимостей:

  • Квартира: composer show -i
  • Дерево: composer show -i -t

-iкоротко для --installed.

-tкоротко для --tree.

ссылка: https://getcomposer.org/doc/03-cli.md#show

vikyd
источник
1
Спасибо. Я также нашел -tфлаг очень полезным
Oniya Daniel
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

Если вы хотите проверить версию только для одного, вы можете сделать

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, но у вас есть ошибки зависимости, вы должны опубликовать их, чтобы мы могли помочь вам в дальнейшем.

Wouter J
источник
Оказалось, что у меня были проблемы с несовместимостью между FOS User bundle 2x и sonata user bundle
Dan
1
@ Дэн, я думаю, это потому, что SonataUserBundle не был настроен правильно. Это было исправлено вчера.
Wouter J
0

Есть ли способ получить его через $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Судо
источник