2022年7月30日星期六

在 Ubuntu 上安装 .NET SDK 或 .NET 运行时报错原因

新安装的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, 其他版本的请把红色字体的替换成对应的版本号)

打开终端并运行以下命令:

Bash
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,请运行以下命令:

Bash
sudo apt-get update && \  sudo apt-get install -y dotnet-sdk-6.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

Bash
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

Bash
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。


留下您的评论