Ruby mysql2 gem, не может собрать на Windows 7 - PullRequest
0 голосов
/ 16 июня 2011

Я пришел из OSX, где Ruby работает супер безупречно в 90% случаев.Хотя я давно этого не трогал и сейчас работаю на компьютере с Windows 7.Я пытаюсь запустить простой проект Ruby on Rails, но мне кажется, что я не могу пройти мимо настроек моей базы данных.
Я хочу работать на mysql, но когда я пытаюсь установить gem mysql2 (через bundle installили gem install mysql2) Я получаю следующие ошибки:

Установка mysql2 (0.2.9) с собственными расширениями C: / Ruby192 / lib / ruby ​​/ site_ruby / 1 .9.1 / rubygems / installer.rb:533: в `спасении в блоке в build_extensions ': ОШИБКА: не удалось построить собственное расширение для гема.(Gem :: Installer :: ExtensionBuildError)

    C:/Ruby192/bin/ruby.exe extconf.rb checking for

rb_thread_blocking_region () ... * Сбой extconf.rb * Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотеки / или заголовки.Проверьте файл mkmf.log для более подробной информации.Возможно, вам понадобятся параметры конфигурации.

Я в значительной степени новичок, когда дело доходит до такого рода вещей, поэтому, если у кого-то есть какие-либо советы, пожалуйста, помогите!

Ответы [ 3 ]

2 голосов
/ 16 июня 2011

Для установки и компиляции расширений иногда требуются библиотеки и заголовки зависимостей. В этом случае вам нужны заголовочные файлы и библиотеки MySQL для правильной компиляции.

Предполагается, что вы загрузили Ruby с RubyInstaller , а также установили Development Kit и следовали его инструкциям по установке , чтобы успешно установить gem mysql2. Я рекомендую вам прочитать этот ответ на нашей странице устранения неполадок :

  1. Загрузить MySQL Connector / C
  2. Извлечь в путь без пробелов
  3. При установке gem mysql2 укажите дополнительные параметры (gem install mysql2 -v 0.2.10 -- --with-mysql-include=... --with-mysql-lib...)

Укажите для опции --with-mysql-include путь к каталогу include MySQL, Connector / C. То же самое для --with-mysql-lib, но это время указывает на каталог lib.

Не забудьте скопировать libmysql.dll в каталог Ruby bin.

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

1 голос
/ 16 июня 2011

Проблема с собственными расширениями в Windows заключается в том, что существует две разные инфраструктуры компилятора: одна на основе MS VC и ее Visual Studio, а другая на MinGW (Minimalist GCC для Windows).

Существуют собственные расширения Ruby, которые можно скомпилировать с любым из них и с другими, поддерживающими только одно. И поскольку большинство из них происходит из какой-то разновидности Unix, есть вероятность, что mingw работает лучше, чем MSVC.

Таким образом, вы можете попробовать установить mingw и использовать его для компиляции mysql gem - есть специальный пакет под названием devkit , который содержит минимально необходимую установку mingw, которую вы только что поместили в вашу установку ruby.

Мне удалось скомпилировать несколько собственных расширений, используя devkit: eventmachine, linecache, bson-ext и многие другие. И в devkit вы будете чувствовать себя гораздо больше дома :-) (из OSX)

0 голосов
/ 16 июня 2011

Если вы правильно настроили devkit, как упоминает @Tomasz, пожалуйста, убедитесь, что вы проверили совместимость версии mysql2 gem с windows, в прошлом я испытывал ее, чтобы вызвать проблемы, и мне пришлось пойти и установить предыдущую версию взаставить его работать.Последнее, что я помню, v0.2.6 была версия, которая поддерживала Windows.

...