WSL安装Bun后执行bun -v提示缺失GLIBC_2.29如何解决
问题根因
该报错和你在.bashrc中配置的Bun环境变量无关,你的环境变量配置写法正确。
报错核心原因:当前WSL内运行的Linux发行版自带的GLIBC(GNU C语言库)版本低于2.29,官方标准构建的Bun二进制依赖GLIBC 2.29及以上版本,无法在老版本系统上直接加载运行。
排查步骤
- 执行以下命令查看当前系统GLIBC版本:
ldd --version
输出首行即为当前GLIBC版本号,如果数值低于2.29(比如Ubuntu 18.04默认搭载2.27、CentOS 7默认搭载2.17),就会触发该报错。 - 执行
echo $PATH确认输出内容包含/home/jack/.bun/bin路径,再执行which bun确认返回路径为/home/jack/.bun/bin/bun,排除多版本Bun冲突的特殊情况。
修复方案
按稳定性从高到低选择即可:
- 方案1:升级WSL内的Linux发行版(推荐,最稳定无兼容问题)
低于GLIBC 2.29的发行版基本都已经结束官方维护,升级到满足版本要求的发行版即可一劳永逸解决依赖问题,以Ubuntu系为例操作步骤:- 更新当前系统所有已安装包:
sudo apt update && sudo apt full-upgrade -y - 安装系统版本升级工具:
sudo apt install update-manager-core -y - 执行跨版本升级命令,跟着终端提示完成操作:
sudo do-release-upgrade - 升级完成后关闭WSL窗口,在Windows端PowerShell执行
wsl --shutdown重启WSL实例,再执行bun -v即可正常返回版本号。
- 更新当前系统所有已安装包:
- 方案2:安装musl静态构建版Bun(暂不想升级系统时使用)
官方提供了不依赖系统GLIBC的musl静态编译版本,无需升级系统即可运行:- 删除之前安装的标准版本Bun:
rm -rf ~/.bun - 重新执行Bun安装命令,指定安装musl静态构建版本即可。
- 删除之前安装的标准版本Bun:
注意:绝对不要尝试手动编译、替换系统自带的GLIBC文件到2.29版本。GLIBC是系统核心底层依赖,几乎所有系统命令都依赖它运行,强行替换高版本会直接导致整个WSL环境崩溃,所有命令都无法执行。
内容的提问来源于stack exchange,提问作者user16466655
相关产品推荐
相关产品推荐

