Installieren des .NET SDK oder der .NET-Runtime unter Ubuntu

In diesem Artikel wird beschrieben, wie Sie .NET unter Ubuntu installieren. Das Microsoft-Paketrepository enthält jede Version von .NET, die derzeit oder früher von Ubuntu unterstützt wurde. Ab Ubuntu 22.04 sind einige Versionen von .NET im Ubuntu-Paketfeed verfügbar. Weitere Informationen zu den verfügbaren Versionen finden Sie im Abschnitt Unterstützte Distributionen.

Warnung

Es wird empfohlen, für .NET-Pakete ein einzelnes Repository auszuwählen. Mischen Sie keine .NET-Pakete aus mehreren Paketrepositorys, da dies zu Problemen führt, wenn Apps versuchen, eine bestimmte Version von .NET aufzulösen.

Methode Vorteile Nachteile
Paket-Manager
(Microsoft-Feed)
  • Immer verfügbare unterstützte Versionen.
  • Patches sind sofort verfügbar.
  • Abhängigkeiten sind enthalten.
  • Einfache Entfernung.
  • Erfordert die Registrierung des Microsoft-Paketrepositorys.
  • Vorschauversionen sind nicht verfügbar.
  • Unterstützt nur x64-Ubuntu.
Paket-Manager
(Ubuntu-Feed)
  • In der Regel ist die neueste Version verfügbar.
  • Patches sind sofort verfügbar.
  • Abhängigkeiten sind enthalten.
  • Einfache Entfernung.
  • Die verfügbaren .NET-Versionen variieren je nach Ubuntu-Version.
  • Vorschauversionen sind nicht verfügbar.
  • Unterstützt nur x64-Ubuntu. (Mit Ausnahme von Ubuntu 23.04+, das auch Arm64 unterstützt)
Skript\Manuelle Extrahierung
  • Steuern Sie, wo .NET installiert wird.
  • Vorschauversionen sind verfügbar.
  • Installieren Sie Updates manuell.
  • Installieren Sie Abhängigkeiten manuell.
  • Manuelle Entfernung.

Entscheidung hinsichtlich der Installation von .NET

Wenn Ihre Ubuntu-Version .NET über den integrierten Ubuntu-Feed unterstützt, wird die Unterstützung für diese .NET-Builds von Canonical bereitgestellt und die Builds können für unterschiedliche Workloads optimiert sein. Microsoft bietet Unterstützung für Pakete im Microsoft-Paketrepositoryfeed.

Verwenden Sie die folgenden Abschnitte, um festzustellen, wie Sie .NET installieren sollten:

Ich verwende Ubuntu 22.04 oder höher und ich brauche nur .NET

Installieren Sie .NET über den Ubuntu-Feed. Weitere Informationen finden Sie auf den folgenden Seiten:

Wichtig

.NET SDK-Versionen, die von Canonical angeboten werden, befinden sich immer im Featureband .1xx. Wenn Sie ein neueres Featurebandrelease verwenden möchten, verwenden Sie den Microsoft-Feed, um das SDK zu installieren. Lesen Sie sich unbedingt die Informationen im Artikel .NET-Paketvertauschungen auf Linux durch, um die Auswirkungen des Wechsels zwischen Repositoryfeeds zu verstehen.

Wenn Sie das Microsoft-Repository installieren, um andere Microsoft-Pakete wie powershell, mdatp oder mssql zu verwenden, müssen Sie die Priorität der vom Microsoft-Repository bereitgestellten .NET-Pakete aufheben. Anweisungen zum Aufheben der Priorisierung der Pakete finden Sie unter Meine Linux-Distribution stellt .NET-Pakete bereit, und ich möchte sie verwenden.

Ich verwende eine ältere Version als Ubuntu 22.04

Verwenden Sie die Anweisungen auf der versionsspezifischen Ubuntu-Seite.

Im Abschnitt Unterstützte Distributionen finden Sie weitere Informationen darüber, welche Versionen von .NET für Ihre Version von Ubuntu unterstützt werden. Wenn Sie eine Version installieren, die nicht unterstützt wird, finden Sie weitere Informationen unter Registrieren des Microsoft-Paketrepositorys.

