新安装dotnet和C#环境后执行dotnet run出现GLIBC版本不匹配报错
.NET 6 执行
dotnet run提示glibc版本不匹配的解决方案 此报错的核心原因是当前Linux系统的glibc版本低于.NET 6运行所需的最低要求版本(2.2.5),.NET系列运行时对系统glibc有强依赖,版本不符会触发这类重定位错误。
排查步骤
- 执行命令
ldd --version,查看输出第一行的glibc版本号,确认是否确实低于2.2.5。
可选解决方法
- 升级系统环境:直接将操作系统发行版升级到支持glibc≥2.2.5的版本,比如Ubuntu 20.04+、Debian 11+、CentOS 8+,这类主流新版本发行版默认满足.NET 6的运行依赖要求。注意不要单独升级glibc包,可能导致其他系统软件兼容异常。
- 更换匹配的.NET版本:如果不想修改系统环境,可以卸载当前安装的.NET 6 SDK,安装对glibc版本要求更低的.NET版本(比如.NET 5、.NET Core 3.1),重新创建项目后即可正常运行。
- 独立部署项目:在项目目录下执行命令
dotnet publish --self-contained true -r linux-x64,该模式会把.NET运行时和所有依赖打包到发布产物中,无需依赖系统的glibc版本,直接运行发布目录下的可执行文件即可。 - 容器运行:本地安装Docker环境后,直接拉取.NET 6官方运行时镜像,将项目挂载到容器内运行,完全规避本地系统的依赖版本冲突问题。
新手优先推荐更换低版本.NET SDK或者使用容器运行的方案,操作复杂度低,不会对本地系统环境造成不可逆修改。
内容的提问来源于stack exchange,提问作者Nuclear bomb
相关产品推荐
相关产品推荐

