安装 sqlite3 (1.3.7) 时出错,Bundler 无法继续无法创建 rails app

Posted

技术标签:

【中文标题】安装 sqlite3 (1.3.7) 时出错,Bundler 无法继续无法创建 rails app【英文标题】:An error occurred while installing sqlite3 (1.3.7), and Bundler cannot continue Cannot create rails app 【发布时间】:2013-07-21 04:26:25 【问题描述】:

我对 ruby​​ on rails 完全陌生。 我在我的 Ubuntu 13.04 上安装了 ruby​​ 1.9.3p194 和 Rails 3.2.8。 我尝试使用代码创建我的第一个

rails new rotten --T

我得到了这样的东西

创建 创建 README.rdoc 创建耙文件 创建 config.ru 创建 .gitignore 创建 Gemfile 创建应用 创建应用程序/资产/图像/rails.png 创建应用程序/资产/javascripts/application.js 创建 app/assets/stylesheets/application.css 创建应用程序/控制器/application_controller.rb 创建 app/helpers/application_helper.rb 创建应用程序/邮件 创建应用程序/模型 创建 app/views/layouts/application.html.erb 创建应用程序/邮件程序/.gitkeep 创建应用程序/模型/.gitkeep 创建配置 创建 config/routes.rb 创建 config/application.rb 创建 config/environment.rb 创建配置/环境 创建 config/environments/development.rb 创建 config/environments/production.rb 创建配置/环境/test.rb 创建配置/初始化程序 创建 config/initializers/backtrace_silencers.rb 创建 config/initializers/inflections.rb 创建 config/initializers/mime_types.rb 创建 config/initializers/secret_token.rb 创建 config/initializers/session_store.rb 创建 config/initializers/wrap_parameters.rb 创建配置/语言环境 创建 config/locales/en.yml 创建配置/boot.rb 创建 config/database.yml 创建数据库 创建 db/seeds.rb 创建文档 创建文档/README_FOR_APP 创建库 创建库/任务 创建 lib/tasks/.gitkeep 创建库/资产 创建 lib/assets/.gitkeep 创建日志 创建日志/.gitkeep 创建公共 创建 public/404.html 创建 public/422.html 创建 public/500.html 创建公共/favicon.ico 创建 public/index.html 创建 public/robots.txt 创建脚本 创建脚本/rails 创建测试/夹具 创建测试/fixtures/.gitkeep 创建测试/功能 创建测试/功能/.gitkeep 创建测试/集成 创建测试/集成/.gitkeep 创建测试/单元 创建测试/单元/.gitkeep 创建测试/性能/browsing_test.rb 创建 test/test_helper.rb 创建 tmp/缓存 创建 tmp/缓存/资产 创建供应商/资产/javascripts 创建供应商/资产/javascripts/.gitkeep 创建供应商/资产/样式表 创建供应商/资产/样式表/.gitkeep 创建供应商/插件 创建供应商/插件/.gitkeep 运行捆绑安装 输入您的密码以将捆绑的 RubyGems 安装到您的系统: 从 https://rubygems.org/ 获取 gem 元数据............ 从 https://rubygems.org/.. 获取 gem 元数据 解决依赖关系... 使用 rake (10.1.0) 使用 i18n (0.6.4) 使用 multi_json (1.7.7) 使用 activesupport (3.2.8) 使用构建器 (3.0.4) 使用 activemodel (3.2.8) 使用 erubis (2.7.0) 使用旅程 (1.0.4) 使用机架 (1.4.5) 使用机架缓存 (1.2) 使用机架测试(0.6.2) 使用远足 (1.2.3) 使用倾斜 (1.4.1) 使用链轮 (2.1.3) 使用动作包 (3.2.8) 使用 mime 类型 (1.23) 使用多语言 (0.3.3) 使用树顶 (1.4.14) 使用邮件 (2.4.4) 使用 actionmailer (3.2.8) 使用 arel (3.0.2) 使用 tzinfo (0.3.37) 使用活动记录 (3.2.8) 使用活动资源 (3.2.8) 使用捆绑器 (1.3.5) 使用咖啡脚本源(1.6.3) 使用 execjs (1.4.0) 使用咖啡脚本(2.2.0) 使用 rack-ssl (1.3.3) 使用 json (1.8.0) 使用 rdoc (3.12.2) 使用雷神 (0.18.1) 使用铁轨 (3.2.8) 使用咖啡轨 (3.2.2) 使用 jquery-rails (3.0.4) 使用导轨 (3.2.8) 使用 sass (3.2.9) 使用 sass-rails (3.2.6) 安装 sqlite3 (1.3.7) Gem::Installer::ExtensionBuildError: 错误: 无法构建 gem 原生扩展。 /usr/bin/ruby1.9.1 extconf.rb 检查 sqlite3.h ... 否 sqlite3.h 丢失。尝试“端口安装 sqlite3 +universal” 或 'yum install sqlite-devel' 并检查您的共享库搜索路径( 您的 sqlite3 共享库所在的位置)。 *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺少 必要的库和/或头文件。查看 mkmf.log 文件了解更多信息 细节。您可能需要配置选项。 提供的配置选项: --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 --没有-make-prog --srcdir=。 --curdir --ruby=/usr/bin/ruby1.9.1 --with-sqlite3-dir --没有-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=$sqlite3-dir/include --with-sqlite3-lib --without-sqlite3-lib=$sqlite3-dir/lib --启用本地 --禁用本地 Gem 文件将继续安装在 /home/dvs/.bundler/tmp/3341/gems/sqlite3-1.3.7 以供检查。 结果记录到 /home/dvs/.bundler/tmp/3341/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out 安装 sqlite3 (1.3.7) 时出错,Bundler 无法继续。 在捆绑之前确保 `gem install sqlite3 -v '1.3.7'` 成功。

