두 개의 Ruby gem을 동시에 개발 중입니다. 그 중 하나는 다른 것에 의존합니다. 내 보석 이름이 "foo"및 "bar"라고 가정 해보십시오. "바" "foo는"에 따라, 그래서 그 gemspec이 포함되어 있습니다 : "foo는"이 배치되어 있기 때문에 나에게 오류를 줄 것이다 지금 bundle install
를 실행, 물론Bundler는 지역 보석을 "이미 설치 한"것으로 간주합니까?
source "https://rubygems.org"
gemspec
:
s.add_runtime_dependency "foo", "~> 0"
# More dependencies...
그리고 내 Gemfile 로컬 폴더에 저장합니다.
의존성 줄을 주석 처리하고 싶지 않으며 로컬 폴더를 가리키고 싶지 않습니다. 결코 로컬 변경이 아니므로 내 힘내 저장소에 커밋하십시오. 그것은 git status
아래의 공간을 차지할 것이고 파일을 수정해야 할 때가 될 것입니다.
Bundler가 "foo"의 위치를 알 수있는 환경 변수로 수행 할 수있는 트릭이 있고 "이미 설치되어있는"것으로 간주하고 싶습니다. 그게 가능하니?
그건 깔끔하지만, 내가 결코 피하지 않을 로컬 수정을해야한다는 것을 의미합니다.만약 내가 그걸로 괜찮 으면, 나는 단지 "foo"라인을 완전히 제거 할 수있다. 그러면 dependler를 설치할 때 bundler가 불평하지 않을 것이다. – Hubro
지금 내 질문에 좀 더 정교 해졌습니다. – Hubro
좋습니다.이 질문은 약간 잘못되었습니다. 나는 실제로'path :'옵션을 제거 할 필요가 없으며 안전하게 고칠 수있다. [Gemfile source priority] (http://bundler.io/man/gemfile.5.html#SOURCE-PRIORITY)에 따르면, Bundler는 * 처음 * 로컬 경로에서 보석을로드하려고 시도한 다음 다시 설치를 시도합니다 글로벌 소스에서. 당신은 아마도 그것을 당신의 대답으로 편집해야합니다. – Hubro