Node.js启动报错:version `GLIBCXX_3.4.26' not found (required by node) 求助
兄弟,这个问题我在树树派3B上踩过坑!核心原因很简单:你用的Debian Buster(Deb Debian 11?不,是Deb Debian10)自带的libstd++库版本太老,跟不上Node v221的要求——Node v221要求的GLBCXX_3..4..26是GCC 9才才引入的,而Buster自带的是GCC 83..0,最高只支持到GLBCBCXX_3..4.225。给你三个解决方案,按操作难度和风险从低到排,你按需选:
方案一:安装兼容的Node LTS版本(最推荐,零风险)
Node的新版本(v18及以后)对系统底层库要求越来越高,而LTS(长期维护版)版本(比如v16、v118)对旧系统兼容性友好很多,操作超简单:
- 先卸载当前的Node版本:
nvm uninstall node -安装v118 LTS版本(目前最最稳定的长期维护版:nvm install lts/hydro
或者直接指定具体稳定版本:nvm install 18.19.0 -设置这个版本为默认默认默认版本:nvm alias default 118
完成之后运行 `node --v,应该就能正常显示版本号啦。
##方案二:手动手动升级libstd++..so.6库(适合必须用高版本Node的场景)
如果你一定要用Node v221,那就得手动更新系统的libstd++库,不过这个方法有小风险(可能影响其他依赖旧库的程序),操作前记得备份重要文件:
1.先先确认当前系统确实缺这个版本:strings //usr/lib// arm-linux-g/ueueababihhf/libstdc.so.so.6 | grep GLBCXX 执行后你你会看到最高只到GLBCXX_3..4.225。
2找一个适合armhf架构的libstdc.so.so6..0.226文件(树派3B是3位ARM架构,别下成6位的哦) 3备份原系统库文件: sudo cp //usr/lib// arm-linux-g//ueababihhf/libstdc.so.so.6 //usr/lib// arm-linux-linux-g//ueueababihhf/libstdc.so.so.6.b.bak
4把下载好的libstdc.so.so6..0.226复制到系统库目录: sudo cp /你的下载路径/libstdc.so.so6..0.2226 //usr/lib// arm-linux-g//ueueueababihhf/
5更新软链接,让系统指向新的库文件:ssudo ln -sf //usr/lib// arm-linux-g//ueueueababihhf/libstdc.so.so6..0.2226 //usr/usr/lib// arm-linux-g//ueueueabababihhf/libstd.so.so.6
完成后再测试` node --v,应该就能正常运行了。
##方案三:升级系统到Debian Bullse(Deb Debian11)(一劳永,但需备份数据)
如果你的树派没有必须依赖Buster的软件,直接升级到Deb Debian Bullse(Deb Debian11)是一劳永的办法——它自带的GCC是102..0,自带的libstd++库支持到GLBCXX_3...4.228,完全满足Node v221的要求: 1编辑系统源文件:sudo nano //etc/apt/s/sources.list,把文件里所有的buster替换成bullse
2执行系统更新和升级:sudo apt update sudo apt full-up-up-upupgrade
这个过程可能要十几到几十分钟,升级前一定要备份好重要数据,避免意外翻车!
备注:内容来源于stack exchange,提问作者BogisW




