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, nicht sowohl die Microsoft- als auch die Ubuntu-Paketrepositorys für .NET zu verwenden, da dies zu Problemen führt, wenn Apps versuchen, eine bestimmte Version von .NET aufzulösen.
Methode | Vorteile | Nachteile |
---|---|---|
Paket-Manager (Microsoft-Feed) |
|
|
Paket-Manager (Ubuntu-Feed) |
|
|
Skript\Manuelle Extrahierung |
|
|
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, 22.10 oder 23.04 und benötige nur .NET 6.0 oder .NET 7.0
- Ich verwende eine ältere Version als Ubuntu 22.04
- Ich verwende andere Microsoft-Pakete, wie
powershell
,mdatp
, odermssql
- Ich möchte eine .NET App erstellen
- Ich möchte eine .NET-App in einem Container-, Cloud- oder Continuous-Integration-Szenario ausführen
- Meine Ubuntu-Distribution enthält nicht die gewünschte .NET-Version oder ich benötige eine nicht mehr unterstützte .NET-Version
- Ich möchte eine Vorschauversion installieren
- Ich möchte APT nicht verwenden
- Ich verwende eine ARM-basierte CPU
Ich verwende Ubuntu 22.04, 22.10 oder 23.04 und benötige nur .NET 6.0 oder .NET 7.0
Installieren Sie .NET über den Ubuntu-Feed. Weitere Informationen finden Sie auf den folgenden Seiten:
- Installieren von .NET unter Ubuntu 22.04
- Installieren von .NET unter Ubuntu 22.10
- Installieren von .NET unter Ubuntu 23.04.
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 die Registrierung und Installation mit dem Microsoft-Paketrepository durchführen. Überprüfen Sie 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.04 (LTS) | 7.0, 6.0 | 7.0, 6.0 | 7.0, 6.0 |
22.10 | 7.0, 6.0 | 7.0, 6.0 | 7.0, 6.0, 3.1 |
22.04 (LTS) | 7.0, 6.0 | 6.0 | 7.0, 6.0, 3.1 |
20.04 (LTS) | 7.0, 6.0 | Keine | 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. 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 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 7.0 den Befehl apt install dotnet-sdk-7.0
. In der folgenden Tabelle sind die derzeit unterstützten .NET-Pakete aufgeführt:
Produkt | Typ | Paket | |
---|---|---|---|
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. Wenn Sie z. B. die Runtime und das SDK installiert haben, beim Ausführen von dotnet --info
aber nur die Runtime aufgeführt wird. 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
Installation mit einem Paket-Manager werden nur in x64-Architekturen unterstützt. Bei anderen Architekturen wie Arm muss .NET auf andere Weise installiert werden, z. B. mithilfe von Snap, eines Installationsprogrammskripts oder durch eine manuelle binäre Installation.
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-7.0
. Dies wird im folgenden Befehlsudo apt-get install
verwendet.{os-version}
Dies steht für die Distributionsversion, bei der Sie sich befinden. und wird im nachstehenden Befehlwget
verwendet. Die Distributionsversion ist der numerische Wert, z. B.20.04
bei Ubuntu oder10
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
- libgcc-s1 (für 22.x)
- 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)
- 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
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.