Як отримати список усіх встановлених пакетів разом з версією у композиторі?


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

Відповіді:


536

Ви можете бігти composer show -i(короткий для --installed).

В останній версії просто використовуйте composer show.

Ці -iваріанти були застарілими.

Ви також можете використовувати globalінсталяцію композитора:composer global show


напишіть це будь-хто, хто намагається отримати це за допомогою composer.phar та php
Yashrajsinh Jadeja

9
Опція '-i' тепер застаріла. composer showсписки встановленого пакета за замовчуванням.
herve

І, мабуть, само собою зрозуміло, що composer show --helpдрукує всі доступні варіанти.
Джерард Рош

52

Щоб перелічити глобально встановлені пакети композиторів:

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

Якщо ви хочете перевірити версію лише на одну, ви можете це зробити

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

0

Чи є спосіб отримати це за допомогою $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.