2014-07-11 19 views
3

내 기본 스택 설정은 Apache2와 Rails 3.x (아래 참조)가있는 Ubuntu 10.04 Lucid입니다. 또한 전용 서버에서 실행되는 MySQL 데이터베이스를 사용하기 때문에 레일즈 서버에서 MySQL 클라이언트 만 필요하며 mysql2 gem을 사용하고 있습니다.Ruby 버전과 MySql 클라이언트의 혼합 문제

Ruby 1.8.7에서 나중으로 업그레이드해야한다는 점을 제외하고는 Rails 3.0에서 Rails 3.2로 업그레이드하고 있습니다 (코드 변경 및 자산 재조정). 메일 보석용 버전.

Ruby 1.9.3을 건너 뛰고 Ruby 2.0.0으로 바로 넘어갈 수있을 것이라고 생각했습니다.

나는 또한 ruby ​​환경을 관리하기 위해 rvm을 채택하고 있으며, rvm에서 더 잘 재생된다고 말했고, 내가 좋아하는 다른 Rails 앱을 가지고 있기 때문에 승객 4에게도 업데이트하고있다. Ruby 1.8.7을 당분간 떠날 것입니다.

모든 것이 합리적으로 잘 진행되고 있습니다. 설치 과정에서 모든 것이 오류없이 설치 된 것처럼 보입니다.

앱 디렉토리 계층의 상단에 .ruby 버전 파일 (2.0.0 지정)을 추가했는데 이것이 효과적 인 것 같습니다.

동일한 디렉토리에 .ruby-gemset도 있고 응용 프로그램 이름을 지정하고 번들 설치를 사용하여 필요한 보석을 설치했습니다.

그러나, 나는 아파치를 다시 시작하고, 레일 응용 프로그램에 액세스하려고 할 때, 나는 반환 된 웹 페이지 여객보고 한 오류,

Web application could not be started 

/home/username/.rvm/gems/[email protected]/gems/mysql2-0.3.16/lib/mysql2/mysql2.so: [BUG] Segmentation fault ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] 

레일 응용 프로그램 (또는 승객) 인 것을 표시를 얻을 수 rvm 환경을 올바르게 가져 왔지만 Ruby 1.8.7 종속성이있는 호환되지 않는 버전의 mysql2를 사용합니다.

나는이 문제를 해결하기 위해 여러 가지를 시도했습니다

,

  • 는 제거 및 mysql2 보석을 다시 설치.
  • 제거와 Sudo를 사용하여 MySQL의 클라이언트 패키지를 다시 설치 apt-get을 libmysqlclient-DEV libmysql 루비
  • 같은 변화를 시도하지만, 루비 1.9.3 대신 2.0.0를 사용하여 설치합니다.

이상적으로는 mysql2가 Ruby 1.8.7 및 2.0.0 응용 프로그램과 동시에 지원되고 싶지만 mysql2가 Ruby의 최신 버전과 함께 작동하도록 정하는 것이 좋습니다.

감사합니다.

+1

[rvm doc] (https://rvm.io/integration/passenger)로 작성되었으므로 앱의 가상 호스트에'PassengerRuby'를 설정합니까? – zergood

답변

1

rvm doc으로 작성되었으므로 앱의 가상 호스트에 PassengerRuby을 설정해야합니다.