2012-12-25 3 views
12

루비 뉴비는 여기.Windows에서 Gemfile.lock을 소스 제어에 커밋해야합니까?

rubyinstaller를 통해 ruby를 다운로드하고 gem install rails을 실행하고 몇 개의 누락 된 라이브러리를 해결 한 후 마침내 ruby project에 작업하고 싶습니다. 부품을 만지기 전에

, 내 Gemfile.lock이 수정되는 것을 참조 :

diff --git a/Gemfile.lock b/Gemfile.lock 
index aefda68..9ebccba 100644 
--- a/Gemfile.lock 
+++ b/Gemfile.lock 
@@ -46,6 +46,7 @@ GEM 
    diff-lcs (1.1.3) 
    erubis (2.7.0) 
    eventmachine (1.0.0) 
+ eventmachine (1.0.0-x86-mingw32) 
    execjs (1.4.0) 
     multi_json (~> 1.0) 
    hike (1.2.1) 
@@ -65,11 +66,17 @@ GEM 
    multi_json (1.3.6) 
    multi_xml (0.2.2) 
    pg (0.14.1) 
+ pg (0.14.1-x86-mingw32) 
    polyglot (0.3.3) 

... 

PLATFORMS 
    ruby 
+ x86-mingw32 

모든 수정 된 라인 윈도우 관련이있는 것으로 보인다. This answer은 Gemfile.lock을 gitignore해서는 안된다는 것을 나타냅니다 (이미 복제 된 Repo에 대해 이미 커밋 됨). This answer은 내가 &을 heroku로 밀어 넣으면 커밋 할 때 오류가 발생할 수 있음을 의미합니다 (내 앱이 Windows 관련 파일에 의존하지 않기를 바라며).

그래서 어떤가요? 어떻게 수정해야합니까? 내 레포에서 Gemfile.lock을 삭제해야합니까?

+1

GEmfile에서 플랫폼을 사용해보고 싶을 수도 있습니다. http://qastuffs.blogspot.com/2011/02/how-to-configure-gemfile-for-windows.html?m=1 – house9

답변

1

지난 번 나는 Heroku에게 Windows Gemfile.lock으로 푸시했다. 꽤 우아하게 처리했다. 내가 실패하고 다시 Gemfile.lock을 재건하거나 이진 보석 태그를 제거했는지 기억하지 못합니다.

내가 볼 수있는 2 가지 실행 가능한 옵션이 있습니다.
하나는이 동작에 문제가 없다고 가정하는 것입니다. 엄격한 보석 버전 요구 사항을 사용하거나 bundle을 업데이트하고 푸시하기 전에 모든 것이 작동하는지 확인하는 것을 의미합니다.

또 다른 하나는 :platform flag in your Gemfile입니다. 나는 이것을 추천하지는 않을 것이지만 소스를 강제로 제거하고 보석을 로컬에서 컴파일해야한다. 즉, 외부 종속성을 사용할 수 있어야합니다. 많은 바이너리 젬 (pg 젬과 같이)을 사용하면 이것은 쉬운 일이 아닙니다. 다른 보석으로는 거의 불가능할 수 있습니다. 다시 한번, 나는 이것을하는 것을 추천하지 않을 것이다.

+0

수정을 피하고 싶습니다. gemfile에. 나는 내가 우연히 gemfile을 저지른 것을 알기 위해서만, 나는 포크로 찍은 프로젝트에 pull 요청을 제출하려했다. 문제를 일으키지 않을지라도, gemfile-modification은 분명히 내가 그들을 되돌려 놓으려고하는 것의 일부가 아니다. 이 옵션 중 하나가 작동합니까? 둘 다 gemfile을 약간 수정해야하는 것 같습니다. – ripper234

+0

죄송합니다. 리눅스 환경에 응용 프로그램을 배포 할 때'Gemfile.lock'의 영향은 무엇입니까? – Azolo

+0

나는 [pull request] (https://github.com/lockitron/selfstarter/pull/22)를 보았다. 나는 당신이 말하고 있다고 가정하고있다. 'pry' 의존성을 추가하고'Gemfile.lock'을 변경 한 것처럼 보입니다. 아이러니 컬하게도'Gemfile' 만 변경하면'Gemfile.lock' 만 변경됩니다. = P 필자는 어쨌든 변경이 우연히 발생했기 때문에 되돌아 가서'Gemfile.lock' 변경 사항을 커밋에서 제거합니다. – Azolo

관련 문제