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

问题描述:

我在阿尔派:3.6我已经在系统上安装了zeromq二进制文件(从源代码编译)。如何在npm中使用预安装的二进制文件(zeromq)而不是通过node-gyp工具进行构建?

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

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

我们可以complie LIB我们自己而是放在二进制文件在同一个文件夹,而是我想NPM使用其安装在系统(/应用/本地) 据我可以GESS它的这些游戏库两行,我不知道太多关于它的

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

然后npm install会使用库我们只是遵从在zeromq文件夹

我没有CXXFLAGS的很多知识和LDFLAGS所以是可能的。

您引用的安装说明是针对没有root访问的peopel,因此无法在“常规位置”(如/usr/usr/local)中安装软件。如果将库安装到主目录等“不寻常的地方”,则必须告诉编译器和链接器可以找到库的位置。那就是在这种情况下使用CXXFLAGSLDFLAGS。由于您似乎有root访问权限并在“常规地点”安装了ZeroMQ库,因此npm install zmq应该在您没有设置这些varaibales的情况下运行。

更新:上述似乎不起作用。但是,根据https://github.com/JustinTulloss/zeromq.node#project-status,该模块已被弃用。新的zeromq模型对我来说没有编译。看到这个最小Dockerfile:

FROM node:alpine 

RUN npm install zeromq 

注:这不使用预装的库,但预先建立一个替代。但是,您可以从基础映像中省略预先安装的库以节省大小。

+0

它不工作,它试图从源代码编译..我不想因为我的情况,我只想出货轻量级的应用程序,我们的搬运工集装箱图像已经libzmq预装.. –

+0

,所以我想NPM安装使用preinstallled zmq而不是再编译一次,编译需要时间,这对我来说是个问题。有没有什么办法可以让npm install使用systme lib insead从头开始构建新的? –