在安装了 sqlite-devel 库的 AWS Linux 实例上安装 sqlite gem 失败

在安装了 sqlite-devel 库的 AWS Linux 实例上安装 sqlite gem 失败

我正在运行基于 ami-595a0a1c 构建的实例。我尝试安装 sqlite3 (或 sqlite) gem,但安装失败,出现以下错误:

$ sudo gem install sqlite3
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite3-devel' and check your shared library search path

(您的 sqlite3 共享库所在的位置)。extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能是缺少必要的库和/或标头。查看 mkmf.log 文件以了解更多详细信息。您可能需要配置选项。

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/sqlite3-1.3.3 for inspection. Results logged to /usr/lib64/ruby/gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out

通常,这只意味着您需要安装开发库,然后一切都会好起来。但是,我已经安装了 sqlite-devel 包,但仍然没有成功。由于这是 Amazon Linux 实例,如果可能的话,我宁愿不添加比 Amazon 提供的更多的存储库。我该怎么做才能让这个东西编译?感谢您的任何见解!

从一个全新的实例开始,以下是我所做的事情:

$ sudo yum 安装 ruby​​gems ruby​​-devel

$ sudo gem 更新--系统

$ sudo gem 安装 rails

$ rails 新应用程序

$ cd 应用程序

$ rails 服务器

在您的 Gemfile 中列出的任何 gem 源中均找不到 gem‘sqlite3 (>= 0)’。

$ sudo yum 安装 sqlite-devel

$ sudo gem install sqlite (或 sqlite3——结果相同)

参见上文破损情况

答案1

我今天刚刚在 AWS 的 AMI 上进行了测试。第一次尝试安装 sqlite3 gem 时遇到了同样的问题。按照安装程序的说明尝试,但没有成功。不过,我尝试了

sudo gem install sqlite-devel

并且它起作用了,之后就可以安装 sqlite3 gem......

希望它会有所帮助。

答案2

我明白了,我想这个关于 stackoverflow 的答案也会对你有帮助

https://stackoverflow.com/questions/7015766/issues-with-rails-on-ec2-when-calling-build-install/9050566#9050566

相关内容