我正在运行基于 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 安装 rubygems 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 的答案也会对你有帮助