微软和Canonical宣布在Ubuntu 22.04主机和容器中提供本地.NET服务
- .NET开发者现在可以通过一个"apt install"命令从Ubuntu 22.04 LTS安装ASP.NET和.NET SDK以及运行时。
- Canonical为.NET 6 LTS和ASP.NET运行时发布了新的、符合OCI标准的超小型设备镜像,无需外壳或软件包管理器。
- 微软和Canonical正在合作以确保.NET和Ubuntu之间的软件供应链,并提供企业级支持。
Canonical很自豪地欢迎.NET开发平台,这是微软对开源项目最早的贡献之一,从Ubuntu 22.04 LTS开始,它将成为Ubuntu主机和容器镜像的本地体验。
.NET开发者将能够从Ubuntu开始他们的Linux之旅,从及时的安全补丁和新版本中获益。
.NET 6用户和开发者现在可以通过简单的apt install dotnet6
命令在Ubuntu上安装.NET 6软件包。优化的、预先构建的、超小的容器镜像现在也可以开箱使用。
作为Ubuntu .deb软件包的.NET是微软和Canonical之间紧密合作的结果。这两家公司正在合作,为Ubuntu提供及时的安全补丁和新版本。这是Ubuntu上开源框架后续更多功能的基础,用于主机和最小化的容器镜像。
.NET项目经理Richard Lander说:"与Canonical合作使我们能够同时向.NET开发者提供易用性和改进的安全性。"该项目得益于Canonical在Linux生态系统中的领导地位,以及微软在开发工具和平台方面的深厚经验。其结果是将盒内包和容器镜像结合起来,通过开源使社区开发者和大型企业客户都能受益。"
Canonical产品经理Valentin Viennot说:"Ubuntu现在有一个从开发到生产的端到端故事,从.NET平台开始,支持超小的容器镜像"。"我们认为这对我们两个社区来说都是一个巨大的进步;与微软的.NET团队的合作使我们能够超越自我"。
在Ubuntu上安装.NET 6
有了Canonical软件库的这个新成员,在Ubuntu 22.04 LTS上安装和保持.NET和ASP.NET的更新是很简单的。
# 快速安装SDK和运行时的包
sudo apt update && sudo apt install dotnet6
# 或者根据开发需要按需安装
sudo apt install dotnet-sdk-6.0
sudo apt install dotnet-runtime-6.O
sudo apt install aspnetcore-runtime-6.0
微软和Canonical:为安全而合作
对于所有的开源消费者来说,软件的出处比以往任何时候都更加重要。开源社区和企业都需要对其软件的依赖性有信心。
Canonical和微软已经合作,直接与对方分享内容,没有中间商。微软的.NET项目经理Richard Lander说:"我们现在对所有Canonical的资产来说,实际上是一个零距离的供应链"。
微软最近为.NET建立了一个发行版维护者小组。Canonical现在是该小组的成员,为确保从源头到软件包的软件供应链做出了贡献。
Canonical的软件库继续扩大。迄今为止,已经有超过28000个软件包,为Ubuntu Pro和Ubuntu Advantage用户以及免费社区用户提供了独家和扩展的安全补丁。
及时的安全补丁和发布
.NET和Ubuntu的长期支持(LTS)版本在不同年份发布,但完全一致。.NET LTS在奇数年的11月发布,而Ubuntu LTS则在下一个偶数年的4月发布。
因此,Ubuntu用户在每个Ubuntu LTS系列中都会有一个全新的.NET LTS。这种组合是开发者和软件供应商的合理选择,它结合了两个安全和稳定的产品版本,为他们的应用程序形成一个可信赖的基础。微软和Canonical致力于合作,以确保新的.NET版本与新的Ubuntu版本一起发布,并确保它们能很好地协同工作。
在微软和Canonical之间建立最短的信任链对于建立这种伙伴关系至关重要。其结果是一个直接的开发者体验,以及一个定期的安全补丁和更新。
最小的OCI镜像:为.NET删减Ubuntu
.NET开发平台是微软对开源项目最早的贡献之一。其开发者社区由500多万名.NET开发者组成,许多人在运行时采用Linux和基于Linux的OCI容器。
自Docker问世以来,Ubuntu一直是使用容器的开发者的热门选择。在Ubuntu上推出.NET的同时,Canonical还提供了一种新型的容器镜像,只由运行时需要的严格的软件包和文件组成。
这些"删减"的镜像---所谓的原因是为OCI容器优化的最小Ubuntu镜像所不需要的东西都被砍掉了---解决了开发者对攻击面和镜像大小的反馈,同时不影响Ubuntu的稳定性和熟悉性。
到目前为止,这个过程已经减少了100MB,提供了有史以来最小的基于Ubuntu的OCI镜像,小于6MB(压缩)。Canonical的目标是提供有史以来最小的OCI镜像,同时仍然提供已知和可信赖的Ubuntu内容。
Canonical已经为.NET 6发布了两个新的基于Ubuntu的OCI镜像,作为现有LTS镜像组合的一部分进行维护:
- 一个12.9MB(未压缩)的镜像,只包含独立的.NET应用程序的.NET运行时依赖项(缩短了Canonical和微软之间的供应链):hub.docker.com/r/ubuntu/dotnet-eps
- 一个117MB(未压缩)的镜像,包括新发布的.NET 6运行时.deb包,从Ubuntu官方仓库安装:hub.docker.com/r/ubuntu/dotnet-runtime; 同样,ASP.NET运行时也是如此hub.docker.com/r/ubuntu/dotnet-aspnet
这些用于.NET和ASP.NET运行时的首批Ubuntu镜像也可以从Microsoft Artifact Registry
(MCR)中获得。
下一步是什么
这个项目是Canonical为.NET和Ubuntu计划的一系列项目中的第一个。在微软的博客上阅读更多关于这种合作关系的信息。
.NET deb包现在已经在Ubuntu Jammy 22.04 LTS的x64架构中,并将很快在Arm64架构以及所有较新的Ubuntu版本中使用。
在Azure容器注册中心和Docker Hub上已经有了预构建的容器镜像。
- docker.io/ubuntu/dotnet-runtime:6.0-22.04_beta
- ubuntu.azurecr.io/dotnet-runtime:6.0-22.04_beta
- docker.io/ubuntu/dotnet-aspnet:6.0-22.04_beta
- ubuntu.azurecr.io/dotnet-aspnet:6.0-22.04_beta
- docker.io/ubuntu/dotnet-deps:6.0-22.04_beta
- ubuntu.azurecr.io/dotnet-deps:6.0-22.04_beta
更多资源
参考
- Microsoft and Canonical announce native .NET availability in Ubuntu 22.04 hosts and containers
- .NET 6 is now in Ubuntu 22.04
- Microsoft Artifact Registry (MCR)
- Long Term Supported OCI Images
- Canonical on DockerHub