为什么我不能安装SQLite gem?

时间:2009-01-07 17:30:55

标签: ruby-on-rails ruby 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只重复已发送到控制台的内容。我该如何安装这个宝石?

15 个答案:

答案 0 :(得分:134)

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软件包,这样就可以自动满足所有依赖项。

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

答案 1 :(得分:12)

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

  

sudo yum install ruby​​-devel

答案 2 :(得分:9)

我遇到了在我的fedora 13盒子上安装sqlite3-ruby gem的问题。 它是在 sudo yum install sqlite-devel

之后修复的

答案 3 :(得分:8)

当我遇到这个问题时:

_bpy

对我来说,安装“ libsqlite3-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.

答案 4 :(得分:6)

sudo apt-get install ruby-dev

为我修好了。

答案 5 :(得分:3)

在Ubuntu 9和10上尝试:

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

然后运行

gem install sqlite3

答案 6 :(得分:2)

为Fedora OS运行以下命令:

yum install rubygem-sqlite3

答案 7 :(得分:1)

您是否拥有构建sqlite3-ruby所需的所有源代码? Gem正在尝试编译一些C代码,但无法找到标题。如果你想放弃编译,你可以使用fedora rpm for sqlite3-ruby(我不使用fedora,但我确定存在)。就个红宝石而言,我更喜欢使用宝石而不是发行版的包装系统。

答案 8 :(得分:0)

我对Fedora并不是很熟悉,但在Ubuntu中,当你安装apt-get软件包时,你必须安装build-essentials,包括gcc和C的其他编译工具。我想说可以是你的问题,你可以看看如何在Fedora上使用RPM或apt-get安装它。

答案 9 :(得分:0)

我通过奇怪的安装'gcc'修复了我的OLPC(Fedora 9)上的问题。它似乎应该是那些开发包之一,但不是。

另外,关于其他包,后缀是“-devel”,而不是“-dev”,所以请确保你得到那些结尾:“ruby-devel”,“sqlite-devel”......

安装完成后,如果在尝试运行各种rails脚本时,如果你的gems太旧“&lt; 1.3.1”出错,例如:script / server或script / console,请将google“upgrade_rubygems”改为解决这个问题...

... HTH

答案 10 :(得分:0)

我有同样的问题...而不是宝石上缺少的部分我在unbuntu上使用了突触。

我的关键包是libsqlite-ruby1.9.1 ...我在以下错误中记录了我的经验(供参考): Sqlite3-gem-error-during-bundle-install

答案 11 :(得分:0)

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

答案 12 :(得分:0)

在alpine上,您需要安装sqlite-dev包。

答案 13 :(得分:0)

在Fedora 29上生成react-rails应用程序后,在运行bundle install时遇到此错误。我能够通过运行dnf search sqlite3并安装dnf install libsqlite3x-devel来确定合适的开发包。 。这为我解决了。

答案 14 :(得分:0)

我也遇到了同样的问题,问题是您的Linux安装需要安装SQLite3的开发库才能构建gem。

这是我解决此问题的方式

打开终端并运行以下命令

sudo apt-get install sqlite3

sudo apt-get install libsqlite3-dev

然后尝试使用此命令再次安装Sqlite3 gem

gem install sqlite3

仅此而已。

我希望这会有所帮助