参考 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的问题彻底解决。