nhà soạn nhạc: Làm thế nào để tìm phiên bản chính xác của một gói?


103

Giả sử tôi đang viết một thư viện A, nó phụ thuộc vào một thư viện khác, chẳng hạn như độc thoại.

Tôi muốn cài đặt phiên bản monolog mới nhất, vì vậy tôi chỉ cần đặt nó vào bên trong composer.json:

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

Sau đó tôi chạy $ php composer.phar install.

Tôi đã mong đợi tìm thấy phiên bản được cài đặt, bên trong composer.lock, nhưng nó không có ở đó:

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

Tôi cần phiên bản vì tôi muốn liên kết thư viện của mình với một nhóm phiên bản cụ thể, ví dụ: Nếu tôi tìm thấy phiên bản là 1.3.5, trong composer.json của tôi, tôi muốn đặt một cái gì đó như sau:

    "require": {
        "monolog/monolog": "1.3.*"
    }

Bất kỳ ý tưởng?

Câu trả lời:


170

Tôi biết đó là một câu hỏi cũ, nhưng ...

composer.phar show

Sẽ hiển thị tất cả các gói hiện được cài đặt và thông tin phiên bản của chúng. (Điều này chỉ được hiển thị trong các phiên bản trước của Composer khi sử dụng -itùy chọn hiện không được dùng nữa .)

Để xem thêm chi tiết, hãy ghi rõ cả tên của gói:

composer.phar show monolog/monolog

Điều đó sẽ hiển thị nhiều thứ, bao gồm băm MD5 cam kết, URL nguồn, loại giấy phép, v.v.


11
php composer.phar show -aphp composer.phar show package/namecũng hữu ích.
giám mục

1
Đối với dev-mastercác gói, điều này rất hữu ích vì nó cũng hiển thị băm cam kết. Vì vậy, bạn cần phải đi đến GitHub, thấy rằng cam kết băm, kiểm tra ngày, và sau đó tìm tag với ngày gần nhất trước khi đó, để thực sự tìm hiểu những gì "phiên bản" bạn đang sử dụng
andrewtweber

2
nó cũng có thể được tìm thấy trong tệp composer.lock.
Hafiz

41

Bạn có thể sử dụng chương trình của nhà soạn nhạc như sau:

composer show package/name

13

Nếu bạn chỉ muốn lấy đầu ra là số phiên bản gói như: 1.7.5 hoặc 1.x-dev hoặc dev-master .

Đoạn mã bảng điều khiển Linux:

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

5

Về mặt kỹ thuật "dev-master" là phiên bản chính xác mà bạn đã sử dụng ở đó. Nó là nhánh phát triển và do đó là phiên bản mới nhất.

Nơi tốt nhất để tìm kiếm các phiên bản có sẵn cho các gói trình soạn nhạc là Packagist vì đó là nơi trình soạn nhạc tải các phiên bản khi bạn cài đặt các gói. Các phiên bản độc thoại được liệt kê trên http://packagist.org/packages/monolog/monolog .


2

Bạn có thể sử dụng hiển thị tất cả, đặc biệt khi không có tệp package.json, hãy tải các gói có sẵn từ packagist.org:

composer show "monolog/monolog" --all

Ngoài ra, bạn có thể chỉ định các phiên bản

composer show "monolog/monolog" 1.* --all
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.