Como obter a lista de todos os pacotes instalados junto com a versão no compositor?


258

Estou trabalhando em um projeto usando o Symfony 2.1 na minha máquina local. Fiz o upload no meu servidor, mas quando tento instalar os pacotes de fornecedores usando o Composer, estou recebendo muitos erros de dependência. Presumivelmente, isso tem algo a ver com a versão mais recente do Symfony sendo lançada e meu composer.jsonarquivo não especificando os números exatos das versões.

Existe alguma maneira de exibir rapidamente os números de versão de tudo na minha máquina local?

Aqui está o meu arquivo composer.json (que funcionou bem até alguns dias atrás):

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

Respostas:


538

Você pode executar composer show -i(abreviação de --installed).

Na versão mais recente, basta usar composer show.

As -iopções foram descontinuadas.

Você também pode usar a globalinstalação do compositor:composer global show


escrever este alguém tentando conseguir isso usando composer.phar e php
Yashrajsinh Jadeja

9
A opção '-i' agora está obsoleta. composer showlista o pacote instalado por padrão.
herve

E provavelmente não é preciso dizer que composer show --helpimprime todas as opções disponíveis.
Gerard Roche

53

Para listar os pacotes do compositor instalados globalmente:

composer global show -i


12

O comportamento deste comando foi modificado para que você não precise passar a -iopção:

[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

Se você deseja apenas verificar a versão para apenas uma, pode fazer

composer show -- twig/twig

Observe que apenas os pacotes instalados são mostrados por padrão agora e a opção instalada agora está obsoleta.


6

A resposta de Ivan acima é boa:

composer global show -i

Informação adicionada: se você receber uma mensagem parecida com:

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

... você pode ainda não ter pacotes instalados. Nesse caso, você pode ignorar a próxima parte da mensagem que contém:

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

... assim que você instalar um pacote, a mensagem desaparecerá.


2

Se você deseja instalar o Symfony2.2, pode ver a alteração completa no composer.json blog do Symfony .

Apenas atualize seu arquivo de acordo com isso e execute composer updatedepois. Isso instalará todas as novas dependências e o Symfony2.2 no seu projeto.


Se você não deseja atualizar para o Symfony2.2, mas possui erros de dependência, você deve publicá-los, para que possamos ajudá-lo ainda mais.


Acontece que os problemas que eu tinha eram as incompatibilidades entre FOS usuário pacote 2x e pacote de usuário sonata
Dan

1
@ Dan, acho que foi porque o SonataUserBundle não estava configurado da maneira correta. Isso foi corrigido ontem.
precisa

0

Existe uma maneira de obtê-lo através de $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.