文章已收錄至https://lichong.work,轉(zhuǎn)載請注明原文鏈接。
ps:歡迎關(guān)注公眾號“Fun肆編程”或添加我的私人微信交流經(jīng)驗??
背景
最近做一個前端項目Jenkins的自動構(gòu)建時,項目使用nodejs18,正好公司Jenkins節(jié)點有些不夠用,就用了臺資源空余比較多的服務(wù)器用于充當Jenkins節(jié)點,配置好NodeJS路徑后,構(gòu)建時產(chǎn)生報錯如下:
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
分析原因
使用strings命令查看當前glibc支持的版本
# 使用strings命令查看
strings /lib64/libc.so.6 |grep GLIBC_
# 查看結(jié)果如下:
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE
發(fā)現(xiàn)只能到2.17
執(zhí)行ldd --version
也會看到glibc版本是2.17
解決方案
- 升級 gcc 和 glibc 版本:注意,在升級前備份重要數(shù)據(jù),并仔細閱讀相關(guān)文檔和使用說明。
- 使用其他發(fā)行版:可以考慮使用其他發(fā)行版,如 Ubuntu 或 Fedora,這些發(fā)行版默認已經(jīng)安裝了適用于 Node.js 18 的 gcc 和 glibc 版本。
- 使用 Node.js 16:Node.js 16 是一個長期支持版本(LTS),它需要的 gcc 和 glibc 版本要求相對較低,可能與你的系統(tǒng)版本兼容。您可以嘗試使用 Node.js 16,它可以提供類似于 Node.js 18 的功能,并在未來幾年內(nèi)受到支持和更新。
小結(jié)
作為硬核技術(shù)派頭鐵程序員,我當然選擇方案一。
執(zhí)行步驟
我們可以手動下載gcc包和glibc包,然后進行配置、編譯、安裝、掛載這些步驟,但這樣做風(fēng)險還是有點大的,特別是不太懂的小白很容易把服務(wù)器搞崩。
推薦方式
這里推薦先使用devtoolset工具進行自動安裝,操作步驟如下:
- 安裝 devtoolset 8:Devtoolset 8 包括更新的 GCC 和 GLIBC,可以滿足 Node.js 18 的要求。使用以下命令安裝 Devtoolset 8:
sudo yum install centos-release-scl
sudo yum install devtoolset-8
- 激活 devtoolset 8:安裝完成 Devtoolset 8 后,需要激活 Devtoolset 8 才能使用更新的 GCC 和 GLIBC。使用以下命令激活 Devtoolset 8:
scl enable devtoolset-8 bash
- 更新 GCC 和 GLIBC:使用 Devtoolset 8 提供的更新版本替換系統(tǒng)自帶的 GCC 和 GLIBC。使用以下命令更新:
sudo yum install devtoolset-8-toolchain
sudo scl enable devtoolset-8 bash
- 驗證更新版本:使用以下命令驗證 GCC 和 GLIBC 版本:
gcc --version
ldd --version
如果顯示的 GCC 版本為 8.x.x,并且顯示的 GLIBC 版本為 2.28 或更高版本,則說明已成功更新。
5. 再執(zhí)行node -v
命令來看看是否還有報錯?
踩坑記錄
執(zhí)行ldd --version
后發(fā)現(xiàn)glibc還是2.17版本,所以需要手動升級了,附上手動升級glibc的步驟:
- 下載 GLIBC 源碼:可以從官方網(wǎng)站或者清華鏡像下載 GLIBC 的源碼包,例如 glibc-2.28.tar.gz(不建議裝太新的)。
- 解壓源碼包:使用 tar 命令解壓源碼包:
tar -xzf glibc-2.28.tar.gz
- 編譯和安裝:切換到源碼目錄并使用 configure 和 make 命令編譯和安裝 GLIBC:
cd glibc-2.28
mkdir build
cd build
../configure --prefix=/usr
make
sudo make install
- 安裝成功。
文章已收錄至https://lichong.work,轉(zhuǎn)載請注明原文鏈接。
ps:歡迎關(guān)注公眾號“Fun肆編程”或添加我的私人微信交流經(jīng)驗??
【Docker】入門教程-基本概念解讀
【前端-React Native】移動端原生開發(fā)整合React Native Elements教程-安卓示例
【前端-開發(fā)環(huán)境】使用NVM實現(xiàn)不同nodejs版本的自由切換(NVM完整安裝使用手冊)
【前端-NPM私服】內(nèi)網(wǎng)使用verdaccio搭建私有npm服務(wù)器
【前端-IE兼容】Win10和Win11使用Edge調(diào)試前端兼容IE6、IE7、IE8、IE9、IE10、IE11問題
【前端-工程化】React項目工程化記錄-內(nèi)置項目活文檔(老項目升級優(yōu)化-集成Hosky/ESLint/Prettier-升級Webpack/Babel/NodeSass/React)
【工具-TWRP-frp-Termux】舊手機暴改成免費云服務(wù)器-MIUI刷TWRP安裝magisk獲取root
【工具-Shell腳本】java程序產(chǎn)品包模板-linux和windows通用shell啟動停止腳本(無需系統(tǒng)安裝Java運行環(huán)境)
【工具-Nginx】從入門安裝到高可用集群搭建
【工具-Nginx】Nginx高性能通用配置文件-注釋版-支持防刷限流、可控高并發(fā)、HTTP2、防XSS、Gzip、OCSP Stapling、負載、SSL
【工具-WireShark】網(wǎng)絡(luò)HTTP抓包使用教程
【后端-maven打包】通過profile標簽解決同時打jar包 war包需求
【架構(gòu)-DDD】使用領(lǐng)域驅(qū)動設(shè)計-互聯(lián)網(wǎng)未來架構(gòu)設(shè)計之道(一)
【后端-SpringCache】基于Spring Cache封裝一個能夠批量操作的Redis緩存記錄下踩坑歷程(pipeline或mget封裝)
【后端-SkyWalking】SkyWalking前后端開發(fā)環(huán)境搭建詳細教程步驟-6.x/7.x/8.x版本通用-插件二次開發(fā)利器(一)
【后端-Quartz】Springboot整合Quartz支持集群環(huán)境-設(shè)計業(yè)務(wù)與框架分離及實現(xiàn)定時任務(wù)調(diào)度
?歡迎為耿直少年點贊、關(guān)注、收藏?。?!文章來源:http://www.zghlxwxcb.cn/news/detail-561064.html
??????文章來源地址http://www.zghlxwxcb.cn/news/detail-561064.html
到了這里,關(guān)于【Linux-編譯器gcc/glibc升級】CentOS7.9使用NodeJS18時報錯/lib64/libm.so.6: version `GLIBC_2.27‘ not found的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!