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

답변:


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사용 가능한 모든 옵션 을 인쇄 한다는 것은 말할 것도 없습니다.
Gerard Roche

52

전체적으로 설치된 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

하나의 버전 만 확인하려면 할 수 있습니다

composer show -- twig/twig

설치된 패키지 만 기본적으로 표시되며 installed 옵션은 더 이상 사용되지 않습니다.


6

위의 Ivan의 대답은 좋습니다.

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 () 통해 얻을 수있는 방법이 있습니까

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.