2012-01-04 8 views
1

gem install을 통해 보석을 설치하고 싶지만 현재 프로젝트의 종속성으로 해결해야합니다.Gemfile에 지정된 것처럼 어떻게 설치할 수 있습니까?

기본적으로 나는 gem 'xyz'을 Gemfile에 지정할 때 bundler가 제공하는 기능을 원하지만 Gemfile에 특정 gem을 추가하고 싶지 않습니다.

bundle exec gem install ...을 시도했지만 작동하지 않는 것 같습니다.

편집 : 나는 Gemfile에 추가하고 싶지 않은 이유 이유는이 유틸리티 사용의 친절 만 수도 metric_fu 같은, metrical, saikuro, rails_best_practices 등 간단하게 보석이 될 수 있음 프로젝트를 망설이는 것.

일시적으로 사용하거나 설치하고 시도해보십시오. 원하는 방식대로 작동하지 않으면 및 bundle install을 다시 정리하십시오.

+0

이상한 소리가납니다. 그것의 목적은 무엇입니까? –

+0

@OlexandrSkrypnyk 설명 편집을 참조하십시오. –

답변

3

Bundler의 포인트는 부분적으로 그런 일을하지 못하게하는 것입니다 (프로젝트가 선언하지 않을 때 외부에서 보석을 주입하는 것을 방지하기 위해).

Bundler에서 버그를 찾고있는 방법을 찾고 있습니다. Bundler의 시행 메커니즘을 피하는 방법을 찾지 못했다면 아마 그것을 사용하지 않아야합니다. 대신 Bundler의 문제 추적기에 버그로 신고하는 것이 좋습니다.

이제 우리는 진짜 질문에와 있습니다. 당신은 무엇을 할 수 있습니까? 그리고 당신은 무엇을해야합니까?

  • 응용 프로그램과 보석 의존성을 분리하려면 RVM 보석 또는 Bundler 중 하나를 사용해야합니다. 둘 다 필요하지 않습니다. RVM 보석 세트보다이 목적을 위해 Bundler를 추천합니다.

  • gemfile에 사용하고 응용 프로그램과 통합되는 (즉, 응용 프로그램을로드하거나 응용 프로그램의 일부로로드 된) 보석을 Gemfile에 추가해야합니다. 이것은 응용 프로그램과의 통합을 자제하는 모든 보석에 대한 요구 사항이 아닙니다.

  • 당신이 당신의 응용 프로그램이 수용 가능한 작동을 계속 만족 될 때까지 당신은 버전 제어로 변경 Gemfile 또는 Gemfile.lock을 투입 자제해야

    (테스트를 통과, 새로운 보석이하는 것이 유용 등).

또는 당신은 당신이 명시 적으로 수행되지 않도록 설계되어 일을하고 싶기 때문에, Bundler를 사용을 중지해야합니다 (권장하지 않음).

1

멍청한 소리가 날 위험이 있으므로 gemfile에 추가하지 않으시겠습니까? 언제 어디서나 설치하고 싶지 않으면 언제든지 그룹에 추가 할 수 있습니다.

+0

설명 편집을 참조하십시오. –

+3

Gemfile의'development' 그룹에 추가하여 필요하지 않은 곳에 제외시킬 수 있습니다. 다른 파일들을 가지고'bundle install '의'--gemfile' 옵션으로 파일을 지정할 수도 있습니다. – d11wtq

0

약간 다른 접근법은 Git과 같은 버전 컨트롤을 사용하여 새 분기를 만들고 보석을 설치하는 것입니다. 작동하지 않는다면, gem을 제거하십시오 (이전 브랜치에서 번들 업데이트로 수행 할 것인지 확신 할 수 없습니다). 그리고 브랜치를 지 웁니다. 그것이 작동한다면, 당신의 물건을 오래된 지류에 병합하십시오.

다른 답변과 의견에는 매우 좋은 점이 있습니다.

관련 문제