Я не могу заставить работать комплект разработки ruby ​​для Windows XP - PullRequest
5 голосов
/ 17 февраля 2010

Итак, я не могу на всю жизнь заставить это работать должным образом. Моя конечная цель - установить и работать с гемом dbd-odbc, и из нескольких прочитанных мной вещей мне нужно установить привязку ODBC для ruby ​​вместе с гемом dbd-odbc. Что ж, я могу установить гем dbd-odbc просто отлично, но когда дело доходит до попытки установить привязку, он вылился на меня так:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-odbc-0.9998.gem:
        ERROR: Failed to build gem native extension.`

c:/tools/ruby/ruby-1.9.1-p376/bin/ruby.exe extconf.rb
checking for version.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/tools/ruby/ruby-1.9.1-p376/bin/ruby
        --with-odbc-dir
        --without-odbc-dir
        --with-odbc-include
        --without-odbc-include=${odbc-dir}/include
        --with-odbc-lib
        --without-odbc-lib=${odbc-dir}/lib
c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:364:in 'try_do': The complier failed to generate an executable file. (RuntimeError)  
You have to install development tools first.  
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:433:in 'try_cpp'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:811:in 'block in have_header'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:670:in 'block in checking_for'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block (2 levels) in postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block in postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:272:in 'postpone'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:669:in 'checking_for'
        from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:810:in 'have_header'
        from extconf.rb:22:in ''

Итак ... читая его, он говорит, что мне нужно сначала установить инструменты разработки. Прекрасно и модно. Я иду сюда и беру комплект разработчика. Я брожу здесь и читаю инструкции по его установке. Я устанавливаю его.
На заметку - я попробовал это с установкой 1.9.1 в один клик с сайта установщика ruby. Я пробовал это с предварительно скомпилированными двоичными файлами mswin-32 для ruby, под 1.8.6, 1.8.7 и 1.9.1. Никто из них не работал.
Я остановлюсь на установщике в один клик, поскольку, похоже, все инструкции, с которыми я сталкиваюсь в Интернете, используются. Хорошо. Это говорит, чтобы отредактировать мой файл fstab. Я делаю. Вот мои текущие настройки:
Моя установка ruby ​​находится в: C:\tools\ruby\ruby19 В этот каталог был извлечен devkit, и я могу проверить / bin и увидеть там gcc.bat, make.bat и sh.bat.
Я следую инструкциям и изменяю свой файл devkit / msys / 1.0.11 / etc / fstab. Теперь это выглядит так:
C:/tools/ruby/ruby19/devkit/gcc/3.4.5 /mingw C:/tools/ruby/ruby19/devkit/msys/1.0.11/usr/local /usr/local

Независимо от того, что я, похоже, делаю, я не могу на всю жизнь получить привязывающий камень odbc для компиляции с нативными расширениями. Я продолжаю получать ту же ошибку снова и снова. Это очень расстраивает - пожалуйста, помогите!

Ответы [ 5 ]

2 голосов
/ 25 января 2011

У меня была очень похожая проблема: я пытался заставить DBI и ODBC работать с Ruby 1.9 в Windows. Ruby 1.8 работал нормально, но 1.9 представлял много проблем. Наконец получил его на работу.

  1. Удалите все другие версии Ruby, Dev Kit и т. Д. Из моей системы (или просто отмените их где-нибудь). Попытка заставить Dev Kit работать с «грязной» системой вызвала проблемы по какой-то причине ... Драгоценные конфликты?
  2. Загрузите последнюю версию установщика Ruby из здесь и установите его.
  3. Получите комплект разработчика с github.com/oneclick/rubyinstaller/wiki/development-kit и следуйте инструкциям.
  4. Получить последнюю версию Ruby ODBC можно по адресу www.ch-werner.de/rubyodbc/. Загрузите его как Ruby gem и сохраните местоположение.
  5. Установите Ruby ODBC gem, выполнив эту команду: gem install ruby-odbc-0.99994.gem --platform = ruby ​​
  6. Установить DBI: gem install dbi
  7. Установить гем DBD-ODBC: gem install dbd-odbc
  8. Запустите простой тест, вам нужно хорошо идти.
2 голосов
/ 17 февраля 2010

Вы убиваете себя.

Для операционных систем Win32 библиотеки DLL с 0,997 доступны в i386-msvcrt-ruby-odbc.zip.Он содержит файлы odbc.so и odbc_utf8.so, которые необходимо скопировать в каталог ... / ruby ​​/ 1.8 / i386-msvcrt установок Ruby 1.8 на основе MSVC.

Попробуйте поместить эти файлыгде рекомендуется, затем установите эту версию гема и посмотрите, как он работает.

1 голос
/ 26 января 2011

Рон, чтобы все это заработало, ты не забыл создать новое соединение ODBC в своем источнике данных ODBC?

Для Ruby 1.8 вам не нужно ничего «делать»; размещения этих файлов odbc из i386-msvcrt-ruby-odbc.zip должно быть достаточно (инструкции приведены на ch-werner.de/rubyodbc)

Вы загружали гемы dbi & dbd-odbc?

1 голос
/ 15 сентября 2010

Это сработало и для меня с рельсами 3. Я столкнулся с 2 гочами в процессе. 1. Ruby 1.9.2 не позволил бы мне установить ruby-odbc, поэтому я переключился на 1.8.7. и 2. Для Rails 3 вы должны включить в свой гемфайл следующие строки:

gem 'activerecord-sqlserver-adapter'

драгоценный камень 'ruby-odbc'

После этого вышеприведенные инструкции сработали без нареканий!

1 голос
/ 18 февраля 2010

Хорошо, я думаю, что это минимум. Я удалил все: c: \ ruby, MinGW, MSYS, все то, что я возился, пытаясь заставить это работать.

Тогда я:

  1. установлено Ruby Один щелчок: http://rubyforge.org/frs/download.php/69034/rubyinstaller-1.8.7-p249-rc2.exe
  2. "gem install activerecord-sqlserver-adapter "
  3. "gem install rails "
  4. установлено devkit : разархивировано rubyforge.org/frs/download.php/66888/devkit-3.4.5r3-20091110.7z в c: \ ruby ​​
  5. "gem install ruby-odbc ", который собран и установлен v. 0.999
  6. создал DSN с именем dev-travel-dsn, используя «Панель управления> Администрирование> Источники данных (ODBC)»
  7. поместите это в мой database.yml:

development:
    adapter: sqlserver
    mode: odbc
    dsn: dev_travel_dsn
    username: some_user
    password: some_secret
    host: some_host

Я запустил "rake db: schema: dump", который работал просто отлично.

Это странно, но даже если вы помещаете много одинаковых вещей в DSN Manager, вы также должны поместить их в database.yml.

В любом случае, это минимальные требования для использования Sql Server / Rails 2.3.5 / Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...