强制node.js使用OpenSSL的非发布副本
是否有可能使Node.js使用我自己编译的本地OpenSSL版本? 我可以用环境variables或其他方式设置吗?
我必须使用较旧的Node.js版本,但使用自己编译的OpenSSL版本。
node -pe process.versions
告诉我,Node.js正在使用较旧的OpenSSL库。
是否有可能使Node.js使用我自己编译的本地OpenSSL版本?
是。
在Linux上,使用LD_LIBRARY_PATH
。 在OS X上使用DYLD_LIBRARY_PATH
。
一定要select一个与任何Node.js链接的二进制兼容的新OpenSSL。 例如,OpenSSL 0.9.7和0.9.8是二进制兼容的,但与1.0.0,1.0.1,1.0.2或1.1.0等其他版本不兼容。 而OpenSSL 1.0.0,1.0.1和1.0.2是二进制兼容的。
或者,从源代码构buildNode.js,并静态链接到您select的OpenSSL版本。 这将避免LD预装技巧。 (我旁边踩-rpath
因为它不适用于OS X)。