2013-03-18 3 views
29

Будучи действительно новым для Ruby/Rails, и после того, как я решил решить эту проблему в эти выходные, я пытаюсь обратиться за советом здесь.Как установить sqlite3 для Ruby на Windows?

У меня есть полная настройка Ruby/Apache/Passenger, выполненная на FreeBSD, и я пытаюсь выполнить задачу использования Windows в качестве среды разработки Ruby.

До сих пор:

  • Рубин установлен, v2.0.0p0 (2013-02-24) [-ming32 x64] установлен
  • Rails, v.3.2.12
  • У меня есть установленный и зарегистрированный комплект Ruby dev.
  • У меня есть sqlite3 dll/exe, скопированная в папку «bin» Ruby (которая также находится на моем пути, используя консоль «Начать командную консоль с Ruby»).
  • Я могу запустить сервер рельсов успешно и продолжить с уроком http://guides.rubyonrails.org/getting_started.html до 3.3.
  • "> грабли БД: создать" говорит мне:

    Пожалуйста, установите адаптер sqlite3: (.. sqlite3 не является частью пучка Добавьте его в Gemfile) gem install activerecord-sqlite3-adapter

, который я не имеют «понимания». Попытка установить ActiveRecord-sqlite3-адаптер дает мне "Не удалось найти правильный драгоценный камень ..."

  • "> жемчужина установить sqlite3" возвращается:

    Building native extensions. This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension.

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb checking for sqlite3.h... *** extconf.rb failed ***

Прямо сейчас я застрял в точке, где я даже не знаю, в каком состоянии находится моя Ruby on Windows. Я пытаюсь следовать основному руководству Rails и не указывается ни одна из этих проблем (возможно, потому, что Ruby on Windows кажется естественной болью для многих людей.)

Что мне не хватает?!? Я просто пытаюсь установить sqlite3 для Ruby на Windows, кажется просто прав?

Если я ">rais db" SQLite оболочка представлена:

SQLite version 3.7.15.2 2013-01-09 11:53:05

Подобные вопросы с шагами, которые не решить мою проблему: Installing SQLite 3.6 On Windows 7

+0

'вопрос без ответа' на самом деле имеет общепринятый ответ. Вы пытались поместить sqlite.dll в свой каталог ruby ​​/ bin? – PinnyM

+0

Я не уверен, как процитировать мой первоначальный вопрос, но вот пуля «У меня есть sqlite3 dll/exe, скопированная в папку« bin »Ruby (которая также находится на моем пути с помощью« Start Command Prompt with Ruby ») console.) " – chrisp

+2

Вы используете x64 ruby, .dll, вероятно, 32-битный и не может быть использован. Вы можете попробовать сборку x64 .dll, упомянутую здесь [http://stackoverflow.com/questions/4315606/precompiled-sqlite-binaries-for-windows-x64]. – PinnyM

ответ

69

Несмотря на то, что на вопрос был дан ответ, я хочу опубликовать свое исследование, чтобы помочь другим. Я нашел много информации в Интернете, но, будучи новичком в Ruby, мне пришлось тяжело следить за всеми. Основной ответ приходит из следующего сообщения https://github.com/luislavena/sqlite3-ruby/issues/82 с инструкциями «paulwis» о том, как правильно установить sqlite3 для ruby ​​2.0.0-p0 и некоторые комментарии на https://github.com/rails/rails/issues/10150. Так вот:

  1. Установите Рубиновый DevKit для установки (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe для меня, так как я использую x64 машина)
  2. Скачать и извлечь пакет AUTOCONF из Sqlite.org
  3. Run msys.bat (он находится внутри рубин DevKit корневой папки)
  4. кд в пути, где вы загрузили SQLITE источника (например: «кд/с/DEV/sqlite3 «для пути» c: \ dev \ sqlite3 », если вы новичок в MSYS/MINGW32)
  5. Запустить« ./configure »
  6. Run "сделать"
  7. Run "сделать установку"
  8. Получить sqlite3 драгоценный камень, на этот раз с указанием платформы и путь к вновь скомпилированные исполняемые файлы:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o] 
    

    Например:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/ 
    

    (от путей, указанных в пункте 4)

  9. Проверьте Gemfile.lock вашего приложения рельсы и убедитесь, что указывает на правильную версию sqlite3. Шахта была «sqlite3 (1.3.7-x86-mingw32)» и вручную изменила ее на «sqlite3 (1.3.7-x64-mingw32)». Снятие платформы также работает: «sqlite3 (1.3.7)».

