2016-08-29 15 views

Trả lời

2

>= 3.1.11 là một “lạc quan” phiên bản hạn chế. Nó nói rằng tất cả thay đổi từ 3.1.11 sẽ hoạt động nhưng đối với phiên bản 4.0.0 thì điều này sẽ không đúng.

~> 3.1 là “bi quan”. Điều này loại trừ một cách rõ ràng phiên bản có thể làm hỏng mã của bạn. Về cơ bản nó là nói >= 3.1< 4.0. Nhưng nếu bạn có ~> 3.1.1, nó sẽ bằng >= 3.1.1 nhưng ít hơn 3.2

Nếu bạn muốn cho phép sử dụng các phiên bản tương thích ngược mới hơn nhưng cần một bản vá lỗi cụ thể mà bạn có thể sử dụng một yêu cầu hợp chất như '~> 3.1', '>= 3.1.11' này được trình bày chi tiết tại http://guides.rubygems.org/patterns/#pessimistic-version-constraintNếu bạn muốn cho phép sử dụng các phiên bản tương thích ngược mới hơn nhưng cần sửa lỗi cụ thể, bạn có thể sử dụng yêu cầu hợp chất như ... '~> 2.2', '>= 2.2.1'

3

'~> 3.1' có nghĩa là phiên bản được yêu cầu có thể 3.1.x hoặc 3.2.x hoặc 3.3.x hoặc ..., nhưng không bao giờ đạt 4.0.

Ý nghĩa của '>= 3.1.11' khá rõ ràng.

Vì vậy, hãy đặt chúng lại với nhau, có nghĩa là phiên bản có thể là 3.x.y trong đó x >= 2 hoặc x = 1 and y >= 11.

Có lẽ ký hiệu này là rõ ràng hơn:

gem 'bcrypt', '>= 3.1.11', '< 4' 
Các vấn đề liên quan