【问题标题】:ROR + Unable to install tiny_tdsROR + 无法安装 tiny_tds
【发布时间】:2011-09-23 06:28:13
【问题描述】:

在这里,我试图从 MS-SQL Server 2008 获取数据到我在 Ubuntu 10 上的 Rails 应用程序。但我无法安装 tiny_tds。我按照 github 上给出的步骤进行操作。但没有回应。请指导我正确设置。

使用 gem 命令 :: gem install tiny_tds

这个命令也是 :: gem install tiny_tds –with-freetds-include=/usr/local/include/freetds –with-freetds-lib=/usr/local/lib

错误:

Installing tiny_tds (0.4.5) with native extensions /home/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/home/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb 
looking for library directory /home/.rvm/gems/ruby-1.9.2-p180@rails3/lib ... no
looking for library directory /home/.rvm/gems/ruby-1.9.2-p180@rails3/lib/freetds ... no
looking for library directory /home/.rvm/gems/ruby-1.9.2-p180@global/lib ... no
looking for library directory /home/.rvm/gems/ruby-1.9.2-p180@global/lib/freetds ... no
looking for library directory /home/.rvm/rubies/ruby-1.9.2-p180/lib ... yes
checking for main() in -lsybdb... no
looking for library directory /home/.rvm/rubies/ruby-1.9.2-p180/lib/freetds ... no
looking for library directory /home/.rvm/lib ... yes
checking for main() in -lsybdb... no
looking for library directory /home/.rvm/lib/freetds ... no
looking for library directory /home/lib ... no
looking for library directory /home/lib/freetds ... no
looking for library directory /usr/local/lib ... yes
checking for main() in -lsybdb... no
looking for library directory /usr/local/lib/freetds ... no
looking for library directory /usr/lib ... yes
checking for main() in -lsybdb... no
-----
Can not find FreeTDS's db-lib or include directory.
-----
*** 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
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
    --enable-iconv
    --disable-iconv
    --enable-iconv
    --disable-iconv
    --with-freetds-dir
    --without-freetds-dir
    --with-freetds-include
    --without-freetds-include=${freetds-dir}/include
    --with-freetds-lib
    --without-freetds-lib=${freetds-dir}/lib
    --enable-lookup
    --disable-lookup
    --with-sybdblib
    --without-sybdblib
    --with-sybdblib
    --without-sybdblib
    --with-sybdblib
    --without-sybdblib
    --with-sybdblib
    --without-sybdblib
looking for library directory /usr/lib/freetds ... no
looking for library directory /usr/local/ruby/lib ... no
looking for library directory /usr/local/ruby/lib/freetds ... no


Gem files will remain installed in /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/tiny_tds-0.4.5 for inspection.
Results logged to /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/tiny_tds-0.4.5/ext/tiny_tds/gem_make.out
    from /home/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rubygems/installer.rb:486:in `block in build_extensions'
    from /home/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rubygems/installer.rb:446:in `each'
    from /home/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rubygems/installer.rb:446:in `build_extensions'
    from /home/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rubygems/installer.rb:198:in `install'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/source.rb:101:in `block in install'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/source.rb:91:in `install'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/installer.rb:58:in `block (2 levels) in run'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/installer.rb:57:in `block in run'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `block in each'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/installer.rb:49:in `run'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/installer.rb:8:in `install'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/cli.rb:222:in `install'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/gems/bundler-1.0.15/bin/bundle:13:in `<top (required)>'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/bin/bundle:19:in `load'
    from /home/.rvm/gems/ruby-1.9.2-p180@rails3/bin/bundle:19:in `<main>'

【问题讨论】:

  • 安装 gem 时遇到的确切错误是什么?

标签: ruby-on-rails ruby rubygems


【解决方案1】:

您是否在安装 gem 之前安装了 freeTDS?

sudo apt-get install freetds-dev

然后

gem install tiny_tds

【讨论】:

  • 你拯救了我的一天 :)
  • 使用CentOS的可以跑yum install freetds-devel -y
【解决方案2】:

上面的答案是正确的,这只是给那些喜欢自制的Mac用户的补充说明

It 命令本质上是一样的:

brew install freetds

【讨论】:

【解决方案3】:

正如 ar3 所说,上面的答案是正确的。对于 CentOS 上的用户,RPM 是 freetds-devel,而不是 freetds-dev(以防你像我一样对系统管理员不熟悉)。

yum install freetds-devel

【讨论】:

    【解决方案4】:

    试试这个,

    从以下链接下载 freetds 并安装它

    freetds download link

    按照以下说明安装:

    cd /home/user/Downloads/
    tar -zxvf freetds-1.00.23.tar.gz
    

    然后

    cd freetds-1.00.23/
    ./configure
    make
    sudo make install 
    

    freetds安装完成后,试试bundle install

    这将解决 freetds 依赖问题。

    【讨论】:

      猜你喜欢
      • 2019-12-12
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多