为什么我不能安装SQLite gem?

Eri*_*oob 64 ruby sqlite gem ruby-on-rails

我尝试在带有Ruby 1.8.6,Rails 2.2.2,gem 1.3和sqlite-3.5.9的Fedora 9 Linux机器上安装SQLite gem.这是我正在运行的命令及其结果:

sudo gem install 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 extconf.rb install sqlite3-ruby
can't find header files for ruby.

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
Run Code Online (Sandbox Code Playgroud)

gem_make.out只重复已发送到控制台的内容.我该如何安装这个宝石?

Jör*_*tag 136

SQLite RubyGem实际上不是Ruby Gem,它是一个" C Gem",IOW用C语言编写.这意味着它必须在安装时编译并链接到Ruby解释器,为了做到一点,它需要Ruby解释器的C头文件.

如果您自己编译Ruby,那些头文件将自动安装,但是,在RedHat-ish系统中,这样的头文件通常打包在一个单独的包中,称为<whatever>-dev.因此,在这种情况下,您将需要安装ruby-dev软件包以及可能的libsqlite3-dev(Ubuntu)或sqlite-devel(Fedora)软件包.

但是,您可能最好只安装操作系统的预打包libsqlite3-ruby软件包,这样就可以自动满足所有依赖项.

(注意:所有包装名称都是凭空而来的,可能与您的系统不同.)

  • 在Ubuntu上我做了apt-get install libsqlite3-ruby,它运行得很好.作为根,当然...... (7认同)
  • libsqlite3-dev和ruby-dev确实有效!谢谢 (7认同)
  • 该死的很酷,这实际上是正确的答案......我试图安装SqlLite时失败了,问题是每分钟产生新的错误信息.现在,如果提问者只是将此标记为正确的答案,我们就会开展业务. (3认同)
  • 或者如果你想安装gem,你需要apt-get install ruby​​-dev,正如Jorg所说. (3认同)

hac*_*osh 13

你可能需要ruby dev包.对于Ubuntu,您必须安装ruby1.8-dev,其中包含ruby头文件.一个快速的谷歌说yum包是ruby-devel.所以运行这个:

sudo yum install ruby​​-devel


小智 10

我遇到问题在我的fedora 13盒子上安装sqlite3-ruby gem.在sudo yum安装sqlite-devel之后修复了它


mat*_*sca 9

当我遇到这个问题时:

gem install sqlite3 -v '1.3.9'
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
    ERROR: Failed to build gem native extension.
Run Code Online (Sandbox Code Playgroud)

对我来说,安装" libsqlite3-dev ":

apt-get install libsqlite3-dev
Run Code Online (Sandbox Code Playgroud)


小智 6

sudo apt-get install ruby-dev
Run Code Online (Sandbox Code Playgroud)

为我修好了.