2016-08-29 7 views

답변

2

>= 3.1.11는 "낙관적"버전 제약 조건입니다. 3.1.11의 모든 변경 사항은 작동하지만 버전 4.0.0의 경우 이는 사실이 아닙니다.

~> 3.1은 "비관적"입니다. 이것은 명시 적으로 코드를 손상시킬 수있는 버전을 제외시킵니다. 기본적으로는 >= 3.1< 4.0입니다. 당신이 ~> 3.1.1이 있다면, 그것은 >= 3.1.1에 동일하지만 것보다 3.2 당신이 새로운 이전 버전과 호환되는 버전의 사용을 허용하고 싶지만 당신이에 자세히 설명되어 있습니다 '~> 3.1', '>= 3.1.11' 같은 화합물의 요구 사항을 사용할 수있는 특정 버그 수정이 필요한 경우

http://guides.rubygems.org/patterns/#pessimistic-version-constraint하위 버전과 호환되는 최신 버전을 사용할 수 있지만 특정 버그 수정이 필요한 경우 다음과 같은 복합 요구 사항을 사용할 수 있습니다. '~> 2.2', '>= 2.2.1'

3

'~> 3.1'에 대한 하나의 버전이 필요한 버전이 3.1.x 또는 3.2.x 또는 3.3.x 또는 ...이 될 수 있지만, 4.0에 도달 결코 의미 사용할 수 있습니다.

'>= 3.1.11'의 의미는 매우 명확합니다.

함께 넣어두면 버전이 3.x.y 일 수 있음을 의미합니다. x >= 2 또는 x = 1 and y >= 11입니다.

아마이 표기법은 더 분명하다

gem 'bcrypt', '>= 3.1.11', '< 4'