Надеюсь, это поможет кому-то.

+1

Большое спасибо за это! К сожалению, шаг № 8 мне не удалось: C: /Ruby200-x64/bin/ruby.exe extconf.rb --with-sqlite3-include = c: \ sqlite-auto conf-3071602 \ sqlite3.h --with-sqlite3 -lib = c: \ sqlite-autoconf-3071602 \ .libs \ sqlit e3.o проверка на sqlite3.h ... *** extconf.rb не удалось *** Не удалось создать Makefile по какой-то причине, возможно отсутствие необходимых библиотек и/или заголовков. Подробнее читайте в файле mkmf.log. Вы можете использовать . –

+2

Наконец-то его установили, проблема заключалась в том, что мне пришлось запустить команду 'gem install' внутри терминала MINGW32. Теперь я получаю эту ошибку при запуске сервера Rails: c: /Ruby200-x64/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb: 6: in 'require ': не может загрузить такой файл - sqlite3/sqlite3_native (LoadError) –

+0

все отлично до шага 8. Заголовки не найдены. Я просто решил использовать виртуальный бокс (проект колледжа). –

0

я решил поставить в ответ - - из комментариев, ради потомков. Проблема заключалась в том, что я захватил новую версию Ruby/Rails (для Windows), которая еще не была совместима с SQLite3.

Я понизил рейтинг до 1.9.x и смог выполнить все действия.

+0

I Я использую Ruby 2.0.0 и совместим с sqlite3 – jonathanrz

+0

@jonathanrz Спасибо, я изо всех сил стараюсь получить 2.0.0 для компиляции sqilte3 и рад слышать, что ваш работает. Не могли бы вы рассказать о том, какие инструкции вы следовали, чтобы заставить его скомпилировать? –

+1

@TylerGannon Я следил за путями из ответа williams, но на шаге 8 я использовал ответ denis-bu и добавил каталог libs с каталогом .libs в каталоге sqlite3. – jonathanrz

8

я смог установить sqlite3 с ruby2.0.0 на победу XP32 с помощью следующей команды:

c:\>gem install sqlite3 --platform=ruby -- --with-sqlite3-dir=C:/distr/sqlite --with-sqlite3-include=C:/distr/sqlite

Папка C:/distr/sqlite содержит следующие файлы

  • shell.c
  • sqlite3.c
  • sqlite3.h
  • sqlite3ext.h
  • sqlite3.def
  • sqlite3.dll

Итак, в основном я имею экстракт sqlite-amalgamation-3071602.zip и sqlite-dll-win32-x86-3071602.zip к C:/distr/sqlite.

HEADS UP

Вам все еще нужно поместить копию sqlite3.dll и sqlite3.def куда-PATH. IMHO лучше сохранить двоичные файлы sqlite3 в папке bin Ruby.

+0

. Это приводит к следующей ошибке для меня: http: // pastebin.com/UMUnsd6z –

+0

@ denis-bu im получает следующую ошибку..http: //pastebin.com/bunfLeWG – Lucky

+0

@ Lucky, у вас есть DevKit, установленный здесь http://rubyinstaller.org/downloads/? –

1
#!/usr/bin/env sh 

mkdir c:/sqlite3x86 
wget -P c:/sqlite3x86 http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma 
cd c:/sqlite3x86 
bsdtar --lzma -xf c:/sqlite3x86/sqlite-3.7.15.2-x86-windows.tar.lzma 
gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite3x86 
cd c:/ 
rm -rf c:/sqlite3x86 
0

Самый простой способ получить настройки для Ruby On Rails на компьютере ОС Windows является использование RailsInstaller, который автоматически устанавливает и конфигурирует sqlite3 для вас. Один шаг.

http://railsinstaller.org/en

Смежные вопросы