You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manjaro Linux运行ASP.NET Core 6应用提示GLIBC符号未定义重定位错误如何解决

报错根因

该错误是编译环境与运行环境的GLIBC版本不兼容导致的:你构建ASP.NET Core 6应用的环境GLIBC版本远高于当前运行服务器的GLIBC版本,_dl_fatal_printf 属于GLIBC私有接口,跨大版本迁移时就会触发该链接错误。

可行解决方案

方案1:用独立部署模式重新发布应用(优先推荐)

独立部署会将.NET运行时和所有依赖项全部打包到发布包中,不依赖目标系统的GLIBC版本和.NET运行环境。

  • 发布命令:
dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true
  • 将生成的publish目录完整上传到服务器,直接运行目录下的可执行文件即可。

方案2:对齐编译、运行环境的GLIBC版本

如果要保留框架依赖部署模式,需要保证编译环境和运行环境的GLIBC版本一致:

  • 先执行命令查看运行服务器的GLIBC版本:ldd --version,第一行输出即为版本号
  • 编译应用的环境(本地开发机、构建服务器)安装和运行环境同版本的Linux发行版,再重新构建应用即可。

方案3:适配低版本Linux系统

如果你的服务器GLIBC版本低于ASP.NET Core 6要求的最低2.23版本,可选择以下两种操作:

  • 升级服务器系统到符合要求的发行版:Ubuntu 18.04+、CentOS 8+、Debian 9+
  • 改用Native AOT模式发布应用,该模式编译出的可执行文件不依赖系统GLIBC:
    发布命令:
    dotnet publish -c Release -r linux-x64 /p:PublishAot=true
    
    注意:AOT模式存在部分API使用限制,发布前需检查应用代码兼容性。

方案4:临时测试方案

如果仅需临时验证应用功能,可直接使用Docker容器运行,打包时选用官方ASP.NET Core 6运行时镜像即可,无需修改宿主系统配置。

内容的提问来源于stack exchange,提问作者leukk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:54:00