參考 https://www.cnblogs.com/yuanqq/p/13686446.html
參考 https://dotnet.microsoft.com/download/dotnet-core
主機配置
CPU:飛騰FT-2000/4
內存:8G
硬盤:200GB
操作系統:麒麟V10(ARM64)、統信UOS(桌面專業版ARM64)
備注:這里列出的是兩個操作系統並非是雙系統,而是作為實驗對象分別對這兩款操作系統進行了環境安裝配置。
麒麟V10安裝.net core 3.1
安裝之前需要先了解操作系統的版本號,確定基於哪個版本再安裝,運行如下命令進行查看:
cat /proc/version
根據顯示信息我們可以得到麒麟操作系統V10版本是基於ubuntul16.04的,對應微軟官方安裝說明地址:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu, 先使用APT方式安裝。
APT方式安裝
在微軟官方文檔中找到16.4版本的安裝說明,然后根據指引將 Microsoft 包簽名密鑰添加到受信任密鑰列表,並添加包存儲庫
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
成功后繼續執行:
sudo dpkg -i packages-microsoft-prod.deb
完成上面兩步后就可以開始安裝SDK了,根據提示先執行更新操作:
sudo apt-get update
提示無法解析域名”archive.kylinos.cn“,應該是鏡像源有問題,查看資源列表:
vim /etc/apt/sources.list
直接聯系麒麟公司客服,解釋是系統升級維護中,要等兩周時間,APT安裝方式暫時擱置,轉為手動安裝。
手動安裝
手動安裝需要先下載.net core 3.1 SDK,在微軟官方文檔中有下載地址鏈接,下載的版本較多:
這里要注意一下要根據自己電腦的架構來選擇對應的版本,請使用下面命令來查看:
uname -a
我這里是aarch64查了一下屬於ARM64,所以下載ARM64版本的,執行命令下載 :
wget https://download.visualstudio.microsoft.com/download/pr/186257d9-bca2-4dda-be74-006205965ec9/b2b63d45482701473d9731abc41ecc2a/dotnet-sdk-3.1.402-linux-arm64.tar.gz
繼續跟着微軟官方安裝說明的指引使用以下命令來提取 SDK:
mkdir -p "$HOME/dotnet" && tar zxf dotnet-sdk-3.1.402-linux-arm64.tar.gz -C "$HOME/dotnet" export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet
一切貌似還比較順利,查看安裝是否成功:
dotnet --info
應該配置成功了。
統信UOS安裝.net core sdk
安裝之前同樣需要先看一下操作系統的版本號,確定基於哪個版本安裝:
cat /proc/version
從截圖中看到統信UOS的操作系統是基於Debian 8.3.0版本的,找到官方安裝說明地址:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-debian ,文檔中描述Debian 8版本不支持APT方式安裝,只能使用手動方式安裝。
手動安裝
同樣下載獲取ARM64的.net core sdk,然后使用如下命令安裝
mkdir -p "$HOME/dotnet" && tar zxf dotnet-sdk-3.1.402-linux-arm64.tar.gz -C "$HOME/dotnet" export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet
查看安裝是否成功:
dotnet --info
沒有問題,統信UOS下安裝成功。
運行測試
為了驗證.net core環境是否正常能用,還需要分別對兩個操作系統下的.net core環境運行測試一下。創建一個項目目錄,然后新建一個MVC項目,看看是否能跑得起來:
dotnet new mvc
創建成功,然后運行看看
dotnet run
使用桌面端打開瀏覽器輸入”http://localhost:5000“,成功顯示頁面,其默認會跳轉到”https://localhost:5001“,這個不用在意
經過測試,兩個操作系統都能正常運行網站,環境算是安裝配置成功了。
環境變量配置
在兩個版本的官方安裝文檔下方都有一塊加深背景的提示,原文如下:
提示
前面的 export 命令只會使 .NET Core CLI 命令對運行它的終端會話可用。
你可以編輯 shell 配置文件,永久地添加這些命令。 Linux 提供了許多不同的 shell,每個都有不同的配置文件。 例如:
Bash Shell:/.bash_profile、/.bashrc
Korn Shell:~/.kshrc 或 .profile
Z Shell:~/.zshrc 或 .zprofile
為 shell 編輯相應的源文件,並將 :$HOME/dotnet 添加到現有 PATH 語句的末尾。 如果不包含 PATH 語句,則使用 export PATH=$PATH:$HOME/dotnet 添加新行。另外,將 export DOTNET_ROOT=$HOME/dotnet 添加至文件的末尾。
大意是手動安裝 export 命令只會對當前的會話終端有用,如果關閉后再次打開就會失效,為了驗證,我們關閉當前終端,然后重新登錄或切換成其他賬號后運行命令:
確實出現”dotnet:未找到命令“的提示,根據文檔提示編輯”~/.bashrc“
vim ~/.bashrc
在末尾加上:
# .net core sdk 運行環境 export PATH=$PATH:$HOME/dotnet export DOTNET_ROOT=$HOME/dotnet
保存退出,運行如下命令重新加載環境變量
source ~/.bashrc
再一次”dotnet“ ,運行正常,切換成其他用戶后運行仍然是”未找到命令“,說明“~/.bashrc”只對當前安裝用戶有效,而並不是全局的,網上搜索了一下也確實如此,我們希望所有的用戶都能使用就不能在這里配置了,另外還需要對dotnet目錄挪挪位置,首先能夠讓所以用戶都能看到dotnet目錄,將dotnet sdk目錄拷貝到usr/local/目錄下:
cp -r dotnet /usr/local
然后編輯~/.bashrc文件,刪除原來針對.net core的環境變量配置,編輯/etc/profile全局環境變量文件
vim /etc/profile
在文件最末尾添加如下配置:
# .net core sdk 運行環境 exprot PATH=$PATH:/usr/local/dotnet exprot DOTNET_ROOT=/usr/local/dotnet
這里注意一下配置中路徑已經有所變化,是“/usr/local/dotnet”而不是原來的“#HOME/dotnet”,保存退出,重新加載環境變量
source /etc/profile
切換用戶,運行命令
dotnet --info
成功運行,切換用戶后無法使用dotnet的問題徹底解決。