WiseLibs / better-sqlite3

The fastest and simplest library for SQLite3 in Node.js.
MIT License
5.26k stars 391 forks source link

Trouble installing better-sqlite3-sqlcipher with Node 22.4.1 and Node 20.15.1 #1220

Closed jsavage86 closed 2 weeks ago

jsavage86 commented 2 weeks ago

I'm getting an error when I try to install better-sqlite3-sqlcipher on Ubuntu 24.04 - any help would be appreciated.

npm install better-sqlite3-sqlcipher npm error code 1 npm error path /home/savage/Documents/vault-files/node_modules/integer npm error command failed npm error command sh -c node-gyp rebuild npm error gyp info it worked if it ends with ok npm error gyp info using node-gyp@9.4.1 npm error gyp info using node@22.4.1 | linux | x64 npm error (node:38421) [DEP0060] DeprecationWarning: The util._extend API is deprecated. Please use Object.assign() instead. npm error (Use node --trace-deprecation ... to show where the warning was created) npm error gyp info find Python using Python version 3.12.3 found at "/usr/bin/python3" npm error gyp http GET https://nodejs.org/download/release/v22.4.1/node-v22.4.1-headers.tar.gz npm error gyp http 200 https://nodejs.org/download/release/v22.4.1/node-v22.4.1-headers.tar.gz npm error gyp http GET https://nodejs.org/download/release/v22.4.1/SHASUMS256.txt npm error gyp http 200 https://nodejs.org/download/release/v22.4.1/SHASUMS256.txt npm error gyp info spawn /usr/bin/python3 npm error gyp info spawn args [ npm error gyp info spawn args '/home/savage/Documents/vault-files/node_modules/node-gyp/gyp/gyp_main.py', npm error gyp info spawn args 'binding.gyp', npm error gyp info spawn args '-f', npm error gyp info spawn args 'make', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/savage/Documents/vault-files/node_modules/integer/build/config.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/savage/Documents/vault-files/node_modules/node-gyp/addon.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/savage/.cache/node-gyp/22.4.1/include/node/common.gypi', npm error gyp info spawn args '-Dlibrary=shared_library', npm error gyp info spawn args '-Dvisibility=default', npm error gyp info spawn args '-Dnode_root_dir=/home/savage/.cache/node-gyp/22.4.1', npm error gyp info spawn args '-Dnode_gyp_dir=/home/savage/Documents/vault-files/node_modules/node-gyp', npm error gyp info spawn args '-Dnode_lib_file=/home/savage/.cache/node-gyp/22.4.1/<(target_arch)/node.lib', npm error gyp info spawn args '-Dmodule_root_dir=/home/savage/Documents/vault-files/node_modules/integer', npm error gyp info spawn args '-Dnode_engine=v8', npm error gyp info spawn args '--depth=.', npm error gyp info spawn args '--no-parallel', npm error gyp info spawn args '--generator-output', npm error gyp info spawn args 'build', npm error gyp info spawn args '-Goutput_dir=.' npm error gyp info spawn args ] npm error Traceback (most recent call last): npm error File "/home/savage/Documents/vault-files/node_modules/node-gyp/gyp/gyp_main.py", line 42, in npm error import gyp # noqa: E402 npm error ^^^^^^^^^^ npm error File "/home/savage/Documents/vault-files/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 9, in npm error import gyp.input npm error File "/home/savage/Documents/vault-files/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in npm error from distutils.version import StrictVersion npm error ModuleNotFoundError: No module named 'distutils' npm error gyp ERR! configure error npm error gyp ERR! stack Error: gyp failed with exit code: 1 npm error gyp ERR! stack at ChildProcess.onCpExit (/home/savage/Documents/vault-files/node_modules/node-gyp/lib/configure.js:325:16) npm error gyp ERR! stack at ChildProcess.emit (node:events:520:28) npm error gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12) npm error gyp ERR! System Linux 6.8.0-36-generic npm error gyp ERR! command "/home/savage/.nvm/versions/node/v22.4.1/bin/node" "/home/savage/Documents/vault-files/node_modules/.bin/node-gyp" "rebuild" npm error gyp ERR! cwd /home/savage/Documents/vault-files/node_modules/integer npm error gyp ERR! node -v v22.4.1 npm error gyp ERR! node-gyp -v v9.4.1 npm error gyp ERR! not ok

Prinzhorn commented 2 weeks ago

better-sqlite3-sqlcipher is an unofficial fork not provided by the better-sqlite3 team. Unfortunately their npm package links to this GitHub repo.

https://www.npmjs.com/package/better-sqlite3-sqlcipher

This package is a fork from better-sqlite3 v5.4.3 Last publish: 4 years ago

Good luck making this work with any recent Node.js version. The package is extremely outdated.

jsavage86 commented 2 weeks ago

Wow I cannot believe I missed the last publish date.

Thanks for the update - do you know of a sqlcipher available for node?

mceachen commented 2 weeks ago

@m4heshd (who contributes to this library) maintains https://github.com/m4heshd/better-sqlite3-multiple-ciphers (although I haven't used it personally)