duckdb-node
duckdb-node copied to clipboard
can't install prebuilt binary, server response is 403 Forbidden
Hey!
Using this repo, I got 403 forbidden error after running yarn install:
I'm not sure if anyone else also experienced this, or my IP region is not allowed for some reason?
How did you got that? v0.0.2 looks wrong, need to double check.
Links should be in the form:
duckdb-v0.10.2-dev5.0-node-v108-linux-x64.tar.gz
Can you share some more context?
I cloned this repo, and I just simply run yarn. Also tried npm install after I realized it uses package-lock.json, but still got the same result.
NPM: 9.5.1 Node: 18.16.0
So the version in package.json is 0.0.2-dev5.0. Changing it to 0.10.2-dev5.0 fixes it for me.
https://github.com/duckdb/duckdb-node/blob/a5ec8f3f48c0f8a74007f95c06ac8908d0ca382e/package.json#L5
I feel like this could be the reason why when I installed duckdb last time it took 20 minutes or so? https://github.com/duckdb/duckdb-node/issues/70
This Gitlab action just got a 403 from duckdb-node.s3.amazonaws.com/duckdb-v0.10.0-node-v127-linux-x64.tar.gz, output this line:
Pre-built binaries not installable for [email protected] and [email protected] (node-v127 ABI, glibc) (falling back to source compile with node-gyp)
and has been slowly compiling for 18 mins. This job usually finishes in under a minute.
Update: previous successful run fetched from duckdb-node.s3.amazonaws.com/duckdb-v0.10.0-node-v120-linux-x64.tar.gz, which also 200's for me now.
Seems like maybe my Gitlab runner is using a newer Node today, and there's not a v0.10.0 for that version? Not sure how to interpret node-v120 vs. node-v127, but the error message above implies the latter corresponds to [email protected]?
So it looks like node-pre-gyp looks for version in package.json and we need a way to match that and the actual pre-built binaries version. If that's the issue, I have two solutions I can think of:
- Just update the version in
package.jsonto match with the binaries version. - Or specify the version when building the binaries following the
package.jsonversion, like how grpc works on their build script.
- build version matching
package.jsonversion https://github.com/grpc/grpc-node/blob/a4c2106e63064070f3b9e580b2d1c74b0a9503a4/packages/grpc-tools/build_binaries.sh#L24
Ok. It works fine if I install duckdb from npm, but the weird thing is the version in npm is different from this repo.
package.json in npmjs.com
package.json in duckdb-node repo
the weird thing is the version in npm is different from this repo.
Yeah, this is really strange to me.
We're blocked from using duckdb because we can't install it on our linux servers without getting an error
npm error command sh -c node-pre-gyp install --fallback-to-build
from what we can tell this is directly connected to this issue
I am experiencing a similar problem... I am unable to install duckdb with npm in Ubuntu 24.04:
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info spawn make
First I had to run it in a python 2.7 to be able to run node-pre-gyp
Then I get:
ERR! install response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v0.0.2-dev5.0-node-v109-linux-x64.tar.gz
This is triggering a full build but failing at ICU extension compilation:
../src/duckdb/extension/icu/third_party/icu/i18n/region.cpp: In static member function ‘static const icu_66::Region* icu_66::Region::getInstance(int32_t, UErrorCode&)’:
../src/duckdb/extension/icu/third_party/icu/i18n/region.cpp:515:9: error: ‘ICU_Utility’ has not been declared
515 | ICU_Utility::appendNumber(id, code, 10, 1);
| ^~~~~~~~~~~
In file included from ../src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp:333:
../src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp: In member function ‘icu_66::VTimeZone& icu_66::VTimeZone::operator=(const icu_66::VTimeZone&)’:
../src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp:1004:33: warning: implicitly-declared ‘icu_66::BasicTimeZone& icu_66::BasicTimeZone::operator=(const icu_66::BasicTimeZone&)’ is deprecated [-Wdeprecated-copy]
1004 | BasicTimeZone::operator=(right);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../src/duckdb/extension/icu/third_party/icu/i18n/basictz.cpp:31:1: note: because ‘icu_66::BasicTimeZone’ has user-provided ‘icu_66::BasicTimeZone::BasicTimeZone(const icu_66::BasicTimeZone&)’
31 | BasicTimeZone::BasicTimeZone(const BasicTimeZone& source)
| ^~~~~~~~~~~~~
make: *** [duckdb.target.mk:535: Release/obj.target/duckdb/src/duckdb/ub_extension_icu_third_party_icu_i18n.o] Error 1
make: Leaving directory '/home/user/datadev/fullstack/duckdb-node/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/share/nodejs/node-gyp/lib/build.js:203:23)
gyp ERR! stack at ChildProcess.emit (node:events:517:28)
gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:292:12)
gyp ERR! System Linux 6.8.0-45-generic
gyp ERR! command "/usr/bin/node" "/usr/share/nodejs/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/home/user/datadev/fullstack/duckdb-node/lib/binding/duckdb.node" "--module_name=duckdb" "--module_path=/home/user/datadev/fullstack/duckdb-node/lib/binding" "--napi_version=9" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v109"
gyp ERR! cwd /home/user/datadev/fullstack/duckdb-node
gyp ERR! node -v v18.19.1
gyp ERR! node-gyp -v v9.3.0
gyp ERR! not ok
I have tried to install it from source but I was only able to complete the build by removing all the icu files from binding.gyp. The resulting library does not work due to missing ICU symbols.
I am able to install duckdb with ICU extension in this same system... The problem is only happening with duckdb-node.
Thanks!
Hello. In my case, (Ubuntu 24.04, node version 18.19.1, npm version 9.2.0.)
if the webstorm automatically proceeds with npm installation, it will no longer proceed in the following state. (##################) ⠧ reify:duckdb: timing reifyNode:node_modules/@observablehq/plot Completed in 4911ms
After a long time, the following error occurs. (If I try to install dukdb directly with the npm install [email protected] command, there is an error immediately below without waiting time.)
npm ERR! Failed to execute '/usr/bin/node /usr/share/nodejs/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/home/webstorm_workspace/node_modules/duckdb/lib/binding/duckdb.node --module_name=duckdb --module_path=/home/webstorm_workspace/node_modules/duckdb/lib/binding --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v109' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using [email protected] npm ERR! node-pre-gyp info using [email protected] | linux | x64 npm ERR! node-pre-gyp info check checked for "/home/webstorm_workspace/node_modules/duckdb/lib/binding/duckdb.node" (not found) npm ERR! node-pre-gyp http GET https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz npm ERR! node-pre-gyp ERR! install response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v109 ABI, glibc) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp WARN Hit error response status 403 Forbidden on https://npm.duckdb.org/duckdb/duckdb-v1.0.0-node-v109-linux-x64.tar.gz