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

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

Seldaek
sumber
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
Ivan
sumber
20

Daftar dependensi yang diinstal:

  • Datar: composer show -i
  • Pohon: composer show -i -t

-ikependekan dari --installed.

-tkependekan dari --tree.

ref: https://getcomposer.org/doc/03-cli.md#show

vikyd
sumber
1
Terima kasih. Saya juga menemukan -tbendera itu sangat berguna
Oniya Daniel
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.
Gulungan
sumber
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.

Jean-Luc Barat
sumber
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.

Menandai
sumber
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.

Wouter J
sumber
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 ()

Sudo
sumber