我尝试在装有 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 实际上不是 RubyGem,它是一个“CGem”,IOW 它是用 C 编写的。这意味着它必须被编译和链接安装 Ruby 解释器时,为了执行此操作,它需要 Ruby 解释器的 C 头文件。
如果你自己编译 Ruby,这些头文件会自动安装,然而,在 RedHat-ish 系统中,这些头文件通常打包在一个单独的包中,称为 <whatever>-dev
.因此,在这种情况下,您需要安装 ruby-dev
包,可能还有 libsqlite3-dev
(Ubuntu) 或 sqlite-devel
(Fedora) 包也是如此。
但是,您最好只安装操作系统的预打包 libsqlite3-ruby
包,这样所有的依赖关系都会自动得到满足。
(注意:所有软件包名称都是凭空而来的,在您的系统上可能有所不同。)
关于ruby-on-rails - 为什么我不能安装 SQLite gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/421225/