gpt4 book ai didi

node.js - 无法在 Alpine Linux 上运行 node-gdal : "__printf_chk: symbol not found"

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:36 24 4
gpt4 key购买 nike

我正在尝试使用 node-gdal 为我的项目添加 Gitlab CI (GDAL 的 Node.js 绑定(bind))。由于性能原因,CI 配置基于 Alpine Linux docker 镜像,但我无法让它工作。 Gitlab CI 作业在运行需要 node-gdal 的 Node.js 脚本时失败,并出现以下错误:

internal/modules/cjs/loader.js:718
return process.dlopen(module, path.toNamespacedPath(filename));
^

Error: Error relocating /builds/project-0/node_modules/gdal/lib/binding/node-v64-linux-x64/gdal.node: __printf_chk: symbol not found
at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/builds/project-0/node_modules/gdal/lib/gdal.js:12:29)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)

尝试安装glibc for Alpine但仍然没有运气。

.gitlab-ci.yml

image: node:lts-alpine

stages:
- test

test:
stage: test
before_script:
- apk add --no-cache bash ca-certificates wget
- wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
- wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk
- apk add glibc-2.29-r0.apk
script:
- yarn
- node index.js

这是一个repo重现该问题,这是 link to failed job .

有没有办法在Alpine上使用该库?

最佳答案

感谢thisthis相关问题和解答,我能够使用以下 CI 配置 ( link to passed job ) 在 Alpine 上构建与共享 GDAL 库的 node-gdal 链接:

.gitlab-ci.yml

image: node:lts-alpine

stages:
- test

test:
stage: test
before_script:
- apk add --no-cache bash make gcc g++ python linux-headers udev --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --repository http://dl-cdn.alpinelinux.org/alpine/edge/main gdal gdal-dev
script:
- npm install gdal --build-from-source --shared_gdal
- node index.js

关于node.js - 无法在 Alpine Linux 上运行 node-gdal : "__printf_chk: symbol not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54875180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com