Làm thế nào để có được danh sách tất cả các gói đã cài đặt cùng với phiên bản trong trình soạn thảo?


258

Tôi đã làm việc trên một dự án sử dụng Symfony 2.1 trên máy cục bộ của mình. Tôi đã tải nó lên máy chủ của mình nhưng khi tôi thử và cài đặt các gói của nhà cung cấp bằng Trình soạn thảo, tôi gặp rất nhiều lỗi phụ thuộc. Có lẽ đây là điều cần làm với phiên bản Symfony mới nhất vừa được phát hành và composer.jsontệp của tôi không chỉ định số phiên bản chính xác.

Có cách nào để tôi có thể nhanh chóng hiển thị số phiên bản của mọi thứ trên máy cục bộ của mình không?

Đây là tệp composer.json của tôi (hoạt động tốt cho đến vài ngày trước):

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

Câu trả lời:


537

Bạn có thể chạy composer show -i(viết tắt của --installed).

Trong phiên bản mới nhất chỉ cần sử dụng composer show.

Các -itùy chọn đã không được chấp nhận.

Bạn cũng có thể sử dụng bản in globalcủa nhà soạn nhạc:composer global show


viết điều này cho bất cứ ai đang cố gắng để có được điều này bằng cách sử dụng composer.phar và php
Yashrajsinh Jadeja

9
Tùy chọn '-i' hiện không được chấp nhận. composer showliệt kê gói cài đặt theo mặc định.
herve

Và có lẽ đi mà không nói rằng composer show --helpin tất cả các tùy chọn có sẵn.
Gerard Roche

53

Để liệt kê các gói soạn thảo được cài đặt trên toàn cầu:

composer global show -i


12

Hành vi của lệnh này đã được sửa đổi, do đó bạn không phải vượt qua -itùy chọn:

[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

Nếu bạn chỉ muốn kiểm tra phiên bản cho một, bạn có thể làm

composer show -- twig/twig

Lưu ý rằng hiện tại chỉ có các gói đã cài đặt được hiển thị theo mặc định và tùy chọn đã cài đặt hiện không được chấp nhận.


6

Câu trả lời của Ivan ở trên là tốt:

composer global show -i

Đã thêm thông tin: nếu bạn nhận được một thông báo như:

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

... Bạn có thể chưa có gói nào được cài đặt. Nếu vậy, bạn có thể bỏ qua phần tiếp theo của tin nhắn có chứa:

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

... Khi bạn cài đặt một gói, tin nhắn sẽ biến mất.


2

Nếu bạn muốn cài đặt Symfony2.2, bạn có thể thấy sự thay đổi hoàn toàn trong composer.json blog của bạn trên blog Symfony .

Chỉ cần cập nhật tệp của bạn theo đó và chạy composer updatesau đó. Điều đó sẽ cài đặt tất cả các phụ thuộc mới và Symfony2.2 vào dự án của bạn.


Nếu bạn không muốn cập nhật lên Symfony2.2, nhưng có lỗi phụ thuộc, bạn nên đăng những điều này để chúng tôi có thể giúp bạn thêm.


Hóa ra những vấn đề tôi gặp phải là sự không tương thích giữa gói Người dùng FOS 2x và gói người dùng sonata
Dan

1
@Dan, tôi nghĩ rằng đó là vì SonataUserBundle không được cấu hình đúng cách. Điều đó đã được sửa chữa vào ngày hôm qua.
Wouter J

0

Có cách nào để tải thông qua $ event-> getComposer () -> getRep repositoryManager () -> getAllPackages ()

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.