450

Tôi đang cố gắng cài đặt một phiên bản cụ thể của gói bằng Composer. Tôi đã thử composer installcomposer requirenhưng họ đang cài đặt phiên bản mới nhất của gói. Nếu tôi muốn một phiên bản cũ hơn thì sao?

|
797

composer require vendor/package:version

ví dụ:

composer require refinery29/test-util:0.10.2

|
145

Thêm dấu ngoặc kép để sử dụng toán tử dấu mũ trong số phiên bản.

composer require middlewares/whoops "^0.4"
|
  • 1
    Tôi không thấy có thời điểm mà bạn có thể chuyển tên góiphiên bản thành hai đối số riêng biệt. –  11:04:01 13/06/2018
  • 1
    @ x-yuri tên gói đi qua và phiên bản như các đối số riêng biệt làm việc cho tôi sử dụng nhà soạn nhạc 1.5.1 –  16:53:50 15/11/2018
  • 1
    Mặc dù về mặt kỹ thuật, đây không phải là câu trả lời "chính xác" cho câu hỏi của OP, nhưng điều này có lẽ hữu ích hơn đối với hầu hết mọi người. –  09:25:25 02/07/2019
20

Như @alucic đã đề cập, hãy sử dụng:

composer require vendor/package:version

hoặc bạn có thể sử dụng:

composer update vendor/package:version

Bạn có thể nên xem lại bài đăng StackOverflow này về sự khác biệt giữa cài đặt trình soạn nhạc và cập nhật trình soạn nhạc .

Liên quan đến câu hỏi về số phiên bản, bạn có thể xem lại tài liệu Trình soạn nhạc về các phiên bản , nhưng ngắn gọn ở đây:

  • Phạm vi phiên bản dấu ngã ( ~ ) - ~ 1.2.3 tương đương với> = 1.2.3 < 1.3.0
  • Phạm vi phiên bản con dấu ( ^ ) - ^ 1.2.3 tương đương với> = 1.2.3 < 2.0.0

Vì vậy, với Tilde, bạn sẽ nhận được cập nhật tự động các bản vá lỗi nhưng các phiên bản nhỏ và chính sẽ không được cập nhật. Tuy nhiên, nếu bạn sử dụng Caret, bạn sẽ nhận được các bản vá lỗi và các phiên bản nhỏ, nhưng bạn sẽ không nhận được các phiên bản chính (phá vỡ các thay đổi).

Phiên bản Tilde được coi là một cách tiếp cận "an toàn hơn", nhưng nếu bạn đang sử dụng các phụ thuộc đáng tin cậy (các thư viện được duy trì tốt), bạn sẽ không gặp bất kỳ vấn đề nào với Phiên bản Caret (vì các thay đổi nhỏ sẽ không phá vỡ các thay đổi.

|
20

chỉ cần sử dụng php composer.phar request

Ví dụ :

php composer.phar require doctrine/mongodb-odm-bundle 3.0

Cũng có sẵn với cài đặt.

https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install

|
  • 1
    Đối với bản ghi, việc thêm các ràng buộc tùy chỉnh không khả dụng với install- chỉ với require. Nếu bạn muốn chuyển sang một phiên bản cụ thể và đăng ký composer.locktệp của mình , bạn có thể, nhưng bạn phải sử dụng composer requirevà sau đó hoàn nguyên thay đổi về composer.jsonsau. –  12:17:39 11/12/2017
  • 1
    Phiên bản như một đối số riêng biệt? Điều đó đã bao giờ có sẵn? –  11:05:25 13/06/2018
11

Giả sử bạn muốn cài đặt Laravel Collective. Nó hiện đang ở phiên bản 6.x nhưng bạn muốn có phiên bản 5.8. Bạn có thể chạy lệnh sau:

composer require "laravelcollective/html":"^5.8.0"

Một ví dụ điển hình được hiển thị ở đây trong tài liệu: https://laravelcollective.com/docs/5.5/html

|
  • 1
    Hãy chia sẻ thêm thông tin chi tiết - phiên bản hạn chế ^5.8.0sẽ không hạn chế Composer sử dụng một phiên bản cụ thể, nhưng vẫn cho phép nhiều phiên bản được cài đặt –  14:20:12 14/03/2021
0

nhà soạn nhạc yêu cầu gói-tên-phiên-bản-số

Ví dụ: nhà soạn nhạc yêu cầu "laravel / tinker": "^ 2.5"

|
0

Curl có thể được sử dụng để tải xuống một phiên bản cụ thể:

curl -O "https://getcomposer.org/download/1.10.17/composer.phar"
chmod a+x composer.phar
sudo mv composer.phar /usr/local/bin/composer
|
0

Tôi đã cố gắng yêu cầu một nhánh phát triển từ một kho lưu trữ khác chứ không phải phiên bản mới nhất và tôi đã gặp vấn đề tương tự và vấn đề không phải ở trên đã phù hợp với tôi :(

sau một thời gian, tôi thấy trong tài liệu rằng trong các trường hợp của nhánh nhà phát triển, bạn cần yêu cầu tiền tố 'dev-' cho phiên bản và phần sau hoạt động hoàn hảo.

composer require [vendorName]/[packageName]:dev-[gitBranchName]
|
0

Trong của bạn composer.json, bạn có thể đặt:

{
    "require": {
        "vendor/package": "version"
    }
}

sau đó chạy composer installhoặc composer updatetừ thư mục chứa composer.json. Đôi khi, đối với tôi, nhà soạn nhạc là một người khó tính, vì vậy tôi sẽ bắt đầu từ composer clear-cache; rm -rf vendor; rm composer.locktrước composer installđể đảm bảo rằng nó có được những thứ mới mẻ.


Tất nhiên, như các câu trả lời khác chỉ ra, bạn có thể chạy những điều sau từ thiết bị đầu cuối:

composer require vendor/package:version

Và về cách tạo phiên bản:
- Bài viết về các phiên bản chính thức của nhà soạn nhạc
- Tìm kiếm Ecosia

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.