【问题标题】:Installing ruby-odbc gem on mac os x 10.9 in RVM在 RVM 中的 mac os x 10.9 上安装 ruby​​-odbc gem
【发布时间】:2014-09-26 05:56:31
【问题描述】:

我正在尝试将 ruby​​-odbc gem 安装在 Mac OS X 10.9 上的 ruby​​-1.9.3-p547 下,以便与通过 ODBC 连接到 SAP 系统的 rails 2.3.12 应用程序一起使用。

环境

  • Mac OS X 10.9(小牛队)
  • 安装了 ruby​​ 1.9.3 和其他 ruby​​ 的 RVM
  • Gems for Rails 2.3.12 应用程序
  • 酿造
  • 已安装 iODBC

情况

gem系统在执行时构建失败

gem install ruby-odbc 

抱怨找不到sql.h

ERROR: sql.h not found

然后我尝试通过

告诉 gem 安装环境 ODBC 标头的位置
gem install ruby-odbc -- --with-odbc-dir=/usr/local/iODBC

但这仍然失败并显示以下消息(基本上仍然找不到 sql.h 头文件)。

此时 - 由于无法构建 gem 而被卡住

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

/Users/grantsayer/.rvm/rubies/ruby-1.9.3-p547/bin/ruby extconf.rb --with-odbc-dir=/usr/local/iODBC --with-odbc-include=/usr/local/iODBC/include
checking for version.h... no
checking for sql.h... no
*** 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
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/grantsayer/.rvm/rubies/ruby-1.9.3-p547/bin/ruby
    --with-odbc-dir
    --with-odbc-include=${odbc-dir}/include
    --with-odbc-lib
    --without-odbc-lib=${odbc-dir}/lib
ERROR: sql.h not found

extconf failed, exit code 1

【问题讨论】:

  • 一个附加项 - 请注意,如果我在 gem 之外构建 odbc.bundle;即使用下载的源包并运行 ruby​​ -Cext extconf.rb

标签: ruby-on-rails odbc unixodbc


【解决方案1】:

已解决问题。关键是将 gem 安装为的命令

gem install ruby-odbc -- --with-odbc-dir=/usr/local/iODBC/

在此之前的关键步骤是按照步骤重新安装软件堆栈

  1. 安装 Homebrew:通过命令查看 - Brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  1. 安装RVM

$ \curl -sSL https://get.rvm.io | bash -s 稳定

  1. 安装 Ruby-1.9.3,供与 ODBC 连接的应用程序使用

rvm 安装 ruby​​-1.9.3

  1. 安装 iODBC 系统 请参阅:iODBC Wiki

有多个版本,Mac OX 版本作为 DMG 文件提供,用于在应用程序中安装驱动程序管理器,以及构建 ruby​​-odbc gem 所需的头文件

http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/Downloads#Mac%20OS%20X

  1. 安装 ruby​​-odbc gem

ruby-odbc gem 描述在Ruby ODBC。这描述了原始源的构建,但 gem install 生态系统将获取源并构建。

gem install ruby-odbc -- --with-odbc-dir=/usr/local/iODBC/

重要的部分是已安装头文件和库的路径,它们通过 iODBC 安装放置在 /usr/local/iODBC 中。

成功是当您收到 gem 已安装的通常快乐消息时,如下所示:

gem install ruby-odbc -- --with-odbc-dir=/usr/local/iODBC/
Building native extensions with: '--with-odbc-dir=/usr/local/iODBC/'
This could take a while...
Successfully installed ruby-odbc-0.99995
Enclosing class/module 'Modbc' for class Object not known
Enclosing class/module 'Modbc' for class Environment not known
Enclosing class/module 'Modbc' for class Database not known
Enclosing class/module 'Modbc' for class Statement not known
Enclosing class/module 'Modbc' for class Column not known
Enclosing class/module 'Modbc' for class Parameter not known
Enclosing class/module 'Modbc' for class DSN not known
Enclosing class/module 'Modbc' for class Driver not known
Enclosing class/module 'Modbc' for class Error not known
Enclosing class/module 'Modbc' for class Date not known
Enclosing class/module 'Modbc' for class Time not known
Enclosing class/module 'Modbc' for class TimeStamp not known
Installing ri documentation for ruby-odbc-0.99995
1 gem installed

【讨论】:

  • 感谢您回答自己的问题!
  • 您也可以使用brew install libiodbc 安装iODBC,然后使用gem install ruby-odbc -- --with-odbc-dir=/usr/local/Cellar/libiodbc/3.52.12/bin/iodbc 安装gem 确保匹配路径中的版本
  • 几分钟前我刚刚安装了我的。但是在我的 bin 文件夹中,我有以下 3 个文件: iodbc-config iodbctest iodbctestw 我不知道应该如何继续使用 iodbc。 ini 文件。
【解决方案2】:

我在 macOS Sierra 10.12 上遇到了类似的问题

我做了什么:

brew install libiodbc

然后检查安装包的版本(应该像libiodbc-3.52.12)如果在以下命令中有不同的变化:

gem install ruby-odbc -- --with-odbc-dir=/usr/local/Cellar/libiodbc/3.52.12/

祝你好运。

【讨论】:

  • 您可以使用"$(brew --prefix libiodbc)"自动获取安装的odbc版本的路径。完整的命令将是 gem install ruby-odbc --with-odbc-dir="$(brew --prefix libiodbc)"
猜你喜欢
  • 2014-04-29
  • 2013-11-03
  • 2014-02-12
  • 2014-12-05
  • 2013-03-14
  • 1970-01-01
  • 2014-04-29
  • 2013-11-02
相关资源
最近更新 更多