Ubuntu 2022 安装asp.net core
首先明确,我们不需要安装SDK,而是只安装runtime就够了。
而如果是runtime,则又分为几种情况:
1. ASP.NET Core 运行时 8.0.0 (最终实际安装的)
ASP.NET 核心运行时使你能够运行现有的 Web/服务器应用程序。在 Windows 上,我们建议安装托管捆绑包,其中包括 .NET 运行时和 IIS 支持。
2. .NET 桌面运行时 8.0.0
.NET 桌面运行时使用户能够运行现有 Windows 桌面应用程序。此版本包括 .NET 运行时;无需单独安装。
3. .NET 运行时 8.0.0
.NET 运行时仅包含运行控制台应用所需的组件。通常你还将安装 ASP.NET Core 运行时或 .NET 桌面运行时。
从上面看得出,3 其实也只是1 的基础。安装1的话,实际上最终也是包含了3 的。
以上信息均来自页面:下载 .NET 8.0 (Linux、macOS 和 Windows) (microsoft.com)
使用 dotnet --list-sdks
和 dotnet --list-runtimes
命令查看安装的版本。 但是实际上在安装之前,这个命令是无法执行的。即使是安装之后,不设置环境变量的话,也是无法使用这个dotnet命令的。
具体采用的安装是使用ms官方提供的脚本安装的方式:
1. 下载 sh 文件:
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
2. 修改为可执行:
chmod +x ./dotnet-install.sh
3. 只安装aspnetcore就行,不用SDK:
./dotnet-install.sh --channel LTS --runtime aspnetcore
这里不需要执行 ./dotnet-install.sh --version latest --runtime aspnetcore 因为是在生产环境,我需要的是LTS版本,而 “--version latest”参数则会无视LTS,而始终采用最新的,哪怕是不是稳定版。
以上执行完之后,运行 dotnet --list-sdks
和 dotnet --list-runtimes 仍然会提示 dotnet 命令无法找到。Command 'dotnet' not found, but can be installed with:
而执行 echo $PATH 也会发现取值为:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
雀湿没有 dotnet 的相应路径在里面。
这个时候就需要再执行添加环境变量的操作了:
【西西 2024-08-06 140650】其实这俩环境变量好像并没有什么意义,因为后续发现使用apt install 的方式完成之后并没有这俩环境变量,但是并不影响dotnet程序的运行以及service 的建立。
1. export DOTNET_ROOT=$HOME/.dotnet
2. export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
以上两步执行之后再执行 dotnet --list-runtimes 就会输出以下了:
Microsoft.AspNetCore.App 8.0.0 [/root/.dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.0 [/root/.dotnet/shared/Microsoft.NETCore.App]
当然以上两步的操作也只是临时的在当前会话中,为当前的登陆用户设置了这两个环境变量而已。如果reboot的话,会发现dotnet依然是找不到的命令。
那么,需要将dotnet 命令添加到所有的用户的环境变量当中,那么就是编辑 /etc/profile 或 /etc/environment 文件。我用的是前者,添加的也是
1. export DOTNET_ROOT=$HOME/.dotnet
2. export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
如果要指定就是要安装LTS:
./dotnet-install.sh --channel LTS --runtime aspnetcore
如果是已经安装了aspnetcore,再执行 ./dotnet-install.sh --runtime aspnetcore 命令,就会提示说:
dotnet-install: ASP.NET Core Runtime with version '8.0.0' is already installed.
所以其实也不用太担心重复安装的问题。
其实也有更简单直接的方法,那就是apt install 的方式。当然首先还是要先 apt update 。然后:apt install aspnetcore-runtime-8.0 就可以了。
使用 apt list dotnet -a 往往没有什么数据,但是 apt list dotnet* 就会多得多: