无法构建本机gem扩展sqlite3

时间:2014-05-15 12:40:24

标签: ruby-on-rails ruby sqlite

我正在尝试使用gem install sqlite3-ruby -v x.x.x在Cygwin上安装sqlite3-ruby,我收到以下错误:

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

/usr/bin/ruby.exe extconf.rb
checking for fdatasync() in -lrt... *** 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.

有没有人知道如何在Cygwin上为Ruby on Rails安装sqlite3。据我所知,SQLite RubyGem实际上不是* Ruby * Gem,它是一个“* C * Gem”,IOW用C语言编写。这意味着它必须在安装时编译并链接到Ruby解释器,那有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

所以这不是一个完整的解决方案,因为我没有Windows框和cygwin方便,但错误信息表明无法找到linux实用程序fdatasync。

可以在此处找到工具linux手册页 http://linux.die.net/man/2/fdatasync

也许找出你是否正确安装了fdatasync并再试一次。

答案 1 :(得分:0)

我刚刚遇到这个问题 - 我第一次想安装Ruby gem 在我的新Cygwin 64位系统上。

  

据我所知,SQLite RubyGem实际上不是 Ruby Gem,它是一个   “ C Gem”,IOW它是用C语言编写的。这意味着它必须被编译和链接   安装时的Ruby解释器。

Cygwin实际上提供了一个安装sqlite3的预编译包 gem文件,包括sqlite3_native.so链接库文件。的名字 包是ruby-sqlite3,您可以使用Cygwin的Setup.exe.安装它 我个人喜欢使用apt-cyg 在可能的情况下(并非总是)所以我使用以下方法安装了包:

apt-cyg install ruby-sqlite3

这个包安装了相应的gem文件,可以通过运行看到 cygcheck -l ruby-sqlite3

/usr/lib/gems/ruby/2.0.0/sqlite3-1.3.9/gem.build_complete
/usr/lib/gems/ruby/2.0.0/sqlite3-1.3.9/sqlite3/sqlite3_native.so
/usr/share/gems/gems/sqlite3-1.3.9/API_CHANGES.rdoc
/usr/share/gems/gems/sqlite3-1.3.9/ChangeLog.cvs
/usr/share/gems/gems/sqlite3-1.3.9/CHANGELOG.rdoc
/usr/share/gems/gems/sqlite3-1.3.9/faq/faq.rb
/usr/share/gems/gems/sqlite3-1.3.9/faq/faq.yml
/usr/share/gems/gems/sqlite3-1.3.9/Gemfile
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/constants.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/database.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/errors.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/pragmas.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/resultset.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/statement.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/translator.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/value.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3/version.rb
/usr/share/gems/gems/sqlite3-1.3.9/lib/sqlite3.rb
/usr/share/gems/gems/sqlite3-1.3.9/LICENSE
/usr/share/gems/gems/sqlite3-1.3.9/Manifest.txt
/usr/share/gems/gems/sqlite3-1.3.9/README.rdoc
/usr/share/gems/gems/sqlite3-1.3.9/tasks/faq.rake
/usr/share/gems/gems/sqlite3-1.3.9/tasks/gem.rake
/usr/share/gems/gems/sqlite3-1.3.9/tasks/native.rake
/usr/share/gems/gems/sqlite3-1.3.9/tasks/vendor_sqlite3