为什么这些方法都不能在22.04(果冻鱼)上安装.Net Core SDK和运行时?

我去了以下的官方微软链接以安装 .NET Core 6.x(SDK和运行时),但它们无法正常工作。
基本上,它告诉你要:
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,你应该运行:

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

然后安装运行时,它说要运行:
sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-6.0

但是当我运行所有这些时,出现了一个奇怪的情况,运行时“半安装”。 我可以运行$ dotnet --list-sdks,但它不会报告任何SDK。 此外,我无法运行简单的命令$ dotnet --version,它会显示未安装任何SDK,并且无法运行该命令。非常令人困惑。 我还遇到了以下错误:

无法找到软件包dotnet-sdk-6.0

Microsoft建议选择以下链接来解决该问题:APT故障排除部分尝试Snap 我还尝试安装Snap。然而,dotnet运行时仍然无法正常工作。 我尝试了各种删除、重启和多种选项,但始终无法正确安装SDK。
2个回答

我使用APT软件包解决方案来运行它,实际上Ubuntu软件包(Jammy feed)和Microsoft软件包(PMC)之间存在冲突,更多信息请参考这里:https://github.com/dotnet/core/issues/7699 以下步骤的解决方案适用于我: 通过PMC使用.NET 6软件包
  1. 删除所有.NET软件包
sudo apt remove 'dotnet*'
sudo apt remove 'aspnetcore*'

创建文件:
sudo touch /etc/apt/preferences.d/dotnet.pref

有内容:

Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001

安装.NET SDK 6.0
sudo apt update
sudo apt install dotnet-sdk-6.0

我已经获得了最新版本的SDK。
$ dotnet --list-sdks
6.0.400 [/usr/share/dotnet/sdk]

谢谢,Ubuntu 22.04 上运行得非常顺利!我使用了特定的版本进行安装:sudo apt install dotnet-sdk-6.0=6.0.301 - Dmitriy Vornychev

以下简单的命令已经解决了我的问题:
sudo apt dist-upgrade