刚刚好 dotnet 8 的 glibc 版本足够旧,可以运行
本文记录于 2024.04.26 如果你阅读本文时间距离本文记录时间过远,可能本文记录的信息已失效
dotnet
根据 dotnet 的 supported-os 文档记录,当前的 dotnet 8 是 8.0.4 版本,官方说明是支持 Debian 11 及以上版本
实际测试可以在 debian 10 运行,且构建打包制作 AOT 等也正常
构建 dotnet 8 使用的是 Ubuntu 16.04 系统,依赖的 glibc 是 2.23 版本
debian 10
debian 10.13 版本的 glibc 版本是 2.28 版本
通过 ldd --version
命令行获取的 glibc 版本信息如下
ldd (Debian GLIBC 2.28-10+deb10u2) 2.28
可见 debian 10.13 的 glibc 版本大于 dotnet 8 的依赖 glibc 版本,从基础层面上提供了可运行的可能
经过我的稍微复杂的测试,发现了 dotnet 8 可以运行起来,且 AOT 部分也正常
麒麟
在我的设备上使用 cat /etc/.kyinfo
获取麒麟系统的版本的输出信息如下
[dist]
name=Kylin
milestone=Desktop-V10-SP1-General-Release-TSM-lindexi-20230217
arch=arm64
beta=False
time=2023-02-17 19:01:29
根据 定昌电子 记录的文档,这里的 Desktop V10 SP1 General Release 版本就是银河麒麟桌面操作系统V10 SP1版本
运行 uname -r
的输出如下
>$ uname -r
5.4.18-53sy01-generic
在麒麟系统上运行 cat /etc/debian_version
获取 debian 版本号,输出信息如下
>$ cat /etc/debian_version
bullseye/sid
bullseye 是 debian 11 的发布代号,详细请看 https://www.debian.org/releases/bullseye/
运行 ldd --version
命令行获取的 glibc 版本信息如下
>$ ldd --version
ldd (Ubuntu GLIBC 2.31-0kylin9.1k20.5) 2.31
可以看到麒麟V10基于 debian 11 且 glibc 为 2.31 版本,完全在 dotnet 8 支持范围内
UOS
在我的 UOS 虚拟机上运行 cat /etc/product-info
获取 UOS 的版本号信息的输出如下
>$ cat /etc/product-info
UnionTech OS-20-20221214083720_x86_64_E_1050_4-19
运行 cat /etc/os-version
查看 UOS 统信操作系统版本的输出如下
>$ cat /etc/os-version
[Version]
SystemName=UnionTech OS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=E
EditionName[zh_CN]=E
MajorVersion=20
MinorVersion=1050
OsBuild=11068.102
运行 cat /etc/os-release
的输出如下
>$ cat /etc/os-release
PRETTY_NAME="UnionTech OS Desktop 20 E"
NAME="uos"
VERSION_ID="20"
VERSION="20"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="http://bbs.chinauos.com"
VERSION_CODENAME=uranus
运行 uname -r
的输出如下
>$ uname -r
4.19.0-amd64-desktop
运行 cat /etc/debian_version
获取 debian 版本号,输出信息如下
>$ cat /etc/debian_version
10.10
运行 ldd --version
命令行获取的 glibc 版本信息如下
>$ ldd --version
ldd (Debian GLIBC 2.28.19-1+dde) 2.28
可以看到 UOS 的 OS-20-20221214083720 20.1050.11068.102 版本是基于 debian 10 的,在 dotnet 8 官方声明的支持范围之外。但 glibc 的版本是 2.28 版本,大于 dotnet 8 的依赖版本,提供了基础运行的可能。经过我的稍微复杂的测试,发现了 dotnet 8 可以运行起来,且 AOT 部分也正常
更多 Linux 和国产系统的开发相关博客,请参阅 博客导航
本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-8-%E7%89%88%E6%9C%AC%E4%B8%8E%E9%93%B6%E6%B2%B3%E9%BA%92%E9%BA%9FV10%E5%92%8CUOS%E7%B3%BB%E7%BB%9F%E7%9A%84-glibc-%E5%85%BC%E5%AE%B9%E6%80%A7.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利