【问题标题】:error installing sqlite3 Public Keyring not found找不到安装 sqlite3 公钥环的错误
【发布时间】:2020-11-08 10:19:33
【问题描述】:

怎么了?如何安装?

PS C:\Users\luism> gem install sqlite3 暂时增强 MSYS/MINGW 的 PATH... 安装所需的 msys2 包:mingw-w64-x86_64-sqlite3 警告:未找到公钥环;你运行过'pacman-key --init'吗? 错误:mingw32:密钥“AD351C50AE085775EB59333B5F92EFC1A47D45A1”未知 错误:密钥环不可写 错误:mingw64:密钥“AD351C50AE085775EB59333B5F92EFC1A47D45A1”未知 错误:密钥环不可写 错误:msys:密钥“AD351C50AE085775EB59333B5F92EFC1A47D45A1”未知 错误:密钥环不可写 错误:数据库“mingw32”无效(数据库无效或损坏(PGP 签名)) 错误:数据库“mingw64”无效(数据库无效或损坏(PGP 签名)) 错误:数据库“msys”无效(无效或损坏的数据库(PGP 签名)) pacman 失败,输出如下: 构建原生扩展。这可能需要一段时间... 错误:安装 sqlite3 时出错: 错误:无法构建 gem 原生扩展。

current directory: C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.2/ext/sqlite3

C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20200718-41156-1cxbffc.rb extconf.rb 检查 sqlite3.h ... 否 sqlite3.h 丢失。首先从http://www.sqlite.org/ 安装 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=C:/Ruby26-x64/bin/$(RUBY_BASE_NAME) --with-sqlcipher --没有-sqlcipher --with-sqlite3-config --without-sqlite3-config --with-pkg-config --without-pkg-config --with-sqlcipher --没有-sqlcipher --with-sqlite3-dir --没有-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib

要查看此扩展无法编译的原因,请查看 mkmf.log,可在此处找到:

C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.2/mkmf.log

extconf 失败,退出代码 1

【问题讨论】:

  • 作为一个绝对的 Ruby Noob,我在尝试初始化一个新的 Rails 应用程序时也被困在这里。有人可以帮忙吗?

标签: ruby-on-rails sqlite


【解决方案1】:

看来,使用 MSYS2 全新安装的 Ruby DevKit 2.6.6-1-x64 在默认情况下肯定会被破坏。

我要修复 PGP 问题,启动 ../Ruby26-x64/msys2/ 目录中的 mingw64 shell 并通过执行以下行重置 pacman 密钥库:

rm -r /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate msys2

现在您应该能够正确安装导轨了。

【讨论】:

    【解决方案2】:

    实际上,@godsim 解决方案确实有效,但msys2 website 提供了许多其他可能的解决方案,以及解释。他们在这里:

    curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
    curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
    
    pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
    

    ==> 正在检查 msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig...(分离) gpg:签名于 2020 年 6 月 29 日星期一 07:36:14 CEST gpg:使用 DSA 密钥 AD351C50AE085775EB59333B5F92EFC1A47D45A1 gpg:来自“Alexey Pavlov(Alexpux)alexpux@gmail.com”的良好签名[完整]

    pacman -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
    

    这还不够。这是对我有用的行:

    pacman -U --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
    

    最后,如果这不起作用,@godsim 的解决方案将被尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 2014-11-08
      • 2016-04-27
      • 2013-05-06
      • 2023-03-15
      相关资源
      最近更新 更多