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

.NET/SQLite在Ubuntu更新后无法加载libe_sqlite3.so的问题排查

问题根源与解决方案

核心原因

你遇到的问题本质是版本依赖不兼容:.NET 8.0.4版本的官方SQLite关联库(libe_sqlite3.so)是基于GLIBC 2.28编译的,但你的Ubuntu服务器系统的GLIBC版本低于2.28,导致动态链接库加载失败。

为什么恢复csproj历史版本没用?因为发布时使用的是本地开发环境的.NET 8.0.4 SDK,即使csproj回滚,SDK仍会拉取对应版本的依赖库,而非旧版本的低GLIBC要求库。只有服务器备份里的文件是基于.NET 8.0.2编译的,其依赖的GLIBC版本更低,所以能正常运行。


可行解决方案

1. 锁定.NET SDK版本为8.0.2

在项目根目录创建global.json文件,强制使用8.0.2版本的SDK进行编译和发布:

{
  "sdk": {
    "version": "8.0.202",
    "rollForward": "disable"
  }
}

然后在Rider中确认项目使用该SDK,重新发布即可。这样生成的依赖库会和之前正常运行的版本一致,适配服务器的GLIBC版本。

2. 改用静态编译的SQLite库

移除现有SQLitePCLRaw.bundle_e_sqlite3包,安装SQLitePCLRaw.bundle_static_sqlite3包——这个包是静态编译的SQLite,不依赖系统的GLIBC,能彻底规避动态链接的版本问题。安装后重新发布即可。

3. 升级服务器GLIBC版本(谨慎操作)

如果服务器允许,可以升级Ubuntu系统到19.04及以上(该版本默认GLIBC≥2.29)。不建议手动编译安装GLIBC,容易破坏系统依赖链,导致其他服务异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:07:15