2009-01-07 171 views
54

我尝试在Ruby 1.8.6,Rails 2.2.2,gem 1.3和sqlite-3.5.9的Fedora 9 Linux机器上安装SQLite gem。以下是我正在运行的命令及其结果:为什么我不能安装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只是重复了已经发送到控制台。我怎样才能安装这个宝石?

+0

我不断得到这个错误! – Perpetualcoder 2009-01-07 17:41:56

+1

错误中的线索是“找不到ruby的头文件”......这意味着您将需要ruby的开发包。 – 2009-01-07 20:49:25

+0

@ salt.racer/ANY ONE THERE - 你能否发布需要什么包(主要)。 – 2014-01-01 10:50:03

回答

125

SQLite的RubyGem实际上不是红宝石宝石,这是一个“Ç宝石”,督察它是用C语言编写这意味着它已经被编译并链接到Ruby解释器,当你安装它,为了做它需要Ruby解释器的C头文件。

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

然而,你可能会更好只是安装操作系统的预包装libsqlite3-ruby包,这样,所有的依赖关系自动满足。

(注:所有的包名无中生有的,可能是你的系统上的不同。)

1

你有所需的所有源代码来构建sqlite3的,红宝石? Gem正试图编译一些C代码,并找不到头文件。如果你愿意放弃编译,你可以使用fedora rpm for sqlite3-ruby(我不使用fedora,但我确定存在)。就个人而言,我更喜欢使用宝石而不是发行版的包装系统。

+0

mysql头文件的fedora rpm就像'mysql-dev',所以正确的sqlite rpm很可能是'sqlite3-dev' – erik 2009-01-07 17:58:53

+0

我现在使用的是FreeBSD 7.1,而且我有sqlite3-3.6.4端口安装,这提供了宝石所需要的一切,如果我没有记错的话。我试图自己检查Rails 2.2.2。祝你好运埃里克! – barneytron 2009-01-07 18:14:14

0

我不是很熟悉的Fedora,但在Ubuntu当你安装包你有apt-get的,你必须安装构建必需品,其中包括海湾合作委员会和其他编译工具C.我会说,可能是你的问题,你可以看看如何使用RPM或apt-get在Fedora上安装。

+0

这是Fedora的胜利,但这不是问题。这是libsqlite3-ruby问题。 – 2009-01-22 00:51:35

11

你可能需要红宝石开发包。对于Ubuntu,你必须安装包含ruby头文件的ruby1.8-dev。快速谷歌说,yum包是ruby-devel。所以这条命令:

须藤yum的安装Ruby-devel的

0

我通过安装 '海湾合作委员会' 奇怪的是固定在我的OLPC(Fedora 9中)的问题。它似乎应该是那些开发包之一,但没有。

另外,对于其他的包,后缀是 “-devel”,而不是 “-dev”,所以一定要确保你得到那些结束对: “红宝石-devel的”, “SQLite的-devel的” ...

一旦你得到的安装,如果你得到你的宝石太旧“< 1.3.1”当您尝试运行各种轨道脚本,如错误:脚本/服务器或脚本/控制台,谷歌“upgrade_rubygems”来解决这个问题问题...

HTH ...

5

sudo易于得到安装Ruby-dev的

为我修好了。

0

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

的密钥包对我来说是libsqlite-ruby1.9.1 ......我记录我的经验(仅供参考),与此错误的: Sqlite3-gem-error-during-bundle-install

8

我面临的问题在我的Fedora 13箱安装sqlite3的,红宝石的宝石。 它被固定后须藤荫安装的sqlite-devel的

2

运行在Fedora操作系统中进行如下:

yum install rubygem-sqlite3 
0

运行 “命令百胜安装的sqlite-devel的”,然后 “创业板安装sqlite3的”。对我的Fedora同样的问题15

3

在Ubuntu 9和10的尝试:

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

然后运行

gem install sqlite3 
5

当我有这样的问题:

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 
0

在高山,你需要安装sqlite-dev包。

相关问题