新安装的Ubuntu按照微软官方的教程在 Ubuntu 上安装 .NET SDK 或 .NET 运行时会报错,无法完成安装。报错如下:
原因是 Ubuntu 从6.10开始,默认使用dash,而不是bash。只要把sh切换到bash就可以正常安装了。
切换bash和dash
先用命令 71620@71620.org:~# ls -l /bin/sh
看看
/bin/sh -> dash
我们会发现Ubuntu默认采用的是 dash
如果要修改默认的sh,可以采用命令
71620@71620.org:~# sudo dpkg-reconfigure dash
执行命令后会弹出如下界面,在界面上选择<No>。
然后用查看命令:ls -l /bin/sh 发现 sh 已经成功切换到bash了。如果想切换回dash,只需要重复执行sudo dpkg-reconfigure dash命令,然后选择<Yes>就可以了。
附上官方的文档:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu
ubuntu
使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
wget https://packages.microsoft.com/config/ubuntu/21.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
(注意本示例是用22.04, 其他版本的请把红色字体的替换成对应的版本号)
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-6.0
安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-6.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-6.0
替换为 dotnet-runtime-6.0
:
sudo apt-get install -y dotnet-runtime-6.0
注意: Ubuntu 22.04 包括 OpenSSL 3 作为基线版本。 .NET 6 支持 OpenSSL 3, 而早期 .NET 版本则不支持。 Microsoft 不支持在 Ubuntu 22.04 上使用 OpenSSL 1.x。