Ich verwende andere Microsoft-Pakete, wie powershell, mdatp oder mssql

Wenn Ihre Ubuntu-Version .NET über den integrierten Ubuntu-Feed unterstützt, müssen Sie entscheiden, welcher Feed .NET installieren soll. Der Abschnitt Unterstützte Distributionen enthält eine Tabelle, in der aufgelistet ist, welche Versionen von .NET in den Paketfeeds verfügbar sind.

Wenn Sie die .NET-Pakete aus dem Ubuntu-Feed beziehen möchten, müssen Sie die Priorität der .NET-Pakete aus dem Microsoft-Repository aufheben. Anweisungen zum Aufheben der Priorisierung der Pakete finden Sie unter Meine Linux-Distribution stellt .NET-Pakete bereit, und ich möchte sie verwenden.

Ich möchte eine .NET App erstellen

Verwenden Sie die gleichen Paketquellen für das SDK wie für die Runtime. Wenn Sie z. B. Ubuntu 22.04 und .NET 6, aber nicht .NET 7 verwenden, empfiehlt es sich, .NET über den integrierten Ubuntu-Feed zu installieren. Wenn Sie jedoch zu .NET 7 wechseln, das von Canonical für Ubuntu 22.04 nicht bereitgestellt wird, sollten Sie .NET deinstallieren und es mit dem Microsoft-Paketrepository erneut installieren. Weitere Informationen finden Sie unter Registrieren und Installieren mit dem Microsoft-Paketrepository. Überprüfen Sie zudem die anderen Vorschläge im Abschnitt Entscheidung hinsichtlich der Installation von .NET.

Ich möchte eine .NET-App in einem Container-, Cloud- oder Continuous-Integration-Szenario ausführen

Wenn Ihre Ubuntu-Version die von Ihnen benötigte .NET-Version bereitstellt, installieren Sie sie über den integrierten Feed. Andernfalls registrieren Sie das Microsoft-Paketrepository, und installieren Sie .NET aus diesem Repository. Überprüfen Sie die Informationen im Abschnitt Unterstützte Distributionen.

Wenn die gewünschte Version von .NET nicht verfügbar ist, verwenden Sie das Skript dotnet-install.

Meine Ubuntu-Distribution enthält nicht die gewünschte .NET-Version oder ich benötige eine nicht mehr unterstützte .NET-Version

Es wird empfohlen, APT und das Microsoft-Paketrepository zu verwenden. Weitere Informationen finden Sie im Abschnitt Registrieren und Installieren mit dem Microsoft-Paketrepository.

Ich möchte eine Vorschauversion installieren

Verwenden Sie eine der folgenden Vorgehensweisen zum Installieren von .NET:

Ich möchte APT nicht verwenden

Wenn Sie eine automatische Installation wünschen, verwenden Sie das Linux-Installationsskript.

Wenn Sie die volle Kontrolle über die Installation von .NET haben möchten, laden Sie einen Tarball herunter und installieren Sie .NET manuell. Weitere Informationen finden Sie unter Manuelle Installation.

Ich verwende eine ARM-basierte CPU

Verwenden Sie eine der folgenden Vorgehensweisen zum Installieren von .NET:

Unterstützte Distributionen

Die folgende Tabelle enthält die derzeit unterstützten .NET-Releases und die Versionen von Ubuntu, unter denen sie unterstützt werden. Jeder Link führt zu der Seite mit der jeweiligen Ubuntu-Version und enthält spezifische Anweisungen zur Installation von .NET für diese Version von Ubuntu.

Ubuntu Unterstützte .NET-Versionen Verfügbar im Ubuntu-Feed Verfügbar im Microsoft-Feed
23.10 8.0, 7.0, 6.0 8.0, 7.0, 6.0 8.0, 7.0, 6.0
23.04 8.0, 7.0, 6.0 7.0, 6.0 8.0, 7.0, 6.0
22.10 7.0, 6.0 7.0, 6.0 7.0, 6.0, 3.1
22.04 (LTS) 8.0, 7.0, 6.0 7.0, 6.0 8.0, 7.0, 6.0, 3.1
20.04 (LTS) 8.0, 7.0, 6.0 None 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 7.0, 6.0 Keine 7.0. 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6.0 Keine 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

