Как установить sqlite3 для Ruby на Windows?
Будучи действительно новичком в Ruby/Rails, и после попытки решить проблему самостоятельно в эти выходные, я пытаюсь обратиться за советом здесь.
У меня есть полная установка Ruby/Apache/Passenger на FreeBSD, и я пытаюсь выполнить задачу использования Windows в качестве среды разработки Ruby.
До сих пор:
- Ruby установлен, v2.0.0p0 (2013-02-24) [x64-ming32]
- Rails установлен, v.3.2.12
- У меня установлен и зарегистрирован Ruby Dev Kit.
- У меня есть sqlite3 dll/exe, скопированная в папку Ruby "bin" (которая также находится в моем пути с помощью консоли "Запустить командную строку с Ruby".)
- Я могу успешно запустить сервер rails и продолжить с учебника http://guides.rubyonrails.org/getting_started.html до версии 3.3.
-
"> rake db: create" говорит мне:
Пожалуйста, установите адаптер gem install activerecord-sqlite3-adapter
: gem install activerecord-sqlite3-adapter
(sqlite3 не входит в комплект. Добавьте его в Gemfile.)
которого я не имею "понимания". Попытка установить activerecord-sqlite3-адаптер дает мне "Не удалось найти правильный драгоценный камень..."
-
"> gem install sqlite3" возвращает:
Building native extensions. This could take a while...
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 на Windows. Я пытаюсь следовать основному учебнику по Rails, и он не определяет ни одну из этих проблем (возможно, потому что Ruby на Windows, кажется, естественная боль для многих людей.)
Что мне не хватает?!? Я просто пытаюсь установить sqlite3 для Ruby на Windows, кажется простым, не так ли?
Если я сделаю ">rais db"
оболочка SQLite будет представлена:
SQLite version 3.7.15.2 2013-01-09 11:53:05
Подобные вопросы с шагами, которые не решают мою проблему: Установка SQLite 3.6 В Windows 7
Ответы
Ответ 1
Несмотря на то, что на вопрос был дан ответ, я хочу опубликовать свое исследование, чтобы помочь другим. Я нашел много информации в Интернете, но, будучи новичком в Ruby, мне пришлось тяжело следить за всеми. Основной ответ приходит из следующего сообщения https://github.com/luislavena/sqlite3-ruby/issues/82 с инструкциями "paulwis" о том, как правильно установить sqlite3 для ruby 2.0.0-p0 и некоторые комментарии на https://github.com/rails/rails/issues/10150. Итак, вот оно:
- Установите Ruby Devkit для вашей установки (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe для меня, так как я использую машину x64)
- Загрузите и извлеките пакет autoconf с сайта Sqlite.org
- Запустите msys.bat(он находится в корневой папке ruby devkit)
- cd в путь, на который вы загрузили источник sqlite (например: "cd/c/dev/sqlite3" для пути "c:\dev\sqlite3", если вы новичок в MSYS/MINGW32)
- Запустить "./configure"
- Запустить "make"
- Запустить "make install"
-
Получите драгоценный камень 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)
- Проверьте Gemfile.lock вашего приложения rails и убедитесь, что он указывает на правильную версию sqlite3. Шахта была "sqlite3 (1.3.7-x86-mingw32)" и вручную изменила ее на "sqlite3 (1.3.7-x64-mingw32)". Снятие платформы также работает: "sqlite3 (1.3.7)".
Надеюсь, это поможет кому-то.
Ответ 2
Мне удалось установить sqlite3 с ruby2.0.0 на win 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. Имхо лучше хранить двоичные файлы sqlite3 в папке ruby bin.
Ответ 3
#!/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
Ответ 4
Для окон перейдите в C: /Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb
и убедитесь,
require "sqlite3"
вместо родного
Ответ 5
Получить бинарный файл отсюда
https://ci.appveyor.com/project/MSP-Greg/sqlite3-ruby/build/3/job/hhk6ie8gdo545svr/artifacts
а также
gem install c:\path\to\downloaded_gem.gem
Ответ 6
Я подумал, что отвечу - из комментариев, ради потомства. Проблема заключалась в том, что я взял новую версию Ruby/Rails (для Windows), которая еще не была совместима с SQLite3.
Я понизил рейтинг до 1.9.x и смог выполнить все действия.
Ответ 7
Самый простой способ настроить Ruby on Rails на машине Windows - это использовать RailsInstaller, который автоматически устанавливает и настраивает sqlite3 для вас. Один шаг.
http://railsinstaller.org/en
Ответ 8
SQLite является одним из самых проблемных драгоценных камней. Он постоянно ломается: используйте это руководство: https://medium.com/ruby-on-rails-web-application-development/how-to-install-rubyonrails-on-windows-7-8-10-complete-tutorial- 2017-fc95720ee059
Ответ 9
Это старая ветка, но все еще актуальная.
Для нас это было так же просто, как редактирование Gemfile
и добавление конкретной версии для sqlite:
gem 'sqlite3', '~> 1.3.13
Ответ 10
Я собираюсь ответить на этот вопрос еще раз, потому что один модератор mofo удалил мой предыдущий пост. Любой модератор, читающий этот пост, понимает: