國產化之Arm64 CPU+銀河麒麟系統安裝.NetCore


背景

某個項目需要實現基礎軟件全部國產化,其中操作系統指定銀河麒麟,銀河麒麟就是一個Linux發行版,數據庫使用達夢V8,這個數據庫很多概念和Oracle相似,CPU平台的范圍:龍芯、飛騰、鯤鵬等。

龍芯團隊自己支持了.netcore3.1,飛騰之類的是ARM架構,官方已經支持。.netcore3.1僅在 x64 體系結構上支持包管理器安裝,對於 ARM 等其他體系結構,必須通過其他一些方式安裝 .NET。

這里就以ARM架構舉例,其它CPU平台的安裝過程都一樣,要下載的包不同而已。

環境

  • 主機操作系統:Windows 10
  • 虛擬化工具:QEMU
  • 虛擬機CPU:cortex-a53(ARMv8架構,支持Arm64)
  • 虛擬機操作系統:銀河麒麟 v4

下載

.NET Core 3.1的官方下載地址是這里 :https://dotnet.microsoft.com/en-us/download/dotnet/3.1

img

因為這里選擇ARMv8架構的CPU,所以下載Linux的Arm64版本;如果是x64架構,就選擇x64。

如果是龍芯處理器,請前往龍芯官網下載:http://www.loongnix.cn/index.php/Dotnet

怎么上傳到服務器?

如果是下載到本地的,可以通過SFTP上傳到服務器;如果想在服務器下載,可以通過wget命令直接下載。

安裝

x64、Arm處理器

進入安裝文件目錄,我這里是下載到當前用戶的根目錄了,所以:

cd ~

執行以下命令,將安裝包解壓到當前用戶根目錄的dotnet文件夾下(可以更換路徑):

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.416-linux-arm64.tar.gz -C $HOME/dotnet

注意:不同平台的安裝包名字不一樣,要修改成你下載的,比如x64平台下的包是 dotnet-sdk-3.1.416-linux-x64.tar.gz 。

然后還需要將dotnet導出到環境變量PATH中,編輯文件 /etc/profile ,在最后添加以下兩句:

export PATH=$PATH:$HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet

然后執行命令:source /etc/profile,讓配置生效。

看看dotnet是否安裝成功了,執行命令:dotnet –info ,正常應該顯示如下:

img

MIPS、龍芯處理器

因為沒有龍芯處理器,這塊只能干說了,因為銀河麒麟是Debian系的,所以下載那個deb包,直接命令安裝就行了。

sudo apt install ./dotnet-sdk-3.1.11-rc1_loongarch64.deb 

安裝完成之后,也通過 dotnet –info 看一下結果。

其它依賴

如果依賴System.Drawing.Common 程序集,還需要 libgdiplus 6.0.1或更高版本,這個是mono提供的,如果你的CPU平台是arm64或者x64,可以在下面的鏈接下載這個包,上傳到服務器上進行安裝:

鏈接: https://pan.baidu.com/s/1WYIbxqh8OPTHBJWZoWafHw?pwd=pr4q

x64平台這樣安裝:

sudo apt install ./libgif7_5.1.4-0.3~16.04.1_amd64.deb
sudo apt install ./libgdiplus_6.0.5-0xamarin1+ubuntu1604b1_amd64.deb

arm64平台:

sudo apt install ./libgif7_5.1.4-0.3~16.04.1_arm64.deb
sudo apt install ./libgdiplus_6.0.5-0xamarin1+ubuntu1604b1_arm64.deb

如果你是其它CPU平台的,可以參考mono項目的這篇文章:

https://www.mono-project.com/download/stable/

針對這個問題,官方在.NET6中已經放棄了System.Drawing.Common的跨平台屬性,也許更好的辦法是使用其它圖形庫代替它,比如:SkiaSharpMicrosoft.Maui.GraphicsImageSharp

測試

依次執行以下命令:創建一個目錄 dotnetsample,然后創建一個web項目,最后運行這個項目。

cd ~
mkdir dotnetsample
cd ./dotnetsample
dotnet new web
dotnet run --urls=http://*:5000

在瀏覽器中訪問,顯示如下結果:

img

如果走到這一步,那么恭喜你,安裝成功了!

收獲更多架構知識,請關注微信公眾號 螢火架構。原創內容,轉載請注明出處。
掃描二維碼關注公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM