Проблемы с использованием Oracle с Rails - PullRequest
0 голосов
/ 03 августа 2010

Итак, следуя различным урокам, я установил следующие гемы на окно Windows:

"activerecord-oracle_enhanced-adapter"

и

"ruby-oci8"

, а также изменил свой файл database.yml, чтобы он выгляделнапример:

oracle_development:
  adapter: oracle_enhanced
  database: 127.0.0.0:1521/sid
  username: uid
  password: pid

Ruby OCI8 не будет компилироваться (учебник по адресу: [rails wiki] [1] подразумевал, что это может иметь место, и предложил вместо этого использовать версию 1.0.4).Итак, 1.0.4 компилируется и устанавливается просто отлично, но как только он у меня появляется (и загружается файл oci.dll в Ruby), я запускаю быстрый тест из консоли Rails и вижу:

Loading development environment (Rails 2.3.5)

OracleConnector.test RuntimeError: Пожалуйста, установите адаптер oracle_enhanced: gem install activerec ord-oracle_enhanced-adapter (ОШИБКА: ruby-oci8 версии 1.0.7 устарела. Пожалуйста, установите ruby-oci8 версии 2.0.3 или новее.)

Я не совсем уверен, что делать.Во-первых, у меня определенно есть «activerecord-oracle_enhanced-adapter», и я не уверен, почему он думает иначе.Для двоих я понятия не имею, как получить более новую копию OCI8 ... когда я пытаюсь, я вижу:

C:\Documents and Settings\jschultz\workspace\OracleTest>gem install ruby-oci8
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-oci8:
        ERROR: Failed to build gem native extension.

C:/Ruby/bin/ruby.exe extconf.rb
checking for load library path...
  PATH...
    checking C:\Ruby\bin... yes
  C:/Ruby/bin/oci.dll looks like a full client.
checking for cc... *** 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:/Ruby/bin/ruby
        --with-instant-client
        --without-instant-client
./oraconf.rb:562:in `check_cc': RuntimeError (RuntimeError)
        from ./oraconf.rb:549:in `init'
        from ./oraconf.rb:680:in `initialize'
        from ./oraconf.rb:345:in `new'
        from ./oraconf.rb:345:in `get'
        from extconf.rb:18
ng
---------------------------------------------------
Error Message:
  C compiler doesn't work correctly.
Backtrace:
  ./oraconf.rb:562:in `check_cc'
  ./oraconf.rb:549:in `init'
  ./oraconf.rb:680:in `initialize'
  ./oraconf.rb:345:in `new'
  ./oraconf.rb:345:in `get'
  extconf.rb:18
---------------------------------------------------
See:
 * http://ruby-oci8.rubyforge.org/en/HowToInstall.html
 * http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html




  [1]: http://wiki.rubyonrails.org/database-support/oracle

И я понятия не имею, что с этим делать ...

Ответы [ 2 ]

0 голосов
0 голосов
/ 03 августа 2010

для начала вы должны использовать правильную версию ruby. Используйте версию 1.8.7 или 1.9.1 с rubyinstaller.org. Затем обязательно установите комплект для разработки.

Как только вы это сделаете, вы можете просто запустить gem install ruby-oci8, и оно будет работать. Комплект разработчика позволит делать нативные сборки.

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