จะรับรายการแพ็คเกจที่ติดตั้งทั้งหมดพร้อมกับเวอร์ชั่นในผู้แต่งได้อย่างไร?


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พิมพ์ตัวเลือกทั้งหมดที่มี
เจอราร์ดโรช



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 และมัดผู้ใช้โซนาตา
แดน

1
@ ด่านฉันคิดว่าเป็นเพราะ SonataUserBundle ไม่ได้กำหนดค่าวิธีที่ถูกต้อง ที่ได้รับการแก้ไขเมื่อวานนี้
Wouter J

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.