为什么我不能安装SQLite gem?

问题描述 投票:62回答:14

我尝试在带有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只重复已发送到控制台的内容。我该如何安装这个宝石?

ruby-on-rails ruby sqlite gem
14个回答
135
投票

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

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

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

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


0
投票

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

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

一旦安装好了,如果你在尝试运行各种rails脚本(例如:脚本/服务器或脚本/控制台)时发现你的gems太旧“<1.3.1”错误,请点击“upgrade_rubygems”来解决这个问题。 ..

HTH ...


0
投票

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


0
投票

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

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


0
投票

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


0
投票

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


12
投票

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

sudo yum install ruby​​-devel


9
投票

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


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.

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

apt-get install libsqlite3-dev

6
投票
sudo apt-get install ruby-dev

为我修好了。


3
投票

在Ubuntu 9和10上尝试:

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

然后跑

gem install sqlite3

2
投票

对Fedora OS运行以下命令:

yum install rubygem-sqlite3

1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.