2011-08-25 7 views
3

오늘 나는 주기적으로 gem outdated을 확인했다.번들러가 왜 내 보석 중 하나를 "다운 그레이드"했는지 알아보기

$ gem outdated 
ZenTest (4.6.1 < 4.6.2) 
bcrypt-ruby (2.1.4 < 3.0.0) 
factory_girl (2.0.4 < 2.0.5) 
fog (0.10.0 < 0.11.0) 
hike (1.2.0 < 1.2.1) 
net-ssh (2.1.4 < 2.2.1) 
rb-fsevent (0.4.3 < 0.4.3.1) 
rdoc (3.9.2 < 3.9.3) 
selenium-webdriver (2.4.0 < 2.5.0) 

그래서 그때 bundle updategem update과 : 업데이트를 필요로하는 몇 가지 발견. 공지 사항 bundle update안개의 이전 버전을 설치해야합니다. Installing fog (0.9.0)? 이 의존성을 낮추는 원인을 파악하는 방법을 모릅니다. 상황은 fog 0.10.0에서 잘 작동했습니다.

gem dependency -R fogCarrierwave이 그것을 필요로하고 있다고 ... 그리고 carrierwave은 변경되지 않았습니다 및 안개 0.10.0에 만족했다.

아이디어가 있으십니까? 또는이 문제를 해결하는 데 사용할 수있는 도구입니까?

+0

'Gemfile.lock' 파일은 0.9.x 버전의'fog'를 필요로하는 다른 것을 알아내는 데 도움이되는 의존성 계층을 보여 주어야합니다. –

답변

0

gemfile과 bundler 내에는 반드시 최신 최신 버전의 보석을 사용하지 않는 것이 좋습니다. 예를 들어

당신의 레일에 라인이있는 경우

는 gemfile 같은 :

보석 'globalize3', '~> 0.1.0 "

... 그것은 최신 보석을 얻을 것 같은 0.1 .2, 0.1.3 등. 그러나 결코 사용하지 않을 것입니다. 0.2.1

이것은 보석 의존성 사이의 하위 호환성을 유지하기위한 것입니다. Bundler는 아마도 안개와 관련하여 그러한 관행을 따를 것입니다.