Image

Category:

RoR & lol

В выходные развлекался с Ruby on rails.
На первый взгляд процесс установки и настройки показался простым, как валенок. Тем более, что он пошагово описан на http://www.rubyonrails.ru. Но, не тут кобыла, как говорится.


Первый выстрел в ногу произошёл при попытке выполнить gem install rails, выглядело это так:

ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory - C:/Users/Андрей

Ага, не понравилась кирилица, но причём здесь такой путь, когда Ruby установлен в E:/Ruby192?
Всё дело в волшебных пузырьках, а точнее в содержимом gem.bat, пришлось всё закомментировать и заменить на более рабочий вариант, спасибо stackoverflow.com :
REM @ECHO OFF
REM IF NOT "%~f0" == "~f0" GOTO :WinNT
REM ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
REm GOTO :EOF
REM :WinNT
REM @"%~dp0ruby.exe" "%~dpn0" %*

@ECHO OFF
SET _HOMEPATH=%HOMEPATH%
SET HOMEPATH=E:\Ruby192
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "E:\Ruby192\bin\gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*
:EOF
SET HOMEPATH=%_HOMEPATH%

Но на этом квест не закончился.
После создания тестового web примера, в моём случае -- это была команда rails app/example1 , предлагалось перейти внутрь каталога web-приложения и выполнить ruby scripts/server. Да-да-да, вы наверное догадались, что такого скрипта там нет, а есть одинокий rails. Соответственно, запускать нужно rails с параметром server: rails server.

Итак, Рональдиньо обходит одного, второго, удар по воротам... х...й -- штанга. Теперь сообщается, что sqlite3-ruby не установлен. Послушно выполняю gem install sqlite3-ruby, дрожащей рукой набираю команду запуска сервера... А-а-а-а-а, sqlite3.dll не найдена. Жестоко ошибается тот, кто думает, что достаточно скачать эту библиотеку и закинуть куда-нибудь в Windows/system или Windows/system32. На это есть ответ Чемберлену, что-то наподобие такого: "The procedure entry point sqlite3_backup_finish could not be loacated in the dynamic link library sqlite3.dll". О как, точку входа она не находит, видите ли.

Слава Богу, гугл не без добрых людей. Итак, заходим на http://www.sqlite.org/download.html и скачиваем оттуда три архива, содержащих: sqlite3.dll, sqlite3.def, sqlite3.exe. Впрочем sqlite3.exe можно исключить. Копируем всё это добро в bin нашего Ruby, в моём случае -- это E:/Ruby192.

Так, попытка номер три: rails server

=> Booting WEBrick
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-01-23 02:46:03] INFO WEBrick 1.3.1
[2011-01-23 02:46:03] INFO ruby 1.9.2 (2010-12-25) [i386-mingw32]
[2011-01-23 02:46:03] INFO WEBrick::HTTPServer#start: pid=2608 port=3000
[2011-01-23 02:46:22] INFO going to shutdown ...
[2011-01-23 02:46:23] INFO WEBrick::HTTPServer#start done.

Теперь смотрим в браузере что выдаётся по http://localhost:3000

Аллилуйя!!! Заработало.
Ну и кто после этого опенсорц? :-)


Полезные ссылки:
http://rubyonrails.orghttp://rubyforge.orghttp://www.rubyonrails.ru