2011-01-28 4 views
1

다른 게시물의 문제와 관련이있는 문제가 있지만 도착한 해결책을 이해하지 못합니다. 나는 Rails를 처음 사용하고 Rails 3 앱을 함께 사용했다. 나는 Windows에서 개발 중이며 git와 capistrano를 통해 Redhat Linux 서버에 배포하고 Passenger를 사용하여 페이지를 제공하려고합니다. 배포 프로세스는 잘 간다,하지만 웹 페이지에서 볼 때 나는 여객 오류 :레일 3을 여객과 함께 배치하는 데 문제가 있습니다 : mysql gem이 누락되었습니다

!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql', '2.8.1'. 

는 사실, 내 Gemfile에 해당 라인을 추가하고,에 '보석리스트'하고 서버가 있음을 보여줍니다.

post에서는 사용자가 유용하게 정확히 같은 문제를 지적하고 Gemfile.lock이

mysql (2.8.1-x86-mingw32). 

즉, Windows 용 보석을 가지고이 정확히 내 Gemfile.lock에서 동일, 그래서 관찰 나는 똑같은 문제가 내게 일어나고 있다고 상상한다. 하나는 이것이 공급 업체/캐시 및 공급 업체/번들에있는 보석임을 알 수 있습니다.

그러나 게시물의 제안 된 수정이 어떻게 작동하는지 이해할 수 없습니다. 나는 MySQL은 (2.8.1)로 Gemfile.lock에서 MySQL의 라인을 편집 할 수 있습니다, 그러나 나는이 문제를 해결할 수있는 방법

Can't find mysql-2.8.1 in any of the sources. 

을 말한다 다른 승객 오류가?

답변

2

누군가가 같은 문제에 부딪혔을 때, 내가 한 일은 다음과 같습니다. 트릭을 정확히 알기 위해 무슨 일이 일어나고 있는지 충분히 이해하지 못합니다.

먼저 Gemfile에서 관련 보석의 루비 및 Windows 버전을 모두 필요로한다고 지정했습니다.

gem 'mysql', "2.8.1", :platforms => [:mswin, :ruby_18]

gem 'sqlite3-ruby', "~> 1.2.5", :platforms => [:mswin, :ruby_18]

그런 다음 프로덕션 서버에, "모자 배포를"사용 후, 나는 두 업체/번들 및 공급 업체/캐시에서 보석 mysql을-2.81-86-mingw32를 제거했습니다. 내 프로덕션 서버를 사용하면 'gem install mysql'및 'gem install sqlite3-ruby'를 허용하지만 홈 디렉토리의 다른 곳에 둘 수 있습니다. 나는 이것을 벤더/번들과 벤더/캐시에 복사했다. Gemfile.lock을 편집하여 'mysql (2.8.1-x86-mingw32)'행을 'mysql (2.8.1)'으로 변경했습니다. 프로덕션 서버에 '번들 설치'를 설치하면 리눅스 네이티브 젬을 설치하는 것처럼 보입니다.

이 모든 후, 그것은 작동하는 것.

0

bundle install 명령을 실행하십시오. 이 문제가 해결 될 것이라고 확신합니다.

또한 Gemfile.lock을 편집하거나 이동하지 마십시오. 번들러가 그 일을 처리하게하십시오.

+0

OK, 번들 설치를 실행합니다 (배포시 cap의 일부로 실행되었다고 생각했지만 그게 무슨 뜻인지). 그것은 뭔가를하는 것처럼 보였습니다 (그것은 mysql을위한 네이티브 확장으로 설치하는 것입니다). 하지만 여전히 승객과 같은 오류가 발생합니다. –

관련 문제