今天是 Ubuntu 24.04 Noble Numbat 的发布日。祝贺 Canonical 的朋友们。我想说这是一个吉祥的日子,但它比这更崇高!事实上,这是第一次在官方 Ubuntu 源中从第一天起就提供 .NET 版本。无需等待,你现在就可以开始在 Ubuntu 24.04 中使用 .NET。
在 Ubuntu 22.04 发布几个月后,.NET 6 被添加到 Ubuntu 22.04 中。从那时起,我们学到了很多东西,并显着增强了 Canonical 和 Microsoft 之间的合作关系。从 Ubuntu 24.04 开始,Ubuntu feeds 将成为 .NET 软件包的官方来源。
.NET 安装文档已更新以反映最新说明。
适用于 .NET 8+ 的 Ubuntu 24.04 容器映像已经可用。它们包括高贵、高贵轮廓和高贵轮廓额外的形象风格。
Ubuntu LTS 版本总是很受欢迎。我们很高兴 .NET 成为 Ubuntu 24.04 的一部分,并预计许多 .NET 开发人员将在未来几周和几个月内开始使用这些新软件包和容器映像。
Packages安装
在 Ubuntu 24.04 上安装 .NET 8 非常简单。
$ sudo apt update && sudo apt install -y dotnet-sdk-8.0
$ dotnet --version
8.0.104
安装 .NET 8 与安装 Ubuntu 中可用的任何其他软件包相同。无需配置额外的提要。
.NET 6 和 7 可在 Ubuntu .NET 向后移植包存储库(也由 Canonical 维护)中找到。
以下是如何使用 dotnet/backports 存储库安装 .NET 6。
$ sudo add-apt-repository ppa:dotnet/backports
$ sudo apt install -y dotnet-sdk-6.0
$ dotnet --version
6.0.129
.NET 7 可以使用相同的模式安装,尽管 dotnet/backports 存储库只需要注册一次。
在所有情况下,手势都比注册packages.microsoft.com 源更简单。
注意:
如果未找到 add-apt-repository,请安装 software-properties-common 软件包。
安装还可能安装 tzdata,它具有交互式安装。
Containers容器
容器体验与 Jammy 非常相似。新镜像支持非根、凿刻且全球化就绪。
升级非常简单。我可以用一个针对“jammy-chiseled”的示例 Dockerfile 进行演示。
$ grep jammy Dockerfile.chiseled
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-jammy AS build
FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy-chiseled
$ sed -i "s/jammy/noble/g" Dockerfile.chiseled
$ grep noble Dockerfile.chiseled
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-noble AS build
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled
这些图像目前为夜间图像。
sed -i "s;/dotnet/;/dotnet/nightly/;g" Dockerfile.chiseled
我们现在可以构建并运行一个容器。
$ docker build --pull -t aspnetapp -f Dockerfile.chiseled .
$ docker run --rm -it -p 8000:8080 -m 50mb --cpus .5 aspnetapp
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/home/app/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. For more information, go to https://aka.ms/aspnet/dataprotectionwarning
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {6326de0e-7eab-412d-9d06-eb0d019e5590} may be persisted to storage in unencrypted form.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:8080
这是一个快速的升级。
我快速比较了之前和之后的大小,它们大致相同。
$ docker images aspnetapp
REPOSITORY TAG IMAGE ID CREATED SIZE
aspnetapp jammy-chiseled d938d8ee1104 51 seconds ago 118MB
aspnetapp noble-chiseled e59689894c68 35 minutes ago 119MB
安全与支持
Microsoft 和 Canonical 正在开展服务和支持方面的合作。为此,微软在补丁星期二发布之前向 Canonical 提供了安全和功能修复(通过私人渠道),并留出时间进行构建和测试。我们对红帽也做了同样的事情。我们的目标是让 .NET 修复随处可用。
如前所述,.NET 包的官方来源将通过 Ubuntu feeds 提供。这就提出了支持的问题。你可以在 dotnet8 启动板上或相应的 dotnet 存储库中提交 .NET 问题。如果对于哪个组织应该解决问题存在任何歧义,我们将通过我们的合作伙伴关系来处理。