CentOS .NET Core 6.0 安装错误的运行时版本
CentOS .NET Core 6.0 installs wrong runtime version
这是我 运行 试图在 CentOS 8 Stream 上安装 .net core 6.0 的 2 个命令:
sudo dnf install dotnet-runtime-6.0
Last metadata expiration check: 0:12:04 ago on Tue 23 Nov 2021 17:38:47 UTC.
. . .
Installed:
dotnet-host-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
dotnet-hostfxr-6.0-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
dotnet-runtime-6.0-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
lttng-ust-2.8.1-11.el8.x86_64
userspace-rcu-0.10.1-4.el8.x86_64
Complete!
[/usr/local/bin]$ dotnet --list-runtimes
Microsoft.NETCore.App 6.0.0-rc.2.21470.23 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
Install 说它安装了 6.0.0-0.6
但实际版本是 6.0.0-rc.2.21470.23
并且我的应用程序失败并出现错误:
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.0' (x64) was not found.
- The following frameworks were found:
6.0.0-rc.2.21470.23 at [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
不手动安装 .net 可以修复吗?
解决方案(有效)
将回购添加到 OS:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
将其优先级更改为在 OS 之前:
回声 'priority=50' | sudo tee -a /etc/yum.repos.d/microsoft-prod.repo
安装
sudo dnf install dotnet-runtime-6.0
重启机器
CentOS 8 Stream 似乎有一个过时的 .NET 6 版本。
版本老是我的错;我需要更新 CentOS Stream 8 中的组件(它实际上复制了 RHEL 8.6 中的内容,这就是我将修复的那个)。
dotnet --info
显示的版本是正确的。
RPM 包版本控制是 CentOS(以及直到最近的 RHEL 和 Fedora)无法反映即将发布 6.0 的上游预发布版本的一种解决方法。我们被迫使用版本“6.0”和带有“0.X”的 Release 来表示“这是 6.0 的预发布版”。我本可以称它为“6.0-0.6.rc2”,但这个版本甚至不完全是“6.0 RC2”,它是一个 pre-RC2 快照主机(从 dotnet/installer 存储库提交 28be3e9a006d90d8c6e87d4353b77882829df718
)。
如果您迫切需要 .NET 6,可以考虑以下选项:
如果你需要容器,试试registry.access.redhat.com/ubi8/dotnet-60-runtime
。
使用手动(非软件包)安装 .NET 6:https://docs.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#manual-install
添加 Microsoft RPM 存储库(repo file) and then use solution 3 以确保它优先于 CentOS 存储库。
这是我 运行 试图在 CentOS 8 Stream 上安装 .net core 6.0 的 2 个命令:
sudo dnf install dotnet-runtime-6.0
Last metadata expiration check: 0:12:04 ago on Tue 23 Nov 2021 17:38:47 UTC.
. . .
Installed:
dotnet-host-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
dotnet-hostfxr-6.0-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
dotnet-runtime-6.0-6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718.el8.x86_64
lttng-ust-2.8.1-11.el8.x86_64
userspace-rcu-0.10.1-4.el8.x86_64
Complete!
[/usr/local/bin]$ dotnet --list-runtimes
Microsoft.NETCore.App 6.0.0-rc.2.21470.23 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
Install 说它安装了 6.0.0-0.6
但实际版本是 6.0.0-rc.2.21470.23
并且我的应用程序失败并出现错误:
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.0' (x64) was not found.
- The following frameworks were found:
6.0.0-rc.2.21470.23 at [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
不手动安装 .net 可以修复吗?
解决方案(有效)
将回购添加到 OS: sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
将其优先级更改为在 OS 之前: 回声 'priority=50' | sudo tee -a /etc/yum.repos.d/microsoft-prod.repo
安装 sudo dnf install dotnet-runtime-6.0
重启机器
CentOS 8 Stream 似乎有一个过时的 .NET 6 版本。
版本老是我的错;我需要更新 CentOS Stream 8 中的组件(它实际上复制了 RHEL 8.6 中的内容,这就是我将修复的那个)。
dotnet --info
显示的版本是正确的。
RPM 包版本控制是 CentOS(以及直到最近的 RHEL 和 Fedora)无法反映即将发布 6.0 的上游预发布版本的一种解决方法。我们被迫使用版本“6.0”和带有“0.X”的 Release 来表示“这是 6.0 的预发布版”。我本可以称它为“6.0-0.6.rc2”,但这个版本甚至不完全是“6.0 RC2”,它是一个 pre-RC2 快照主机(从 dotnet/installer 存储库提交 28be3e9a006d90d8c6e87d4353b77882829df718
)。
如果您迫切需要 .NET 6,可以考虑以下选项:
如果你需要容器,试试
registry.access.redhat.com/ubi8/dotnet-60-runtime
。使用手动(非软件包)安装 .NET 6:https://docs.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#manual-install
添加 Microsoft RPM 存储库(repo file) and then use solution 3 以确保它优先于 CentOS 存储库。