2009-05-30 7 views
12

나는이 스레드에서 언급 한 action_mailer 패치를 적용하고 싶지만 내가 전에 패치를 적용 적이없는 내가 잘 모르겠어요 어떻게 이러한 일 : https://rails.lighthouseapp.com/projects/8994/tickets/2263레일즈에서 루비에 어떻게 패치를 적용합니까?

내 액션 메일러 보석이 여기에 있습니다 :/옵션/루비 -enterprise-1.8.6-20090421/lib/ruby ​​/ gems/1.8/gems/actionmailer-2.3.2

그 디렉토리로 가서 패치 명령을 실행해야한다고 가정합니다. 나는 또한에 정말 명확하지 않다

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/ 
wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
patch < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 

한 가지 패치 파일은 "actionmailer"디렉토리를 참조하지만 나의

답변

11

당신이 일반적으로 원하지 않는다 "actionmailer-2.3.2"라고이다 보석 소스 자체를 패치합니다. 보석을 ${RAILS_ROOT}/vendor/rails으로 동결 한 다음 로컬로 패치를 적용하려고합니다. 당신의 $ {RAILS_ROOT} 디렉토리에서

,

rake rails:freeze:gems 

이 작품 위의 패치를

cd vendor/rails/ 
    patch -p1 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
+0

안녕하세요 Micholson, 답변 해 주셔서 감사합니다. 나는 평소에 문제를 일으키고 싶다는 생각에 동의하지만,이 버그의 특성으로 인해 모든 레일 애플리케이션에 고정시키고 싶다. (더 많은 파일을 버전 관리에 추가하지 않기를 바란다.) 나는 당신이 쓴 것에서부터 그것을 얻을 수 있을지도 모른다. -p 옵션을 읽지 않으면 디렉토리 문제가 더 이해된다 : http://linux.die.net/man/1/patch 건배! –

7

Micholson의 답변을 적용 업체/레일로 레일 보석의 모든 덤프. 그러나 (그의 대답에 내 의견을 참조)이 일을 모든 레일 애플 리케이션을위한 실제 보석을 패치하기 :

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2 
wget sudo wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
sudo patch -p2 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
sudo rm 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 

난 아무것도 잘못되면 당신은 또한 -R과 패치를 취소 할 수 있습니다 발견했다. 나는이 과정이 어딘가에서 더 잘 문서화되지 않았다는 것에 놀랐다. 다행히도 필자는 나와 같은 패치를 처음 접하는 사람들을 위해 Google 검색에서 나타납니다.

+1

그것은 나를 위해 나타났다! 고맙습니다. –

관련 문제