node.js - 如何在 npm install 中使用预安装的二进制文件(zeromq)而不是使用 node-gyp 工具构建?

标签 node.js zeromq node-gyp

我使用的是 alpine:3.6,我已经在系统上安装了(从源代码编译的)zeromq 二进制文件。

现在我想为此使用nodejs 的绑定(bind)。 所以使用https://github.com/JustinTulloss/zeromq.node

这里有一些说明,我们可以从源代码构建库。 https://github.com/JustinTulloss/zeromq.node/wiki/Installation#installation-on-linux--bsd-without-root-access

我们可以自己编译lib,但是将二进制文件放在同一个文件夹中,但我希望npm使用安装在系统(/use/local)中的库 据我所知,这两条线的游戏我对此不太了解

export CXXFLAGS="-I $(readlink -f ../include)"
export LDFLAGS="-L $(readlink -f ../lib) -Wl,-rpath=$(readlink -f ../lib)"

然后npm install将使用我们刚刚在zeromq文件夹中编译的库

我对 CXXFLAGS 和 LDFLAGS 不太了解,所以这可能吗?

最佳答案

您引用的安装说明适用于没有 root 访问权限的人员,因此无法在 /usr/usr/local 等“常用位置”安装软件。如果将库安装到“不寻常的位置”(例如主目录),则必须告诉编译器和链接器可以在哪里找到该库。这就是本例中 CXXFLAGSLDFLAGS 的使用。由于您似乎拥有 root 访问权限并在“通常的位置”安装了 ZeroMQ 库,因此 npm install zmq 应该可以在您没有设置这些变量的情况下工作。

更新:以上似乎不起作用。然而,根据https://github.com/JustinTulloss/zeromq.node#project-status ,无论如何,这个模块已被弃用。新的 Zeromq 模型无需编译即可工作。查看这个最小的 Dockerfile:

FROM node:alpine

RUN npm install zeromq

注意:这不使用预安装的库,而是使用预构建的库。但是,您可以从基础镜像中删除预安装的库以节省大小。

关于node.js - 如何在 npm install 中使用预安装的二进制文件(zeromq)而不是使用 node-gyp 工具构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939766/

相关文章:

node.js - 在 Elastic Beanstalk 中运行时出现 Sequelize 迁移错误

python - ZeroMQ 连接阻塞

node.js - 无法运行 nodejs 项目 - npm ERR!代码 EBADPLATFORM

javascript - 如何使用 localhost 在浏览器中运行 Web 应用程序?

node.js - 使用 mongoose 和 mongoose-version 更新条目时的新版本

java - ZeroMQ:消失的消息

zeromq - 有没有办法知道 ZeroMQ 消息来自哪里?

node.js - Windows 7 上的 Node 故障

c++ - npm 安装 : fatal error C1083 on bson and kerberos compilation 上的 node-gyp 错误

node.js - 已安装 Electron 应用程序但未出现在开始菜单中