npm:重定位错误:/lib64/libnode.so.93:符号 FIPS_selftest,版本 OPENSSL_1_1_0g 未在文件 libcrypto.so.1.1 中定义并具有链接时间参考

问题描述 投票:0回答:2

通过 yum install 命令安装 NodeJS、NPM 和 YARN 后,每当我尝试运行 npm 命令时,都会收到以下错误

node: relocation error: /lib64/libnode.so.93: symbol FIPS_selftest, version OPENSSL_1_1_0g not defined in file libcrypto.so.1.1 with link time reference

这种情况发生在安装了最新更新的 CentOS 7 上。

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

我在网上搜索了此错误,但找不到任何相关内容,到目前为止,这种情况发生在我的第五台服务器上。

我尝试删除nodejs、npm和yarn,甚至安装旧版本,但没有结果。我还尝试删除 openssl,但还是没有帮助。

谢谢

node.js npm centos7 yarn-v2
2个回答
5
投票

我也遇到了类似的问题。我发现是因为我的系统中存在openssl的另一个版本1.1.1的源码,而系统中安装的版本是1.0.2;并且我将程序运行时库文件搜索路径

LD_LIBRARY_PATH
设置为
1.1.1
版本的openssl源码路径,因为openssl之前和之后的版本不兼容,系统运行npm时,会自动查找1.1.1版本的openssl按照
LD_LIBRARY_PATH
路径,所以报错。
解决方案:导出
LD_LIBRARY_PATH=""
让程序自动查找系统安装的openssl版本


0
投票

我在安装 OPENSSL 1_1_1 后在 CENTOS 7 上安装 NODE JS 时遇到了这个问题。 我花了4天时间寻找解决方案。 对我有用的是:安装nodejs版本16.11.1,不需要OPENSSL_1_1_0g

sudo yum 安装curl -y 卷曲 https://raw.githubusercontent.com/creationix/nvm/master/install.sh |重击
源~/.bashrc nvm 安装 16.11.1


通过配置安装替代版本没有帮助:

./config -Wl,-rpath="/usr/local/openssl_OpenSSL_1_1_1e/lib" -Wl,--enable-new-dtags --prefix="/usr/local/openssl_OpenSSL_1_1_1e" --openssldir="/usr/本地/openssl_OpenSSL_1_1_1e/ssl"

没有帮助: 导出 LD_LIBRARY_PATH=/usr/local/openssl_OpenSSL_1_1_1e/lib"

没有帮助: 添加到/etc/ld.so.conf.d/libc.conf 这些行 /usr/local/openssl/lib /usr/local/openssl_OpenSSL_1_1_1e/lib 并执行命令 ldconfig -v

没有帮助: echo "LD_LIBRARY_PATH=/usr/local/openssl_OpenSSL_1_1_1e/lib" >> /etc/environment

© www.soinside.com 2019 - 2024. All rights reserved.