.NET 10 su Ubuntu 26.04 “Resolute Raccoon”: installazione, container e Native AOT
#tech
spcnet.it/net-10-su-ubuntu-26-…
@informatica
.NET 10 su Ubuntu 26.04 “Resolute Raccoon”: installazione, container e Native AOT
Ubuntu 26.04 LTS, nome in codice Resolute Raccoon, è disponibile e porta con sé una delle novità più attese per gli sviluppatori .NET su Linux: .NET 10 è il runtime ufficiale incluso nel repository standard. In questo articolo esploriamo come installare .NET 10, come aggiornare le immagini container esistenti e come sfruttare Native AOT per ottenere binari ultra-compatti con avvio in pochi millisecondi.Perché .NET e Ubuntu insieme
La collaborazione tra Microsoft e Canonical non è nuova: ogni nuovo Ubuntu LTS porta con sé l’ultimo .NET LTS come toolchain ufficialmente supportata. Ubuntu 26.04 non fa eccezione: .NET 10 è direttamente installabile via APT senza configurare PPA aggiuntive. Per chi lavora in ambienti enterprise o vuole un’infrastruttura stabile e aggiornabile tramite il gestore pacchetti di sistema, questo è un vantaggio non trascurabile.È comunque possibile installare anche .NET 8 e .NET 9 tramite PPA dedicata, per chi ha applicazioni su versioni precedenti.
Installazione rapida
L’installazione di .NET 10 su Ubuntu 26.04 è immediata:sudo apt update sudo apt install dotnet-sdk-10.0
Nessun repository aggiuntivo, nessuna chiave GPG da configurare manualmente. Il package manager si occupa di tutto. Per verificare la versione installata:dotnet --version # 10.0.105Eseguire C# direttamente da stdin
Una delle funzionalità meno note ma molto utile per script e automazione è la possibilità di passare codice C# direttamente adotnet runvia stdin, usando i file-based apps:dotnet run - << 'EOF' using System.Runtime.InteropServices; Console.WriteLine($"Hello {RuntimeInformation.OSDescription} from .NET {RuntimeInformation.FrameworkDescription}"); EOF # Hello Ubuntu Resolute Raccoon from .NET .NET 10.0.5
Questo pattern è particolarmente utile negli script di sistema e nei workflow CI/CD dove si vuole eseguire logica .NET senza creare un progetto completo.Novità rilevanti di Ubuntu 26.04 per .NET
Ubuntu 26.04 introduce tre cambiamenti che impattano direttamente gli stack .NET in produzione:
- Linux 7.0: il team .NET avvierà test su questo kernel non appena disponibili VM nel laboratorio. Le prime build sono già in CI.
- Post-Quantum Cryptography: Ubuntu 26.04 spinge su questo fronte e .NET 10 include già il supporto agli algoritmi post-quantum, quindi la compatibilità è garantita.
- Rimozione di cgroup v1: nessun problema per .NET, che supporta cgroup v2 da diversi anni. Tuttavia, chi usa container con immagini molto datate o configurazioni cgroup v1 dovrà verificare la compatibilità.
Container: aggiornare da noble a resolute
Le immagini ufficiali per .NET 10 sono già disponibili con il tagresolute. Aggiornare un Dockerfile esistente è questione di un semplice sed:sed -i "s/noble/resolute/g" Dockerfile.chiseled
Esempio di build e avvio con limiti di risorse:docker build --pull -t aspnetapp -f Dockerfile.chiseled . docker run --rm -it -p 8000:8080 -m 50mb --cpus .5 aspnetapp
Le varianti Chiseled (immagini minimali senza shell e strumenti non necessari) sono disponibili anche per resolute, con le stesse caratteristiche di sicurezza della versione noble.Nota importante: i container ereditano il kernel dell’host. Un container resolute su un host Ubuntu 24.04 userà il kernel 6.x dell’host, non Linux 7.0. Tenere presente questa distinzione in fase di planning.
Native AOT: binari compatti e avvio in 3ms
Native AOT (NAOT) è una delle funzionalità più potenti di .NET 10 per scenari server e CLI. Su Ubuntu 26.04, il pacchetto dedicato èdotnet-sdk-aot-10.0:apt install -y dotnet-sdk-aot-10.0 clang
Pubblicando una semplice applicazione console come NAOT si ottiene un binario da circa 1.4 MB, pronto all’esecuzione senza runtime installato:dotnet publish app.cs du -h artifacts/app/* # 1.4M artifacts/app/app # 3.0M artifacts/app/app.dbg
Le performance di avvio sono notevoli:time ./artifacts/app/app # real 0m0.003s
3 millisecondi. Per confronto, un’applicazione .NET classica JIT può richiedere 100-500ms di warm-up in scenari tipici. Native AOT è la scelta ideale per CLI tools, Lambda functions, microservizi ad avvio freddo e sidecar container.Per applicazioni web, lo stesso approccio funziona con
<PublishAot>true</PublishAot>nel .csproj:dotnet publish # Produce: releasesapi (13MB) + releasesapi.dbg (32MB)Considerazioni pratiche per il team di sviluppo
Per chi gestisce pipeline CI/CD con Ubuntu, questo rilascio semplifica notevolmente la gestione delle dipendenze: non è più necessario configurare feed Microsoft o repository aggiuntivi per .NET 10. L’intero stack è aggiornabile tramiteapt upgradecome qualsiasi altro pacchetto di sistema.Per i team che usano container come base di sviluppo standardizzata, aggiornare il tag da
-noblea-resolutenei Dockerfile è sufficiente per passare alla nuova LTS. È comunque raccomandato verificare la compatibilità con la propria configurazione cgroup se si usano orchestratori come Kubernetes con configurazioni custom.Conclusione
Ubuntu 26.04 LTS consolida ulteriormente la posizione di Linux come piattaforma di prima classe per .NET. L’integrazione diretta nel repository APT, il supporto alle immagini Chiseled, la compatibilità post-quantum e le performance eccezionali di Native AOT fanno di questo rilascio un upgrade significativo per chiunque sviluppi o distribuisca applicazioni .NET su Linux.Fonte: What’s new for .NET in Ubuntu 26.04 – Richard Lander, Microsoft .NET Blog
What's new for .NET in Ubuntu 26.04 - .NET Blog
Ubuntu 26.04 (Resolute Raccoon) ships today with .NET 10. Here's how to install .NET 10 from the archive, use the new -resolute container tags, build Native AOT apps, and install .NET 8 and 9 from the dotnet-backports PPA.Richard Lander (.NET Blog)
reshared this
The Pirate Post, The Privacy Post, Cybersecurity & cyberwarfare e Poliversity - Università ricerca e giornalismo reshared this.
Felix Beirau
in reply to netzpolitik.org • • •✊. Service-Hinweis: Im Dark Mode klappt das mit dem Logo im Menü nicht so ganz.
netzpolitik.org
in reply to Felix Beirau • • •☕ 🏳️🌈 🐧 schlackenfuchs
in reply to netzpolitik.org • • •@fbeirau
Kann das zumindest für's Smartphone nicht nachvollziehen.
GrapheneOS: Dunkles Design
Browser Vanadium: Dunkles Design (im Bild, bei Fennec sieht's genauso aus)
Alles wunderbar. Erster Eindruck: besser!
Daniel Reif
in reply to netzpolitik.org • • •Minski
in reply to netzpolitik.org • • •You've redecorated! I don't like it! - 2nd, 11th and the 10th Doctor
W23 (YouTube)netzpolitik.org
in reply to Minski • • •VerwaltungsTracker Karlsruhe
in reply to netzpolitik.org • • •netzpolitik.org
in reply to VerwaltungsTracker Karlsruhe • • •