번 들러로 하나의 보석 만 업데이트


233

번 들러를 사용하여 rails 앱에서 종속성을 관리하고 다음과 같이 git 저장소에 호스팅 된 gem이 있습니다.

gem 'gem-name', :git => 'path/to/my/gem.git'

이 gem을 업데이트하기 위해 실행 bundle update하지만 Gemfile에 언급 된 모든 gem도 업데이트합니다. 특정 보석 하나만 업데이트하는 명령은 무엇입니까?

답변:


354

여기 에서 차이점에 대한 좋은 설명을 찾을 수 있습니다

gem과 종속성을 모두 업데이트하십시오.

bundle update gem-name 

또는

보석 만 업데이트 :

bundle update --source gem-name

가능한 부작용의 좋은 예와 함께.

최신 정보

@Tim의 답변에서 알 수 있듯이 Bundler 1.14에서 공식적으로 지원되는 방법은입니다 bundle update --conservative gem-name.


19
"보석과 의존성 업데이트"는 의존성이 있고 원하지 않는 경우 레일 자체를 업데이트하는 것을 의미합니다. --source 는 매개 변수로 지정된 gem 만 업데이트합니다. 따라서 대부분의 상황에서 더 좋습니다.
1.44mb

버전을 지정하는 방법?
Oshan Wisumperuma '08 .16. 19.

1
@OshanWisumperuma이 번들 명령을 실행하기 전에 Gemfile 또는 Gemfile.lock 버전을 지정하십시오.
Harry Wood

185

이를 수행하는 방법은 다음 명령을 실행하는 것입니다.

bundle update --source gem-name

3
이것은 내가 필요한 것입니다. 개인 보석이 있으며 개인 보석을 변경 한 후에 종속성을 업데이트하지 않고 보석 자체를 업데이트하면됩니다.
저는 개구리 드래곤입니다.

30

최신 버전의 번 들러 (> = 1.14)에서는 다음과 같습니다.

bundle update --conservative gem-name

참고 :이 명령은 의존성없이 하나의 보석을 업데이트합니다
mmike

24

명령 행에 gem 이름을 지정하기 만하면됩니다.

bundle update gem-name

1
이상한. 그것이하는 bundle help update말입니다. 어떤 버전의 번 들러를 사용하고 있습니까?
Brandan

40
bundle update gem-namegem과 "모든 의존성"을 업데이트합니다.
yaka

5

bundle update gem-name [--major|--patch|--minor]

이것은 또한 의존성에도 적용됩니다.


1
특정 버전으로 업데이트하는 방법이 있습니까? 는 --major, --minor--patch플래그는 자동으로 최신 가능한 버전으로 업그레이드합니다.
user2490003

2

나는 bundle update --source오랫동안 나 자신을 사용 했지만 작동하지 않는 시나리오가 있습니다. 운 좋게도, bundler-patch이 단점을 고치는 것을 목표로 하는 보석 이 있습니다.

또한 사용 방법 과 일관되게 작동하지 않는 이유 에 대한 간단한 블로그 게시물을 작성했습니다 . 또한 chrismo 의 게시물 을 확인 하여 옵션의 기능을 자세히 설명하십시오 .bundler-patchbundle update --source--source


0

bundler update --source gem-name Gemfile.lock에서 개정 해시를 업데이트하여 해당 자식 분기의 마지막 커밋 해시와 비교할 수 있습니다 (기본적으로 마스터).

GIT remote: git@github.com:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954

에서 찾을 수 있습니다 github.com/organization/repo-name/commits/c810f4a2(URL에 약식 8 문자 커밋 해시를 사용했습니다)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.