2011-11-17 1 views
1

Я хочу сыграть еще немного с Ruby и в настоящее время, похоже, понять синатру, но также хотел бы теперь получить данные из реляционной базы данных. Я имею тенденцию использовать Mysql для тестовых приложений и пытался установить драгоценные камни, но я продолжаю получать исключение, когда он пытается скомпилировать собственный do_mysql gem, на который он опирается.Является ли Damamapper dm_mysql_adapter gem поддержкой окон?

У меня есть собственные расширения, и они отлично работали для самоцветов JSON, я помню, как некоторое время читал, что do_mysql не поддерживается для окон в настоящее время, поэтому просто интересно, все ли так.

Использование рубин 1.9.2 на Windows 7 (устанавливается с помощью рубинового инсталлятора + нативных расширений)

Вот исключение упаковывают помогает: установлен и настроен

C:\dump\ruby\DataMapperTest\gems>gem install dm-mysql-adapter-1.2.0.gem 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing dm-mysql-adapter-1.2.0.gem: 
     ERROR: Failed to build gem native extension. 

     C:/Tools/Ruby192/bin/ruby.exe extconf.rb 
checking for my_global.h... no 
checking for mysql.h... no 
checking for main() in -llibmysql... no 
checking for mysql_query() in mysql.h... no 
checking for mysql_ssl_set() in mysql.h... no 
checking for localtime_r()... no 
checking for gmtime_r()... no 
checking for mysql.h... no 
checking for MYSQL_TYPE_STRING in mysql.h... no 
checking for MYSQL_TYPE_BIT in mysql.h... no 
checking for MYSQL_TYPE_NEWDECIMAL in mysql.h... no 
checking for mysql_query() in mysql.h... no 
checking for mysql_ssl_set() in mysql.h... no 
checking for mysql_sqlstate() in mysql.h... no 
checking for mysql_get_ssl_cipher() in mysql.h... no 
checking for mysql_set_character_set() in mysql.h... no 
checking for mysql_get_server_version() in mysql.h... no 
checking for MYSQL_FIELD.charsetnr in mysql.h... no 
creating Makefile 

make 
C:/Tools/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_do_mysql'" > do_mysql-i386- 
mingw32.def 
gcc -I. -IC:/Tools/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Tools/Ruby192/in 
clude/ruby-1.9.1/ruby/backward -I/C/Tools/Ruby192/include/ruby-1.9.1 -I. -O3 - 
g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings 
-Wno-missing-field-initializers -Wno-long-long -Wall -o do_common.o -c do_com 
mon.c 
gcc -I. -IC:/Tools/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Tools/Ruby192/in 
clude/ruby-1.9.1/ruby/backward -I/C/Tools/Ruby192/include/ruby-1.9.1 -I. -O3 - 
g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings 
-Wno-missing-field-initializers -Wno-long-long -Wall -o do_mysql.o -c do_mysq 
l.c 
do_mysql.c:5:19: fatal error: mysql.h: No such file or directory 
compilation terminated. 
make: *** [do_mysql.o] Error 1 


Gem files will remain installed in C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/do_ 
mysql-0.10.7 for inspection. 
Results logged to C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/do_mysql-0.10.7/ext/ 
do_mysql/gem_make.out 

C:\dump\ruby\DataMapperTest\gems> 

Mysql 5.5 Community Edition и Mysql был добавлен в систему PATH.

ответ

3

DataMapper и DataObjects (нижний уровень, который соединяется с БД) do работает на Windows.

Однако, кажется, что do_mysql 0.10.7 пропускает скомпилированные двоичные файлы для x86-mingw32 платформы:

http://rubygems.org/gems/do_mysql/versions

Вы можете компилировать do_mysql самостоятельно, используя MySQL Connector интерфейс/C, который не зависит от версии MySQL вы установили на свой компьютер.

Пожалуйста, обратите внимание на этот блог, который содержит инструкции по установке:

http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

Инструкция для mysql камня, но изменить его do_mysql должна работать (для примера кода, который MySQL конкретный кроме ..

Надежда, что помогает

+0

Работал лечить, и я узнал что-то новое. Большое спасибо за то, что нашли время, чтобы помочь! одна вещь, которая бросила меня, хотя это было, когда я указывал каталог MySQL в командной строке, я пытался использовать относительный путь, и вызывал ошибки, делая его абсолютным исправлением (я знаю, что пример, который вы показываете, имеет абсолютное значение, но didnt знайте, что это было обязательным требованием), просто поднимитесь, чтобы кто-то другой. – Grofit

+0

Awesome, обновит инструкции, чтобы упомянуть об этом, а также избежать пути с пробелами! :) –

0

в delinkify ответ Луиса, это выглядит примерно так:

камень установить do_mysql --platform = рубин - --with-Mysql-реж = "C: /PROGRA~1/MySQL/MYSQLS~1.7/"

где "MySQL-Dir" путь является короткую версию каталога «MySQL Server 5.7» в «C: \ Program Files» в системе x64.

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

  • Нет связанных вопросов^_^