【问题标题】:Problem with Quick.DB/better-sqlite3 install scriptQuick.DB/better-sqlite3 安装脚本的问题
【发布时间】:2021-05-05 00:53:44
【问题描述】:

我使用 Quick.DB 作为数据库,为我的 discord.js 机器人获取和发送数据。但是,当我尝试安装我的依赖项时,它会在专门为 Quick.DB 安装 better-sqlite3 时返回此错误。它尝试编译安装脚本以创建绑定文件,但过了一会儿它返回了这个错误。我使用repl.it 来编写这个机器人,因为我觉得它很灵活。

> better-sqlite3@7.1.5 install /home/runner/azeliav2-2/node_modules/better-sqlite3
> prebuild-install || npm run build-release

prebuild-install WARN install /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/runner/azeliav2-2/node_modules/better-sqlite3/build/Release/better_sqlite3.node)

> better-sqlite3@7.1.5 build-release /home/runner/azeliav2-2/node_modules/better-sqlite3
> node-gyp rebuild --release

make: Entering directory '/home/runner/azeliav2-2/node_modules/better-sqlite3/build'
  TOUCH b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  ACTION deps_sqlite3_gyp_locate_sqlite3_target_extract_sqlite3 b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  TOUCH Release/obj.target/deps/locate_sqlite3.stamp
  CC(target) Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o
cc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
deps/sqlite3.target.mk:183: recipe for target 'Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o' failed
make: *** [Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o] Error 4
rm b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
make: Leaving directory '/home/runner/azeliav2-2/node_modules/better-sqlite3/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:314:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Linux 5.4.0-1042-gcp
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /home/runner/azeliav2-2/node_modules/better-sqlite3
gyp ERR! node -v v12.22.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! better-sqlite3@7.1.5 build-release: `node-gyp rebuild --release`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the better-sqlite3@7.1.5 build-release script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-05-02T03_56_51_256Z-debug.log
[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:[            ......] | install: info lifecycle better-sqlite3@7.1.5~install:npm WARN hello-express@0.0.1 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! better-sqlite3@7.1.5 install: `prebuild-install || npm run build-release`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the better-sqlite3@7.1.5 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-05-02T03_56_52_435Z-debug.log

【问题讨论】:

    标签: node.js sqlite npm-install


    【解决方案1】:

    我已经回答了here。 GLIBC_2.29 not found 错误导致 libc6 包过时。你需要运行

    sudo apt-get update
    sudo apt-get install libc6
    

    更多关于askubuntu.com
    但您需要 sudo 权限。您在 repl.it 上没有 sudo 权限。
    无论如何,您都不应该在 repl.it 上使用 quick.db,因为在 repl.it 上,所有用户信息都将公开 - 这违反了不和谐的服务条款。

    Repl.it 的限制是你不能隐藏文件不被公众看到 在免费帐户上,除了 .env 文件。这意味着,如果您要 使用基于文件或基于 sqlite 的数据库(例如 enmap、quick.db、 nedb)您的文件将是可见的。因为这违反了 Discord 服务条款(暴露潜在用户数据),请勿使用这些 模块或 json 文件来存储数据。相反,您可以使用 Repl.It 存储数据的数据库系统,或外部数据库服务器,如 Atlas Mongo 或 Firebase。 anidiots.guide

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2019-12-06
      • 2019-10-11
      • 2021-03-15
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2019-04-12
      相关资源
      最近更新 更多