我试过了

sudo gem install sqlite3 -v '1.3.7'

现在我遇到了这样的错误

dvs@dvs-Inspiron-N4010:~/testruby$ sudo gem install sqlite3 -v '1.3.7' 构建原生扩展。这可能需要一段时间... 错误:安装 sqlite3 时出错: 错误:无法构建 gem 原生扩展。 /usr/bin/ruby1.9.1 extconf.rb 检查 sqlite3.h ... 否 sqlite3.h 丢失。尝试“端口安装 sqlite3 +universal” 或 'yum install sqlite-devel' 并检查您的共享库搜索路径( 您的 sqlite3 共享库所在的位置)。 *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺少 必要的库和/或头文件。查看 mkmf.log 文件了解更多信息 细节。您可能需要配置选项。 提供的配置选项: --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 --没有-make-prog --srcdir=。 --curdir --ruby=/usr/bin/ruby1.9.1 --with-sqlite3-dir --没有-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=$sqlite3-dir/include --with-sqlite3-lib --without-sqlite3-lib=$sqlite3-dir/lib --启用本地 --禁用本地 Gem 文件将继续安装在 /usr/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7 中以供检查。 结果记录到 /usr/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out

请帮助我 谢谢你

【问题讨论】:

【参考方案1】:

它失败了,因为您缺少依赖项。你可以通过运行得到它 sudo apt-get install libsqlite3-dev

【讨论】:

是的。现在应用程序已成功创建。但是在运行服务器时
rails s
它显示另一个错误
您的应用正在运行吗? /usr/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': 找不到 JavaScript 运行时.有关可用运行时的列表,请参阅 github.com/sstephenson/execjs。 (ExecJS::RuntimeUnavailable) 来自 /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.8/lib/rails/commands.rb:50:in <top (required)>' from script/rails:6:in require' 来自 script/rails :6:in `
'
是的..完成。我做了 $sudo apt-get install nodejs 然后 $ bundle update。现在一切正常。谢谢【参考方案2】:

我在使用 Fedora 时遇到了这个问题。为了后代和百胜人......

sudo yum install libsq3-devel

【讨论】:

【参考方案3】:

这修复了 Amazon Linux (AWS)

sudo yum install sqlite-devel

【讨论】:

【参考方案4】:

运行$sudo apt-get install libsqlite3-dev

如果它响应:

E: dpkg 被中断,你必须手动运行 'sudo dpkg --configure -a' 来纠正问题。

然后运行$sudo dpkg --configure -a 运行$rails s

如果它响应:

下载 nokogiri-1.10.0 后发现依赖项不在 API 中或 锁定文件 (mini_portile2 (~> 2.4.0))。

使用--full-index 安装或运行bundle update nokogiri 应该可以解决问题。 运行$ bundle update nokogiri 一切都会再次完美!

【讨论】:

欢迎来到 ***!我建议您更好地格式化您的答案,使其更易于阅读和理解。 对于多行代码块,您可以使用重音字符 code 或三重 ``` 更好地格式化问题中的程序代码

以上是关于安装 sqlite3 (1.3.7) 时出错,Bundler 无法继续无法创建 rails app的主要内容,如果未能解决你的问题,请参考以下文章

安装 sqlite3 (1.3.11) 时出错,Bundler 无法继续

安装 sqlite3 时 node-pre-gyp 出错

在 Apple Silicon M1 上使用 Ruby 3.0.2 在 MacOS Monterey 上安装 sqlite3 时出错

在 sqlite3 中创建表时出错

构建新的 Rails 应用程序加载“sqlite3”时出错,而没有明显写入版本

执行 Maven 安装时构建 Maven 项目时出错