我尝试在带有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
只重复已发送到控制台的内容。我该如何安装这个宝石?
答案 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
仅此而已。
我希望这会有所帮助