【外评】Ubuntu 24.04 中 .NET 的新功能
今天是 Ubuntu 24.04 Noble Numbat 的发布日。祝贺我们的 Canonical 朋友。我想说这是一个吉祥的日子,但它比这更荣耀!事实上,这是 .NET 版本首次在Ubuntu官方源中发布。无需等待,现在就可以在Ubuntu 24.04中开始使用.NET了。
您可能还记得,在Ubuntu 22.04发布几个月后,.NET 6被添加到了Ubuntu 22.04中。从那时起,我们学到了很多东西,Canonical与微软之间的合作关系也得到了长足的发展。从Ubuntu 24.04开始,Ubuntu feeds将成为.NET软件包的官方来源。
.NET安装文档已更新以反映最新说明。
Ubuntu 24.04的容器镜像已经可用,适用于.NET 8+。它们包括 noble
、name-chiseled
和 noble-chiseled-extra
镜像。
Ubuntu LTS 版本总是很受欢迎。我们很高兴 .NET 成为Ubuntu 24.04的一部分,预计在未来几周或几个月内,很多 .NET 开发人员将开始使用这些新软件包和容器镜像。
软件包
在 Ubuntu 24.04 上安装 .NET 8 非常简单。
$ sudo apt update && sudo apt install -y dotnet-sdk-8.0
$ dotnet --version
8.0.104
安装 .NET 8 与安装 Ubuntu 中的任何其他软件包都是一样的。不需要配置额外的源代码。
Ubuntu .NET backports 软件包库(也由Canonical维护)中提供了 .NET 6 和 .NET 7。
下面是如何使用 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
feed 简单。
注释:
- 如果找不到
add-apt-repository
,请安装software-properties-common
软件包。 - 安装时还可能安装
tzdata
,它具有交互式安装功能。
容器
noble
容器体验与 jammy
大体相同。新镜像支持non-root, chiseled 和globalization-ready。
我用一个sample Dockerfile 来演示,其目标是 jammy-chiseled.
$ 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
这些镜像在nightly
里。
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
安全和支持
微软和 Canonical 正在服务和支持方面开展合作。为此,微软会在 Patch Tuesday 发布前向 Canonical 提供安全和功能修复(通过私人渠道),并留出时间进行构建和测试。我们与 Red Hat 也是这样做的。我们的目标是,.NET 修补程序可以同时在所有地方提供。
如前所述,.NET 软件包的官方来源将是Ubuntu feeds。这就提出了支持问题。您可以在 dotnet8 launchpad 或相应的 dotnet repo 中提交 .NET 问题。如果在由哪个组织解决问题的问题上存在任何歧义,我们将通过我们的合作伙伴关系来处理。
结束语
我们很高兴 .NET 能如此完美地集成到 Ubuntu 中,也很高兴能得到 Canonical 朋友们的大力支持。我们将继续寻找和探索新的方法来改善 .NET 在 Ubuntu 上的使用体验。
本文文字及图片出自 What’s new for .NET in Ubuntu 24.04
你也许感兴趣的:
- 【外评】使用 .NET Core 开发软件的 9 大优势
- 【译论】是 .net 遥遥领先,还是我有幻觉?
- 开发者阵营分化,.NET 开源生态系统如何走向未来?
- .NET 8.0中有哪些新的变化?
- Csharp 不停止膨胀,必将走向灭亡
- 押注.NET 是件好事
- .NET 从昨日辉煌到如今逐渐没落
- .NET Core 2.2 正式发布,有你喜欢的特性吗?
- 关于.NET Core是否应该支持WCF Hosting的争论
- 一文看懂.NET的各种变体
你对本文的反应是: