dotnet 8 版本與銀河麒麟V10和UOS系統的 glibc 兼容性

剛剛好 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 和國產系統的開發相關博客,請參閱 博客導航

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章