Wenn für eine Ubuntu-Version kein Support mehr geboten wird, wird .NET mit dieser Version nicht mehr unterstützt.

Die folgenden Versionen von .NET ❌ werden nicht mehr unterstützt:

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

Registrieren des Microsoft-Paketrepositorys

Das Microsoft-Paketrepository enthält alle Versionen von .NET, die früher oder aktuell von Ihrer Ubuntu-Version unterstützt wurden bzw. werden. Wenn Ihre Ubuntu-Version .NET-Pakete bereitstellt, müssen Sie die Priorisierung der Ubuntu-Pakete aufheben und das Microsoft-Repository verwenden. Eine Anleitung, wie Sie die Priorisierung der Pakete aufheben können, finden Sie unter Ich benötige eine .NET-Version, die nicht von meiner Linux-Distribution bereitgestellt wird.

Wichtig

Installation mit einem Paket-Manager werden nur in x64-Architekturen unterstützt. Andere Architekturen wie ARM müssen .NET auf andere Weise installieren, z. B. mit dem Installationsskript oder durch manuelle Installation.

Vorschauversionen sind nicht im Microsoft-Paketrepository verfügbar. Weitere Informationen finden Sie unter Installieren von Vorschauversionen.

Achtung

Es wird empfohlen, nur ein Repository zum Verwalten aller .NET-Installationen zu verwenden. Wenn Sie zuvor .NET über das Ubuntu-Repository installiert haben, müssen Sie das System von .NET-Paketen bereinigen und APT so konfigurieren, dass es den Ubuntu-Feed ignoriert. Weitere Informationen dazu finden Sie unter Ich benötige eine .NET-Version, die nicht von meiner Linux-Distribution bereitgestellt wird.

Die Installation mit APT kann mit einigen wenigen Befehlen erfolgen. Bevor Sie .NET installieren, führen Sie die folgenden Befehle aus, um den Microsoft-Paketsignaturschlüssel zu Ihrer Liste vertrauenswürdiger Schlüssel und das Paketrepository hinzuzufügen.

Öffnen Sie ein Terminal, und führen Sie die folgenden Befehle aus:

# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)

# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb

# Clean up
rm packages-microsoft-prod.deb

# Update packages
sudo apt update

Tipp

Das obige Skript wurde für Ubuntu geschrieben und funktioniert möglicherweise nicht, wenn Sie eine davon abgeleitete Distribution wie Linux Mint verwenden. Sehr wahrscheinlich wird der Variable $repo_version nicht der richtige Wert zugewiesen, sodass der URI für den wget-Befehl ungültig ist. Diese Variable wird der spezifischen Ubuntu-Version zugeordnet, für die Sie Pakete abrufen möchten, z. B. 22.10 oder 23.04.

Sie können in einem Webbrowser zu https://packages.microsoft.com/config/ubuntu/ navigieren, um zu erfahren, welche Versionen von Ubuntu als $repo_version-Wert verwendet werden können.

Installieren von .NET

Nachdem Sie das Microsoft-Paketrepository registriert haben, oder wenn Ihre Version des Ubuntu-Standardfeeds das .NET-Paket unterstützt, können Sie .NET über den Paketmanager mit dem Befehl sudo apt install <package-name> installieren. Ersetzen Sie <package-name> durch den Namen des .NET-Pakets, das Sie installieren möchten. Verwenden Sie z. B. zum Installieren von .NET SDK 8.0 den Befehl sudo apt install dotnet-sdk-8.0. In der folgenden Tabelle sind die derzeit unterstützten .NET-Pakete aufgeführt:

Produkt Typ Paket
8.0 ASP.NET Core Laufzeit aspnetcore-runtime-8.0
8.0 .NET Laufzeit dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0
7.0 ASP.NET Core Typ aspnetcore-runtime-7.0
7.0 .NET Typ dotnet-runtime-7.0
7.0 .NET SDK dotnet-sdk-7.0
6.0 ASP.NET Core Typ aspnetcore-runtime-6.0
6.0 .NET Typ dotnet-runtime-6.0
6.0 .NET SDK dotnet-sdk-6.0

Wenn Sie eine nicht unterstützte Version von .NET installieren möchten, überprüfen Sie im Abschnitt Unterstützte Distributionen, ob diese Version von .NET verfügbar ist. Ersetzen Sie dann die Version von .NET, die Sie installieren möchten. Um z. B. ASP.NET Core 2.1 zu installieren, verwenden Sie den Paketnamen aspnetcore-runtime-2.1.

Tipp

Wenn Sie keine .NET-Apps erstellen, installieren Sie die ASP.NET Core Runtime, da sie die .NET Runtime enthält und auch ASP.NET Core-Apps unterstützt.

Einige Umgebungsvariablen wirken sich darauf aus, wie .NET nach der Installation ausgeführt wird. Weitere Informationen finden Sie unter .NET SDK- und CLI-Umgebungsvariablen.

Deinstallieren von .NET

Wenn Sie .NET über einen Paket-Manager installiert haben, deinstallieren Sie es auf die gleiche Weise mit dem Befehl apt-get remove:

sudo apt-get remove dotnet-sdk-6.0

Weitere Informationen finden Sie unter Deinstallieren von .NET.

Installieren von Vorschauversionen

Vorschau- und Release Candidate-Versionen von .NET sind in Paketrepositorys nicht verfügbar. Sie können Vorschauversionen und Release Candidates von .NET auf eine der folgenden Arten installieren:

Entfernen von Vorschauversionen

Wenn Sie Ihre .NET-Installation mit einem Paket-Manager verwalten, tritt möglicherweise ein Konflikt auf, wenn Sie zuvor eine Vorschauversion installiert haben. Der Paket-Manager kann die Nichtvorschauversion als frühere Version von .NET interpretieren. Für die Installation der Nichtvorschauversion müssen Sie zunächst die Vorschauversionen deinstallieren. Weitere Informationen zur Deinstallation von .NET finden Sie unter Entfernen der .NET-Runtime und des SDK.

Verwenden von APT zum Aktualisieren von .NET

Wenn Sie .NET über einen Paket-Manager installiert haben, können Sie das Paket mit dem Befehl apt upgrade aktualisieren. Die folgenden Befehle aktualisieren z. B. das Paket dotnet-sdk-7.0 auf die neueste Version:

sudo apt update
sudo apt upgrade dotnet-sdk-7.0

Tipp

Wenn Sie Ihre Linux-Distribution seit der Installation von .NET aktualisiert haben, müssen Sie möglicherweise das Microsoft-Paket-Repository neu konfigurieren. Führen Sie die Installationsanweisungen für Ihre aktuelle Distributionsversion aus, um ein Upgrade auf das entsprechende Paket-Repository für .NET-Updates durchführen zu können.

Problembehandlung

Ab Ubuntu 22.04 kann es vorkommen, dass nur ein Teil von .NET verfügbar ist. Sie haben z. B. die Runtime und das SDK installiert, aber bei der Ausführung von dotnet --info wird nur die Runtime aufgeführt. Dies kann mit der Verwendung zweier verschiedener Paketquellen zusammenhängen. Die integrierten Ubuntu 22.04- und Ubuntu 22.10-Paketfeeds enthalten einige Versionen von .NET, aber nicht alle, und möglicherweise haben Sie auch .NET aus den Microsoft-Feeds installiert. Weitere Informationen zur Behebung dieses Problems finden Sie unter Problembehandlung bei .NET-Fehlern im Zusammenhang mit fehlenden Dateien unter Linux.

APT-Probleme

Dieser Abschnitt enthält Informationen zu häufigen Fehlern, die bei der Installation von .NET mit APT auftreten können.

Paket konnte nicht gefunden werden

Wichtig

Bei Verwendung eines Paket-Managers zum Installieren von .NET aus dem Microsoft-Paketfeed wird nur die x64-Architektur unterstützt. Andere Architekturen, z. B. Arm, werden vom Microsoft-Paketfeed nicht unterstützt.

Weitere Informationen zur Installation von .NET ohne Paket-Manager finden Sie in einem der folgenden Artikel:

Das Paket kann nicht gefunden werden/Einige Pakete konnten nicht installiert werden

Hinweis

Diese Informationen gelten nur, wenn .NET über den Microsoft-Paketfeed installiert wird.

Wenn eine Fehlermeldung wie Unable to locate package {dotnet-package} (Das Paket {dotnet-package} konnte nicht gefunden werden) oder Some packages could not be installed (Einige Pakete konnten nicht installiert werden) angezeigt wird, führen Sie die folgenden Befehle aus.

Die folgende Befehlsgruppe enthält zwei Platzhalter.

  • {dotnet-package}
    Dieser steht für das .NET-Paket, das Sie installieren, z. B. aspnetcore-runtime-8.0. Dies wird im folgenden Befehl sudo apt-get install verwendet.

  • {os-version}
    Dies steht für die Distributionsversion, bei der Sie sich befinden. und wird im nachstehenden Befehl wget verwendet. Die Distributionsversion ist der numerische Wert, z. B. 20.04 bei Ubuntu oder 10 bei Debian.

Versuchen Sie zunächst, die Paketliste zu löschen:

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Versuchen Sie dann, .NET noch mal zu installieren. Wenn dies nicht funktioniert, können Sie mithilfe der folgenden Befehle eine manuelle Installation ausführen:

sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

Fehler beim Abrufen

Beim Installieren des .NET-Pakets wird möglicherweise ein Fehler wie Failed to fetch ... File has unexpected size ... Mirror sync in progress? angezeigt. Diese kann bedeuten, dass der Paketfeed für .NET mit neueren Paketversionen aktualisiert wird und Sie den Vorgang zu einem späteren Zeitpunkt wiederholen sollten. Während eines Upgrades darf der Paketfeed maximal 30 Minuten nicht verfügbar sein. Wenn dieser Fehler länger als 30 Minuten auftritt, melden Sie ein Issue auf https://github.com/dotnet/core/issues.

Abhängigkeiten

Wenn die Installation mit einem Paket-Manager erfolgt, werden diese Bibliotheken für Sie installiert. Wenn Sie jedoch .NET manuell installieren oder eine eigenständige App veröffentlichen, müssen Sie diese Abhängigkeiten installieren, um Ihre App ausführen zu können:

  • libc6
  • libgcc1 (für 16.x und 18.x)
  • libgcc-s1 (für 20.x oder höher)
  • libgssapi-krb5-2
  • libicu55 (für 16.X)
  • libicu60 (für 18.X)
  • libicu66 (für 20.x)
  • libicu70 (für 22.04)
  • libicu71 (für 22.10)
  • libicu72 (für 23.04)
  • liblttng-ust1 (für 22.x)
  • libssl1.0.0 (für 16.x)
  • libssl1.1 (für 18.x, 20.x)
  • libssl3 (für 22.x)
  • libstdc++6
  • libunwind8 (für 22.x)
  • zlib1g

Abhängigkeiten können mit dem Befehl apt install installiert werden Der folgende Codeschnipsel veranschaulicht die Installation der zlib1g-Bibliothek:

sudo apt install zlib1g

Wenn die .NET-App die System.Drawing.Common-Assembly verwendet, muss libgdiplus ebenfalls installiert werden. Da System.Drawing.Common unter Linux nicht mehr unterstützt wird, funktioniert dies nur unter .NET 6 und erfordert das Festlegen der System.Drawing.EnableUnixSupport-Laufzeitkonfigurationsoption.

Sie können eine neuere Version von libgdiplus installieren, indem Sie Ihrem System das Mono-Repository hinzufügen.

Nächste Schritte