1、部署环境说明
操作系统:CentOS 7
系统版本:3.10.0-1160.el7.x86_64
备注说明:本次演练基于 VMware® Workstation 16 Pro 安装 CentOS 7 虚拟机,安装时选择最小安装模式。
2、注册镜像地址
从微软官方网址 https://packages.microsoft.com/config/ 查询针对 CentOS 7 的配置文件,把文件路径复制下来,执行以下命令。
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
[root@localhost ~]# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
获取https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
准备中... ################################# [100%]
正在升级/安装...
1:packages-microsoft-prod-1.0-1 ################################# [100%]
[root@localhost ~]#
3、执行 yum 更新
在进行 .NET SDK 安装之前,最好先把系统更新一下,保障运行环境为最新版本。
sudo yum update
# 以下为输出结果,显示系统已是最新~
[root@localhost ~]# sudo yum update
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.dgut.edu.cn
* extras: mirrors.dgut.edu.cn
* updates: mirrors.163.com
No packages marked for update
[root@localhost ~]#
PS:直接使用官网镜像仓库可能会比较慢,可以给系统配置一下加速镜像地址。具体方法可以看我的其他文章或自行百度。
4、搜索安装包
查询当前支持的 sdk 版本。
[root@localhost ~]# yum search all dotnet-sdk
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.dgut.edu.cn
* extras: mirrors.dgut.edu.cn
* updates: mirrors.163.com
=================== 匹配:dotnet-sdk ===================
dotnet-sdk-2.1.x86_64 : Microsoft .NET Core SDK 2.1.818 2.1.818
dotnet-sdk-2.2.x86_64 : Microsoft .NET Core SDK 2.2.402 2.2.402
dotnet-sdk-3.0.x86_64 : Microsoft .NET Core SDK 3.0.103 3.0.103
dotnet-sdk-3.1.x86_64 : Microsoft .NET Core SDK 3.1.416 3.1.416
dotnet-sdk-5.0.x86_64 : Microsoft .NET SDK 5.0.404 5.0.404
dotnet-sdk-6.0.x86_64 : Microsoft .NET SDK 6.0.101 6.0.101
[root@localhost ~]#
5、安装 dotnet-sdk
安装 SDK,通过以下安装过程可以看出,在安装 SDK 的同时,dotnet-runtime 作为依赖项,也被同时安装了。
yum install dotnet-sdk-6.0
安装过程如下:
[root@localhost ~]# yum install dotnet-sdk-6.0
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.dgut.edu.cn
* extras: mirrors.dgut.edu.cn
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 dotnet-sdk-6.0.x86_64.0.6.0.101-1 将被 安装
--> 正在处理依赖关系 netstandard-targeting-pack-2.1 >= 2.1.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在处理依赖关系 dotnet-runtime-6.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在处理依赖关系 dotnet-targeting-pack-6.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在处理依赖关系 dotnet-apphost-pack-6.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在处理依赖关系 aspnetcore-runtime-6.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在处理依赖关系 aspnetcore-targeting-pack-6.0,它被软件包 dotnet-sdk-6.0-6.0.101-1.x86_64 需要
--> 正在检查事务
---> 软件包 aspnetcore-runtime-6.0.x86_64.0.6.0.1-1 将被 安装
---> 软件包 aspnetcore-targeting-pack-6.0.x86_64.0.6.0.0-1 将被 安装
---> 软件包 dotnet-apphost-pack-6.0.x86_64.0.6.0.1-1 将被 安装
---> 软件包 dotnet-runtime-6.0.x86_64.0.6.0.1-1 将被 安装
--> 正在处理依赖关系 dotnet-hostfxr-6.0 >= 6.0.1,它被软件包 dotnet-runtime-6.0-6.0.1-1.x86_64 需要
--> 正在处理依赖关系 dotnet-runtime-deps-6.0 >= 6.0.1,它被软件包 dotnet-runtime-6.0-6.0.1-1.x86_64 需要
---> 软件包 dotnet-targeting-pack-6.0.x86_64.0.6.0.1-1 将被 安装
---> 软件包 netstandard-targeting-pack-2.1.x86_64.0.2.1.0-1 将被 安装
--> 正在检查事务
---> 软件包 dotnet-hostfxr-6.0.x86_64.0.6.0.1-1 将被 安装
--> 正在处理依赖关系 dotnet-host >= 6.0.1,它被软件包 dotnet-hostfxr-6.0-6.0.1-1.x86_64 需要
---> 软件包 dotnet-runtime-deps-6.0.x86_64.0.6.0.1-1 将被 安装
--> 正在处理依赖关系 libicu,它被软件包 dotnet-runtime-deps-6.0-6.0.1-1.x86_64 需要
--> 正在检查事务
---> 软件包 dotnet-host.x86_64.0.6.0.1-1 将被 安装
---> 软件包 libicu.x86_64.0.50.2-4.el7_7 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================================
Package 架构 版本 源 大小
================================================================================================
正在安装:
dotnet-sdk-6.0 x86_64 6.0.101-1 packages-microsoft-com-prod 114 M
为依赖而安装:
aspnetcore-runtime-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 8.7 M
aspnetcore-targeting-pack-6.0 x86_64 6.0.0-1 packages-microsoft-com-prod 2.0 M
dotnet-apphost-pack-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 4.7 M
dotnet-host x86_64 6.0.1-1 packages-microsoft-com-prod 67 k
dotnet-hostfxr-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 173 k
dotnet-runtime-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 29 M
dotnet-runtime-deps-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 3.9 k
dotnet-targeting-pack-6.0 x86_64 6.0.1-1 packages-microsoft-com-prod 3.1 M
libicu x86_64 50.2-4.el7_7 base 6.9 M
netstandard-targeting-pack-2.1 x86_64 2.1.0-1 packages-microsoft-com-prod 2.1 M
事务概要
=================================================================================================
安装 1 软件包 (+10 依赖软件包)
总下载量:171 M
安装大小:483 M
Is this ok [y/d/N]: y
Downloading packages:
警告:/var/cache/yum/x86_64/7/packages-microsoft-com-prod/packa | 9.9 MB 00:04:18 ETA
ges/aspnetcore-runtime-6.0.1-x64.rpm: 头V4 RSA/SHA256 Signature,
密钥 ID be1229cf: NOKEYB/saspnetcore-runtime-6.0.1-x64.rpm 的公钥
尚未安装
(1/11): aspnetcore-runtime-6.0.1-x64.rpm | 8.7 MB 00:00:16
(2/11): aspnetcore-targeting-pack-6.0.0.rpm | 2.0 MB 00:00:27
(3/11): dotnet-apphost-pack-6.0.1-x64.rpm | 4.7 MB 00:00:10
(4/11): dotnet-host-6.0.1-x64.rpm | 67 kB 00:00:00
(5/11): dotnet-hostfxr-6.0.1-x64.rpm | 173 kB 00:00:00
(6/11): dotnet-runtime-deps-6.0.1-centos.7-x64.rpm | 3.9 kB 00:00:00
(7/11): dotnet-runtime-6.0.1-x64.rpm 13% [========-] 634 kB/s | 23 MB
(7/11): dotnet-sdk-6.0.101-x64.rpm | 114 MB 00:03:36
(8/11): libicu-50.2-4.el7_7.x86_64.rpm | 6.9 MB 00:00:01
(9/11): dotnet-targeting-pack-6.0.1-x64.rpm | 3.1 MB 00:00:05
(10/11): netstandard-targeting-pack-2.1.0-x64.rpm | 2.1 MB 00:00:05
(11/11): dotnet-runtime-6.0.1-x64.rpm | 29 MB 00:06:20
----------------------------------------------------------------------------------------------------
总计 429 kB/s | 171 MB 00:06:48
从 https://packages.microsoft.com/keys/microsoft.asc 检索密钥
导入 GPG key 0xBE1229CF:
用户ID : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"
指纹 : bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf
来自 : https://packages.microsoft.com/keys/microsoft.asc
是否继续?[y/N]:y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
正在安装 : dotnet-targeting-pack-6.0-6.0.1-1.x86_64 1/11
正在安装 : aspnetcore-targeting-pack-6.0-6.0.0-1.x86_64 2/11
正在安装 : dotnet-apphost-pack-6.0-6.0.1-1.x86_64 3/11
正在安装 : libicu-50.2-4.el7_7.x86_64 4/11
正在安装 : dotnet-runtime-deps-6.0-6.0.1-1.x86_64 5/11
正在安装 : netstandard-targeting-pack-2.1-2.1.0-1.x86_64 6/11
正在安装 : dotnet-host-6.0.1-1.x86_64 7/11
正在安装 : dotnet-hostfxr-6.0-6.0.1-1.x86_64 8/11
正在安装 : dotnet-runtime-6.0-6.0.1-1.x86_64 9/11
正在安装 : aspnetcore-runtime-6.0-6.0.1-1.x86_64 10/11
正在安装 : dotnet-sdk-6.0-6.0.101-1.x86_64 11/11
This software may collect information about you and your use of the software, and send that to Microsoft.
Please visit http://aka.ms/dotnet-cli-eula for more information.
Welcome to .NET!
---------------------
Learn more about .NET: https://aka.ms/dotnet-docs
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft
and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT
environment variable to '1' or 'true' using your favorite shell.
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
Configuring...
--------------
A command is running to populate your local package cache to improve restore speed and enable offline access.
This command takes up to one minute to complete and only runs once.
验证中 : aspnetcore-runtime-6.0-6.0.1-1.x86_64 1/11
验证中 : dotnet-host-6.0.1-1.x86_64 2/11
验证中 : dotnet-runtime-deps-6.0-6.0.1-1.x86_64 3/11
验证中 : netstandard-targeting-pack-2.1-2.1.0-1.x86_64 4/11
验证中 : libicu-50.2-4.el7_7.x86_64 5/11
验证中 : dotnet-targeting-pack-6.0-6.0.1-1.x86_64 6/11
验证中 : dotnet-sdk-6.0-6.0.101-1.x86_64 7/11
验证中 : dotnet-apphost-pack-6.0-6.0.1-1.x86_64 8/11
验证中 : aspnetcore-targeting-pack-6.0-6.0.0-1.x86_64 9/11
验证中 : dotnet-hostfxr-6.0-6.0.1-1.x86_64 10/11
验证中 : dotnet-runtime-6.0-6.0.1-1.x86_64 11/11
已安装:
dotnet-sdk-6.0.x86_64 0:6.0.101-1
作为依赖被安装:
aspnetcore-runtime-6.0.x86_64 0:6.0.1-1
aspnetcore-targeting-pack-6.0.x86_64 0:6.0.0-1
dotnet-apphost-pack-6.0.x86_64 0:6.0.1-1
dotnet-host.x86_64 0:6.0.1-1
dotnet-hostfxr-6.0.x86_64 0:6.0.1-1
dotnet-runtime-6.0.x86_64 0:6.0.1-1
dotnet-runtime-deps-6.0.x86_64 0:6.0.1-1
dotnet-targeting-pack-6.0.x86_64 0:6.0.1-1
libicu.x86_64 0:50.2-4.el7_7
netstandard-targeting-pack-2.1.x86_64 0:2.1.0-1
完毕!
[root@localhost ~]#
6、验证是否成功
[root@localhost ~]# dotnet --version
6.0.101
也可以执行其他命令进行验证。
[root@localhost ~]# dotnet new
“dotnet new”命令基于模板创建 .NET 项目。
常用模板包括:
模板名 短名称 语言 标记
-------------------- ------------ ---------- -------------------
ASP.NET Core Web App webapp,razor [C#] Web/MVC/Razor Pages
Blazor Server App blazorserver [C#] Web/Blazor
Console Application console [C#],F#,VB Common/Console
Class library classlib [C#],F#,VB Common/Library
例如:
dotnet new console
通过以下方式显示模板选项:
dotnet new console -h
通过以下方式显示已安装的所有模板:
dotnet new --list
通过以下方式显示 NuGet.org 上可用模板:
dotnet new web --search
[root@localhost ~]# dotnet --version
6.0.101
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# dotnet new
“dotnet new”命令基于模板创建 .NET 项目。
常用模板包括:
模板名 短名称 语言 标记
-------------------- ------------ ---------- -------------------
ASP.NET Core Web App webapp,razor [C#] Web/MVC/Razor Pages
Blazor Server App blazorserver [C#] Web/Blazor
Console Application console [C#],F#,VB Common/Console
Class library classlib [C#],F#,VB Common/Library
例如:
dotnet new console
通过以下方式显示模板选项:
dotnet new console -h
通过以下方式显示已安装的所有模板:
dotnet new --list
通过以下方式显示 NuGet.org 上可用模板:
dotnet new web --search
[root@localhost ~]#
作者:李恒