通过 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,但还是没有帮助。
谢谢
我也遇到了类似的问题。我发现是因为我的系统中存在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版本
我在安装 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