建网站需多少钱,能自己做谱子的网站,wordpress移动主题设计,四川住房建设和城乡建设厅新网站概述 对于Node.js v18.x或更高#xff0c;Node.js官方默认是在Ubuntu 20.04, Debian 10, RHEL 8,CentOS 8等高版操作系统上编译得到的#xff0c;高版本操作系统的glibc版本≥2.28。所以#xff0c;下载Node.js后#xff0c;也需要glibc版本≥2.28才能使用。 而CentOS 7.x等…概述 对于Node.js v18.x或更高Node.js官方默认是在Ubuntu 20.04, Debian 10, RHEL 8,CentOS 8等高版操作系统上编译得到的高版本操作系统的glibc版本≥2.28。所以下载Node.js后也需要glibc版本≥2.28才能使用。 而CentOS 7.x等操作系统自带的glibc版本为2.17使用Node.js官网下载的版本运行会报错 /lib64/libm.so.6: version GLIBC_2.27 not found (required by ./node) /lib64/libc.so.6: version GLIBC_2.25 not found (required by ./node) /lib64/libc.so.6: version GLIBC_2.28 not found (required by ./node) /lib64/libstdc.so.6: version CXXABI_1.3.9 not found (required by ./node) /lib64/libstdc.so.6: version GLIBCXX_3.4.20 not found (required by ./node) /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./node) linux-vdso.so.1 (0x00007ffca6bd4000) libdl.so.2 /lib64/libdl.so.2 (0x00002b574ed87000) libstdc.so.6 /lib64/libstdc.so.6 (0x00002b574ef8b000) libm.so.6 /lib64/libm.so.6 (0x00002b574f293000) libgcc_s.so.1 /lib64/libgcc_s.so.1 (0x00002b574f595000) libpthread.so.0 /lib64/libpthread.so.0 (0x00002b574f7ab000) libc.so.6 /lib64/libc.so.6 (0x00002b574f9c7000) /lib64/ld-linux-x86-64.so.2 (0x00002b574eb63000) 报错的原因操作系统的glibc版本低但Node.js所需的版本高。
因glibc是操作系统的重要依赖库许多软件都需要使用和依赖glibc。一旦贸然升级glibc为高版本很可能导致操作系统及相关软件不稳定。所以不能轻易为了安装Node.js而随意升级glibc尤其是在生产环境中。
常见的尝试办法 对于以上问题常见的解决办法都不完美。总结如下
1、在CentOS 7.x等操作系统中将默认的glibc版本强制升级为≥2.28。但此方法面临两个问题①过程繁琐为了编译glibc高版本还需要升级gcc、make等。②升级完成后依赖于glibc低版本的其他软件可能运行不稳定存在发生未知错误风险。此风险生产环境通常无法接受。
2、在CentOS 7.x等操作系统中不改变整个OS系统的glibc版本而是仅改变node所依赖的lib。比如①在某个操作系统用户中(不使用root是避免破坏整个操作系统)下载node所需的依赖②从官方下载的node可执行文件通过patchelf工具修改node可执行文件将其所依赖指向的“ld-linux-x86-64.so.2”、“libm.so.6”、“libc.so.6”等等再启动具体可搜索网上教程。 此方法过程繁琐可能来回出错且属于对可执行文件强行修改存在风险。
3、在CentOS 7.x等操作系统中下载Node.js源代码并进行本地编译。源代码编译仍需要①升级gcc、make等为高版本②编译过程中仍需要依赖glibc 2.28。 注Node.js不仅需要依赖高版本glibc还需要高版本的gcc、make及其他库等开发工具。对于这些开发工具既可以单个下载单个安装也可以采用更快更方便的方式安装。既 通过Linux的scl计划三部安装各种开发工具集具体见https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/ 该网站只介绍了devtoolset-8实际上还有devtoolset-9、devtoolset-10、devtoolset-11 完美解决办法 以上问题不仅我们遇到全世界都涉及此问题因此Node.js官方也有人意识到此问题在其github中nodejs下有一个“unofficial-builds”子计划。 “unofficial-builds” 子计划是在官方标准发布的基础上额外提供适应其他平台的编译发布版此Node.js编译版虽然官方不承担保证责任所以命名为“unofficial-builds”。 但由于是Node.js的子项目也是挂在nodejs.org网站下的算是“不担责的官方编译版”。“unofficial-builds”下载网址
https://unofficial-builds.nodejs.org/download/release/ 对于Linux选择对应平台下载并解压即可直接使用。 此“unofficial-builds” 编译版与官方的标准发布仅仅是编译平台不同推荐大家下载使用比较稳定还避免自己来回折腾。目前用起来非常完美。