为什么我不能安装SQLite的gem?

我尝试在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 

gem_make.out只是重复已经发送到控制台的东西。 我怎样才能安装这个gem?

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包可能会更好,这样所有的依赖关系都会自动满足。

(注意:所有的软件包名称都是空的,可能与您的系统不同。)

您可能需要使用ruby dev软件包。 对于Ubuntu,你必须安装包含ruby头文件的ruby1.8-dev。 快速谷歌说,百胜包是ruby。 所以运行这个:

sudo yum安装ruby-devel

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

sudo apt-get install ruby​​-dev

给我修好了

当我有这个问题:

 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. 

对我来说,安装“ libsqlite3-dev ”:

 apt-get install libsqlite3-dev 

在Ubuntu 9和10上尝试:

 sudo apt-get install ruby-dev sudo apt-get install sqlite3-dev 

然后运行

 gem install sqlite3 

运行以下Fedora操作系统:

 yum install rubygem-sqlite3 

你有build立sqlite3-ruby所需的所有源代码吗? gem正试图编译一些C代码,并找不到头。 你可能可以使用fedora rpm for sqlite3-ruby(我不使用fedora,但是我确定存在),如果你宁愿放弃编译。 对于ruby的东西,我更喜欢使用gem而不是发行版的包装系统。

我对Fedora并不是非常熟悉,但是在Ubuntu中,当你安装了apt-get的软件包时,你必须安装包含gcc和其他编译工具的build-essentials。我会说这可能是你的问题,你可以看看如何在Fedora上使用RPM或apt-get进行安装。

我通过安装“gcc”足够奇怪地解决了我的OLPC(Fedora 9)上的问题。 它似乎应该是那些开发包之一,但没有。

此外,关于其他包,后缀是“-devel”,而不是“-dev”,所以请确保你得到的结局是正确的:“ruby-devel”,“sqlite-devel”…

一旦你安装了,如果你尝试运行不同的rails脚本,如:脚本/服务器或脚本/控制台,谷歌“upgrade_rubygems”,以解决这个问题,如果你的gem太旧“<1.3.1”错误。 ..

HTH …

运行“sudo yum install sqlite-devel”,然后运行“gem install sqlite3”。 在我的Fedora 15上有同样的问题。

我有这个相同的确切问题…而不是gem'ing我在unbuntu上使用突触缺less的部分。

我的关键包是libsqlite-ruby1.9.1 …我logging了我的经验(供参考)与此错误: Sqlite3-gem-error-bundle-install