Bagaimana cara mendapatkan daftar semua paket yang diinstal bersama dengan versi di komposer?


258

Saya telah mengerjakan proyek menggunakan Symfony 2.1 pada mesin lokal saya. Saya telah mengunggahnya ke server saya tetapi ketika saya mencoba dan menginstal bundel vendor menggunakan Komposer, saya mendapatkan banyak kesalahan ketergantungan. Agaknya ini ada hubungannya dengan versi terbaru dari Symfony yang baru saja dirilis dan composer.jsonfile saya tidak menentukan nomor versi persisnya.

Apakah ada cara saya dapat dengan cepat menampilkan nomor versi dari segala sesuatu di mesin lokal saya?

Ini adalah file composer.json saya (yang berfungsi dengan baik sampai beberapa hari yang lalu):

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

Jawaban:


538

Anda dapat menjalankan composer show -i(kependekan dari --installed).

Dalam versi terbaru gunakan saja composer show.

The -ipilihan telah usang.

Anda juga dapat menggunakan globalinstalasi komposer:composer global show


tulis ini siapa saja yang mencoba mendapatkan ini menggunakan composer.phar dan php
Yashrajsinh Jadeja

9
Opsi '-i' sekarang sudah tidak digunakan lagi. composer showdaftar paket yang diinstal secara default.
herve

Dan mungkin tak perlu dikatakan bahwa composer show --helpmencetak semua opsi yang tersedia.
Gerard Roche

53

Untuk mendaftar paket komposer yang terinstal secara global:

composer global show -i


12

Perilaku perintah ini telah dimodifikasi sehingga Anda tidak harus melewati -iopsi:

[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

Jika Anda hanya ingin memeriksa satu versi saja, Anda dapat melakukannya

composer show -- twig/twig

Perhatikan bahwa hanya paket yang terinstal yang ditampilkan secara default sekarang, dan opsi yang terinstal sekarang tidak digunakan lagi.


6

Jawaban Ivan di atas baik:

composer global show -i

Info tambahan: jika Anda menerima pesan seperti:

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

... Anda mungkin belum menginstal paket. Jika demikian, Anda dapat mengabaikan bagian selanjutnya dari pesan yang berisi:

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

... begitu Anda menginstal paket pesan akan hilang.


2

Jika Anda ingin menginstal Symfony2.2, Anda dapat melihat perubahan lengkap di composer.json blog Symfony Anda .

Perbarui file Anda sesuai dengan itu dan jalankan composer updatesetelah itu. Itu akan menginstal semua dependensi dan Symfony2.2 baru pada proyek Anda.


Jika Anda tidak ingin memperbarui ke Symfony2.2, tetapi memiliki kesalahan ketergantungan, Anda harus memposting ini, sehingga kami dapat membantu Anda lebih lanjut.


Ternyata masalah yang saya alami adalah ketidakcocokan antara bundel Pengguna FOS 2x dan bundel pengguna sonata
Dan

1
@ Dan, saya pikir itu karena SonataUserBundle tidak dikonfigurasi dengan cara yang benar. Itu sudah diperbaiki kemarin.
Wouter J

0

Apakah ada cara untuk mendapatkannya melalui $ event-> getComposer () -> getRepositoryManager () -> getAllPackages ()

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.