제가 번역했던 Beginning Ruby on Rails 책을 구매하신 분중 두 분깨서 다음과 같은 오류를 지적해 주셨습니다. 해결책을 포스팅하겠다고 약속했었는데 늦어서 죄송합니다.
이 문제는 Rails가 sqlite3를 기본 database로 사용하게 되면서 빚어진 문제입니다. MySQL을 데이터베이스로 사용하려면 rails <app name> --database=mysql 과 같이 해주어야 합니다. 그렇게 하지 않으면, 지적된 오류가 발생하게 됩니다.
Windows
Ruby 1.8.6 버전을 Windows에 설치한 다음 gem을 통해 rails를 설치하고 Rails 프로그램을 만들어 돌려보면 no such file to load -- sqlite3 라는 오류가 발생하는 것을 보게 됩니다. 이 오류의 원인은, Rails가 sqlite3를 기본적으로 설치하지 않는데서 빚어지는 것입니다. 따라서, 이 오류를 교정하기 위해서는 다음과 같은 절차를 밟아야 합니다. sqlite3를 설치하기 위한 절차입니다. 현재로서는 Windows에서 발생한 경우만 확인되었으므로, Windows에서의 해결방법을 기준으로 말씀드리겠습니다.
1. http://www.sqlite.org/download.html을 방문합니다.
2. 화면 좌측의 Precompiled Binaries for Windows 섹션에서 sqlite-3_5_9.zip과 sqlitedll-3_5_9.zip의 두 파일을 다운로드 받습니다. 이 두 파일의 압축을 ruby 설치 디렉터레 아래의 bin 이라는 이름의 서브디렉터리에 풀어 놓습니다. 그 결과 해당 디렉터리 아래에 sqlite3.exe sqlite3.dll sqlite3.def의 세 가지 파일이 생겨있어야 합니다.
3. 그런 다음에 명령행에서 gem install sqlite3-ruby를 실행합니다. 화면에 여러 가지 옵션들이 나오게 될텐데, 1번 옵션에 나오는 sql3-ruby 1.2.2 (mswin32)를 선택합니다.
Bulk updating Gem source index for: http://gems.rubyforge.org
Select which gem to install for your platform (i386-mswin32)
1. sqlite3-ruby 1.2.2 (mswin32)
2. sqlite3-ruby 1.2.2 (ruby)
3. sqlite3-ruby 1.2.1 (mswin32)
4. sqlite3-ruby 1.2.1 (ruby)
5. Skip this gem
6. Cancel installation
> 1
위와 같이 하면 이제 sqlite3가 설치될 것입니다. 여기까지 하면 sqlite3 관련 오류는 해결이 되어야 합니다.
Linux (Ubuntu)
Ubuntu에서는 원래
sudo apt-get install sqlite3
sudo gem install sqlite3-ruby
위의 두 과정이 제대로 수행되면 문제가 없이 되어야 합니다.
그런데 간혹 두 번째 명령을 실행하다가 no such file to load -- mkmf 라는 메시지가 나오면서 설치가 제대로 안되는 경우가 있습니다. 그런 경우에는
sudo apt-get install ruby1.8-dev
위의 명령을 먼저 실행해 줍니다.
그런 다음 다음과 같이 하면 됩니다.
bjlee@bjlee-ubuntu804:~$ sudo gem install sqlite3-ruby
Select which gem to install for your platform (i486-linux)
1. sqlite3-ruby 1.2.2 (mswin32)
2. sqlite3-ruby 1.2.2 (ruby)
3. sqlite3-ruby 1.2.1 (mswin32)
4. sqlite3-ruby 1.2.1 (ruby)
5. Skip this gem
6. Cancel installation
> 2
그러면 다음과 같은 메시지가 주욱 나오면서 설치가 될 것입니다.
Building native extensions. This could take a while...
Successfully installed sqlite3-ruby-1.2.2
Installing ri documentation for sqlite3-ruby-1.2.2...
Installing RDoc documentation for sqlite3-ruby-1.2.2...
이제 웹 서버를 내렸다가 다시 올리기만 하면 문제가 해결되어야 합니다.
감사와 사죄의 말씀
이 오류를 지적해주신 분은 킹상수님과 딸기벌레님, 두분입니다. 답변은 구글에 문의하면 찾을 수 있는 내용이긴 합니다만, 제가 빠른 답변을 드리겠다고 해 놓고 답을 제때 못드려서 죄송하다는 말씀, 다시한번 드립니다.
질문주신 두분께는 메일로 따로 연락드리도록 하겠습니다.
'Languages > Ruby or Rails' 카테고리의 다른 글
| jQuery를 사용한 Rails REST 프로그래밍 (1) (0) | 2008/10/13 |
|---|---|
| Ruby의 inject를 활용한 코드 사례 (0) | 2008/10/10 |
| Rails에서 일반 .html 파일의 form과 연동시 발생할 수 있는 오류 (2) | 2008/08/01 |
| Rails로 Openid 로그인 기능 구현시 발생가능한 문제 (0) | 2008/07/29 |
| Ubuntu 8.04에서 passenger 설치 및 오류 대처법 (0) | 2008/07/17 |
| Rails 설치 후 발생하는 sqlite3 관련 오류 (2) | 2008/06/13 |
TRACKBACK http://www.buggymind.com/trackback/135
-
연군의 생각 삭제
2010/02/04 14:45TRACKBACK FROM chiwoochun's me2DAY이 문제가 아닐까 추정하고 타임워커 님이 알려준 MAMP 설치 후 재 시도중.
-
이군의 생각 삭제
2010/04/13 01:16TRACKBACK FROM e2goon's me2DAY이 책의 발행일은 2008년 2월 5일이며 ROR에서 mysql이 기본적으로 설치되어 있는 구버전의 기준으로 하여 안내하고 있다. (현재는 mysql 대신 sqlite3가 기본으로 제공된다.) ROR 갓 입문하신 분들은 착오 없으시길. 해결법, sqlite3둘러보기
댓글을 달아 주세요
이게 문제였군요!! ㅠㅠ 안되서 설치만 여러번 한것 같아요...
2008/08/29 10:08 [ ADDR : EDIT/ DEL : REPLY ]감사합니다. ^ㅡ^ 책은 구매해서 잘 보고있어요. 행복한 하루 되세요..
감사합니다. 앞으로도 궁금한게 있으시면 자주 들러주시기 바랍니다. ^^
2008/08/29 11:20 [ ADDR : EDIT/ DEL ]