Introduction
With the release of Ubuntu 26.04 (Resolute Raccoon), Canonical delivers the latest LTS with built-in support for .NET 10. Whether you're a developer building cloud-native applications or a system administrator deploying services, this guide walks you through installing, testing, and using .NET on the new Ubuntu. We'll cover installation from the official repositories, running your first C# script, working with Ubuntu 26.04 containers, and highlight key new features like post-quantum cryptography and cgroup v2. By the end, you'll have a fully functional .NET 10 environment ready for development or production.

What You Need
- A machine running Ubuntu 26.04 (Resolute Raccoon) – either bare metal, VM, or a container instance.
- sudo privileges to install packages.
- An active internet connection to download packages and container images.
- Basic familiarity with the terminal and command-line tools.
- (Optional) Docker installed if you want to run Ubuntu 26.04 container images.
Step-by-Step Instructions
Step 1: Update Package List and Install .NET 10 SDK
Open a terminal and run the following commands to refresh the package database and install the .NET 10 SDK. Ubuntu 26.04 repositories include the dotnet-sdk-10.0 package directly.
sudo apt update
sudo apt install -y dotnet-sdk-10.0
This command installs the complete SDK, which includes the runtime, libraries, and command-line tools like dotnet.
Step 2: Verify the Installation
Check that .NET is installed correctly by displaying the version:
dotnet --version
You should see output like 10.0.105 (or a similar version number).
Step 3: Run Your First C# Code
You can quickly test that everything works by running a tiny C# script directly from the terminal using a heredoc. This approach is handy for quick experiments or even for AI agents to execute code.
dotnet run - << 'EOF'
using System.Runtime.InteropServices;
Console.WriteLine($"Hello {RuntimeInformation.OSDescription} from .NET {RuntimeInformation.FrameworkDescription}");
EOF
If successful, you'll see output similar to:
Hello Ubuntu Resolute Raccoon (development branch) from .NET .NET 10.0.5
This demonstrates that .NET is functioning and can access your system's OS description.
Step 4: (Optional) Install Older .NET Versions via PPA
While .NET 10 is the default LTS, you may need .NET 8 or 9 for compatibility. Canonical provides a separate PPA for these versions. Follow these substeps:
- Add the PPA repository:
sudo add-apt-repository ppa:dotnet/backports sudo apt update - Install the desired SDK or runtime:
sudo apt install dotnet-sdk-8.0 # For .NET 8 sudo apt install dotnet-sdk-9.0 # For .NET 9 - Switch between versions using the
dotnet --list-sdkscommand and setting theDOTNET_ROOTenvironment variable if needed.
Step 5: Using Ubuntu 26.04 Container Images with .NET 10
Ubuntu 26.04 container images are available for .NET 10+ and use the resolute tag. To run .NET 10 inside a container:

docker run --rm -it ubuntu:resolute
apt update
apt install -y dotnet-sdk-10.0
dotnet --version
If you already use ubuntu:noble (24.04) images, you can simply replace noble with resolute to upgrade the base OS without changing your .NET version. The container image flavors (like Chiseled) remain the same as before.
Step 6: Understand Key New Features in Ubuntu 26.04 for .NET Developers
Ubuntu 26.04 introduces several changes that affect .NET applications:
- Linux Kernel 7.0: The new kernel brings performance improvements. .NET testing against this kernel will begin shortly after VMs become available in our lab.
- Post-Quantum Cryptography: .NET 10 adds support for post-quantum cryptographic algorithms. This is particularly relevant for secure communications in a future where quantum computers become prevalent.
- Cgroup v2 Only: The old cgroup v1 has been removed. .NET has supported cgroup v2 for many years, so this change should not affect properly updated applications. Containers and process isolation will work seamlessly.
Tips
- Container kernel awareness: A container running on an Ubuntu 26.04 image uses the host's kernel. For example, a 26.04 container hosted on a 24.04 host will run with the Linux 6.x kernel. Always verify the host kernel if you rely on kernel-specific features.
- AI agents and .NET: The heredoc method shown in Step 3 works perfectly with AI agents that typically execute Python scripts. You can tell them to run C# code the same way – it's a great way to leverage generative AI for .NET development.
- Staying up to date: Because .NET is an officially supported toolchain on Ubuntu, Canonical and Microsoft work together to ensure smooth upgrades. Regularly run
sudo apt update && sudo apt upgradeto get the latest patches. - Testing against nightly builds: The dotnet/runtime repository validates every PR against Ubuntu 26.04 container images. This continuous testing means that by the time you install the release, it's already battle-tested.
- Migrating existing apps: If you have Dockerfiles referencing
dotnet/aspnetimages, update the base tag fromnobletoresoluteto adopt the new OS. For example, changeFROM mcr.microsoft.com/dotnet/aspnet:10.0-nobleto...10.0-resolute.