A .NET áttekintése az Ubuntu-on

Ez a cikk bemutatja, hogyan telepíthető a .NET az Ubuntu-on. A Microsoft csomagtárház a .NET minden olyan verzióját tartalmazza, amely jelenleg vagy korábban támogatott az Ubuntu-ban. Az Ubuntu 22.04-től kezdve a .NET egyes verziói elérhetők az Ubuntu csomagcsatornában. Az elérhető verziókról további információt a Támogatott disztribúciók című szakaszban talál.

Figyelmeztetés

Ajánlott egyetlen adattárat választani a .NET-csomagok forrásához. Ne keverje össze a .NET-csomagokat több csomagtárházból, mivel ez problémákhoz vezet, amikor az alkalmazások megpróbálják megoldani a .NET egy adott verzióját.

Metódus Előnyök Hátrányok
Csomagkezelő
(Microsoft-hírcsatorna)
  • A támogatott verziók mindig elérhetők.
  • A javítások megfelelő módon érhetők el.
  • A függőségek is bele vannak foglalva.
  • Könnyű eltávolítás.
  • A Microsoft-csomag adattárának regisztrálása szükséges.
  • Az előzetes verziójú kiadások nem érhetők el.
  • Csak az x64 Ubuntu-t támogatja.
Csomagkezelő
(Ubuntu-hírcsatorna)
  • Általában a legújabb verzió érhető el.
  • A javítások megfelelő módon érhetők el.
  • A függőségek is bele vannak foglalva.
  • Könnyű eltávolítás.
  • Az elérhető .NET-verziók az Ubuntu-verziótól függően változnak.
  • Az előzetes verziójú kiadások nem érhetők el.
  • Csak az x64 Ubuntu-t támogatja. (Kivéve az Ubuntu 23.04+ verziót, amely az Arm64-et is támogatja)
Szkript \ Manuális kinyerés
  • A .NET telepítésének szabályozása.
  • Előzetes verziójú kiadások érhetők el.
  • Frissítések manuális telepítése.
  • Függőségek manuális telepítése.
  • Manuális eltávolítás.

Döntse el, hogyan telepítse a .NET-et

Ha az Ubuntu verziója a beépített Ubuntu-hírcsatornán keresztül támogatja a .NET-et, a Canonical biztosítja a .NET-buildek támogatását, és a buildek különböző számítási feladatokhoz optimalizálhatók. A Microsoft támogatást nyújt a Microsoft csomagtár-hírcsatornájában lévő csomagokhoz.

A .NET telepítésének módját az alábbi szakaszokban találja:

Az Ubuntu 22.04-et vagy újabb verziót használom, és csak .NET-ra van szükségem

Telepítse a .NET-et az Ubuntu-csatornán keresztül. További információkért tekintse meg a következő oldalakat:

Fontos

A Canonical által kínált .NET SDK-verziók mindig a .1xx funkciósávban találhatók. Ha egy újabb funkciósáv-kiadást szeretne használni, a Microsoft-hírcsatornával telepítse az SDK-t. Tekintse át a .NET-csomag linuxos cikkének információit, hogy megértse az adattár-hírcsatornák közötti váltás következményeit.

Ha a Microsoft-adattárat más Microsoft-csomagok ( például powershell, mdatpvagy mssql) használatára szeretné telepíteni, akkor deprioritizálnia kell a Microsoft-adattár által biztosított .NET-csomagokat. A csomagok deprioritizálásával kapcsolatos utasításokért lásd : A Linux-disztribúció .NET-csomagokat biztosít, és használni szeretném őket.

Az Ubuntu 22.04 előtti verzióját használom

Használja a verzióspecifikus Ubuntu oldalon található utasításokat.

A támogatott disztribúciók szakaszban további információt talál arról, hogy a .NET mely verziói támogatottak az Ubuntu verziójához. Ha nem támogatott verziót telepít, olvassa el a Microsoft-csomagtár regisztrálása című témakört.

Más Microsoft-csomagokat használok, például powershell, mdatpvagy mssql

Ha az Ubuntu-verzió a beépített Ubuntu-hírcsatornán keresztül támogatja a .NET-et, el kell döntenie, hogy melyik hírcsatornát telepítse. A Támogatott disztribúciók szakasz egy táblázatot tartalmaz, amely felsorolja, hogy a .NET mely verziói érhetők el a csomagcsatornákban.

Ha a .NET-csomagokat az Ubuntu-hírcsatornából szeretné beszerezni, deprioritizálnia kell a Microsoft-adattár által biztosított .NET-csomagokat. A csomagok deprioritizálásával kapcsolatos utasításokért lásd : A Linux-disztribúció .NET-csomagokat biztosít, és használni szeretném őket.

.NET-alkalmazást szeretnék létrehozni

Használja ugyanazokat a csomagforrásokat az SDK-hoz, mint a futtatókörnyezethez. Ha például az Ubuntu 22.04-et és a .NET 6-ot használja, de a .NET 7-et nem, javasoljuk, hogy a .NET-et a beépített Ubuntu-csatornán keresztül telepítse. Ha azonban a .NET 7-re vált, amelyet a Canonical nem biztosít az Ubuntu 22.04-hez, távolítsa el a .NET-et, és telepítse újra a Microsoft csomagtárházával. További információ: Regisztrálás és telepítés a Microsoft csomagtárában. Tekintse át a .NET telepítésének eldöntése című szakaszban található további javaslatokat is.

.NET-alkalmazást szeretnék futtatni egy tárolóban, felhőben vagy folyamatos integrációs forgatókönyvben

Ha az Ubuntu-verzió biztosítja a szükséges .NET-verziót, telepítse a beépített hírcsatornából. Ellenkező esetben regisztrálja a Microsoft csomagtárházát, és telepítse a .NET-et az adattárból. Tekintse át a Támogatott disztribúciók szakaszban található információkat.

Ha a kívánt .NET-verzió nem érhető el, próbálkozzon a dotnet-install szkripttel.

Az Ubuntu-disztribúció nem tartalmazza a kívánt .NET-verziót, vagy nem támogatott .NET-verzióra van szükségem

Javasoljuk, hogy használja az APT-t és a Microsoft-csomagtárat. További információ: Regisztrálás és telepítés a Microsoft-csomagtárban .

Egy előzetes verziót szeretnék telepíteni

A .NET telepítéséhez használja az alábbi módszerek egyikét:

Nem akarom használni az APT-t

Ha automatizált telepítést szeretne, használja a Linux telepítési szkriptet.

Ha teljes mértékben szabályozni szeretné a .NET telepítési felületét, töltse le a tarballt, és telepítse manuálisan a .NET-et. További információ: Manuális telepítés.

Arm-alapú CPU-t használok

A .NET telepítéséhez használja az alábbi módszerek egyikét:

Támogatott disztribúciók

Az alábbi táblázat a jelenleg támogatott .NET-kiadások és az Ubuntu azon verzióinak listáját tartalmazza, amelyen támogatottak. Minden hivatkozás az adott Ubuntu verziólapra kerül, és konkrét útmutatást tartalmaz az Ubuntu adott verziójához tartozó .NET telepítésére vonatkozóan.

Ubuntu Támogatott .NET-verziók Elérhető az Ubuntu-hírcsatornában Elérhető a Microsoft-hírcsatornában
24.04 8.0 8.0 Egyik sem
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.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 Egyik sem 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 7.0, 6.0 Egyik sem 7.0. 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6,0 Egyik sem 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

Ha egy Ubuntu-verzió nem támogatott, a .NET már nem támogatott ezzel a verzióval.

A .NET következő verziói már nem támogatottak ❌ :

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

A Microsoft-csomag adattárának regisztrálása

A Microsoft csomagtárház a .NET összes olyan verzióját tartalmazza, amely korábban vagy jelenleg is támogatott az Ubuntu verziójában. Ha az Ubuntu verziója .NET-csomagokat biztosít, deprioritizálnia kell az Ubuntu-csomagokat, és használnia kell a Microsoft-adattárat. A csomagok deprioritizálásával kapcsolatos utasításokért lásd : Szükségem van a .NET olyan verziójára, amelyet nem a Linux-disztribúcióm biztosít.

Fontos

A Microsoft csomagtárház csak az x64-architektúrát megcélozó .NET-csomagokat támogatja. Más architektúráknak, például az Armnek más módon, például a telepítő szkripttel vagy manuális telepítéssel kell telepíteniük a .NET-et.

Az előzetes verziók nem érhetők el a Microsoft-csomagtárházban. További információ: Előzetes verzió telepítése.

Figyelemfelhívás

Javasoljuk, hogy csak egy adattárat használjon az összes .NET-telepítés kezeléséhez. Ha korábban már telepítette a .NET-et az Ubuntu-adattárral, meg kell tisztítania a .NET-csomagok rendszerét, és konfigurálnia kell az APT-t, hogy figyelmen kívül hagyja az Ubuntu-hírcsatornát. Ennek módjáról további információt a .NET olyan verziójára van szükségem, amelyet nem a Linux-disztribúcióm biztosít.

Az APT-vel való telepítés néhány paranccsal elvégezhető. A .NET telepítése előtt futtassa az alábbi parancsokat a Microsoft-csomagaláíró kulcs megbízható kulcsok listájához való hozzáadásához és a csomagadattár hozzáadásához.

Nyisson meg egy terminált, és futtassa a következő parancsokat:

# Get OS version info
source /etc/os-release

# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/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.

Az előző szkript az Ubuntu-hoz készült, és előfordulhat, hogy nem működik, ha származtatott disztribúciót használ, például Linux Mint-ot. Valószínű, hogy a $repo_version változó nem lesz hozzárendelve a megfelelő értékhez, így a parancs URI-ja wget érvénytelen lesz. Ez a változó megfelel az adott Ubuntu-verziónak, amelyhez csomagokat szeretne beszerezni, például a 22.10-es vagy a 23.04-es verzióhoz.

Webböngészővel megtekintheti, hogy https://packages.microsoft.com/config/ubuntu/ az Ubuntu mely verziói használhatók értékként $repo_version .

A .NET telepítése

Miután regisztrálta a Microsoft-csomagtárházat, vagy ha az Ubuntu alapértelmezett hírcsatornája támogatja a .NET-csomagot, a parancs használatával telepítheti a .NET-et a sudo apt install <package-name> csomagkezelőn keresztül. Cserélje le <package-name> a telepíteni kívánt .NET-csomag nevére. A .NET SDK 8.0 telepítéséhez például használja a parancsot sudo apt install dotnet-sdk-8.0. Az alábbi táblázat a jelenleg támogatott .NET-csomagokat sorolja fel:

Termék Típus Csomag
8.0 ASP.NET Core Futtatókörnyezet aspnetcore-runtime-8.0
8.0 .NET Futtatókörnyezet dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0
7.0 ASP.NET Core Futtatókörnyezet aspnetcore-runtime-7.0
7.0 .NET Futtatókörnyezet dotnet-runtime-7.0
7.0 .NET SDK dotnet-sdk-7.0
6.0 ASP.NET Core Futtatókörnyezet aspnetcore-runtime-6.0
6.0 .NET Futtatókörnyezet dotnet-runtime-6.0
6.0 .NET SDK dotnet-sdk-6.0

Ha nem támogatott .NET-verziót szeretne telepíteni, ellenőrizze a támogatott disztribúciók szakaszt, hogy elérhető-e a .NET verziója. Ezután cserélje le a telepíteni kívánt .NET-verziót . Például a ASP.NET Core 2.1 telepítéséhez használja a csomag nevét aspnetcore-runtime-2.1.

Tipp.

Ha nem .NET-alkalmazásokat hoz létre, telepítse a ASP.NET Core-futtatókörnyezetet, mivel tartalmazza a .NET-futtatókörnyezetet, és támogatja ASP.NET Core-alkalmazásokat is.

Egyes környezeti változók befolyásolják a .NET futtatását a telepítés után. További információ: .NET SDK és CLI környezeti változók.

A .NET eltávolítása

Ha a .NET-et egy csomagkezelőn keresztül telepítette, távolítsa el ugyanúgy a apt-get remove parancsot:

sudo apt-get remove dotnet-sdk-6.0

További információt a .NET eltávolítása című témakörben talál.

Előzetes verzió telepítése

A .NET előzetes verziójú és kiadásra jelölt verziói nem érhetők el a csomagtárakban. A .NET előzetes verzióit és jelöltjeit az alábbi módokon telepítheti:

Előzetes verzió eltávolítása

Ha csomagkezelőt használ a .NET telepítésének kezeléséhez, ütközés léphet fel, ha korábban telepített egy előzetes kiadást. A csomagkezelő a nem előzetes verziójú kiadást a .NET korábbi verziójaként értelmezheti. A nem előzetes verzió telepítéséhez először távolítsa el az előzetes verziókat. A .NET eltávolításáról további információt a .NET-futtatókörnyezet és az SDK eltávolítása című témakörben talál.

A .NET frissítése az APT használatával

Ha a .NET-et egy csomagkezelőn keresztül telepítette, frissítheti a csomagot a apt upgrade paranccsal. A következő parancsok például a legújabb verzióval frissítik a dotnet-sdk-7.0 csomagot:

sudo apt update
sudo apt upgrade dotnet-sdk-7.0

Tipp.

Ha a .NET telepítése óta frissítette a Linux-disztribúciót, előfordulhat, hogy újra kell konfigurálnia a Microsoft-csomagtárházat. Futtassa az aktuális terjesztési verzió telepítési utasításait a .NET-frissítések megfelelő csomagtárházára való frissítéshez.

Hibaelhárítás

Az Ubuntu 22.04-től kezdve előfordulhat, hogy olyan helyzetbe kerül, amikor úgy tűnik, hogy csak egy darab .NET érhető el. Telepítette például a futtatókörnyezetet és az SDK-t, de a futtatáskor dotnet --info csak a futtatókörnyezet szerepel a listában. Ez a helyzet két különböző csomagforrás használatával függhet össze. A beépített Ubuntu 22.04 és Ubuntu 22.10 csomagcsatornák tartalmazzák a .NET egyes verzióit, de nem mindegyiket, és előfordulhat, hogy a Microsoft-hírcsatornákról is telepítette a .NET-et. A probléma megoldásáról további információt a Linuxon hiányzó fájlokhoz kapcsolódó .NET-hibák elhárítása című témakörben talál.

APT-problémák

Ez a szakasz a .NET telepítése során előforduló gyakori hibákról nyújt tájékoztatást.

Nem található csomag

Fontos

A .NET microsoftos csomagcsatornából való telepítéséhez a csomagkezelő csak az x64-architektúrát támogatja. A Microsoft csomagcsatornája nem támogatja az egyéb architektúrákat, például az Armet.

A .NET csomagkezelő nélküli telepítésével kapcsolatos további információkért tekintse meg az alábbi cikkek egyikét:

Nem található \ Egyes csomagok nem telepíthetők

Feljegyzés

Ez az információ csak akkor érvényes, ha a .NET telepítve van a Microsoft csomagcsatornájából.

Ha a (z) {dotnet-package} csomag nem található, vagy egyes csomagok nem telepíthetők, futtassa a következő parancsokat.

A következő parancskészletben két helyőrző található.

  • {dotnet-package}
    Ez a telepített .NET-csomagot jelöli, például aspnetcore-runtime-8.0. Ezt a következő sudo apt-get install parancs használja.

Először próbálja meg kiüríteni a csomaglistát:

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

Ezután próbálja meg újra telepíteni a .NET-et. Ha ez nem működik, a manuális telepítést a következő parancsokkal futtathatja:

Ha az Ubuntu 23.10-et vagy újabb verziót használja, próbálkozzon a következő parancsokkal:

# Define the OS version, name, and codename
source /etc/os-release

# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg

# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

# Move the key to the appropriate place
sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?<=signed-by=).*(?=\])")

# Update packages and install .NET
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

Ha Ubuntu-verziót használ a 23.10-es verzió előtt, próbálkozzon a következő parancsokkal:

# Define the OS version, name, and codename
source /etc/os-release

# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/

# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

# Set ownership
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

# Update packages and install .NET
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

Nem sikerült beolvasni

A .NET-csomag telepítésekor a következőhöz Failed to fetch ... File has unexpected size ... Mirror sync in progress?hasonló hibaüzenet jelenhet meg. Ez a hiba azt jelentheti, hogy a .NET csomagcsatornája újabb csomagverziókkal frissül, és később újra kell próbálkoznia. A frissítés során a csomagcsatorna nem lehet 30 percnél hosszabb ideig elérhetetlen. Ha a hiba 30 percnél hosszabb ideig folyamatosan jelentkezik, küldjön egy hibát a következő címen https://github.com/dotnet/core/issues: .

Függőségek

Ha csomagkezelővel telepíti a telepítendő kódtárakat, ezek a kódtárak telepítve lesznek Önnek. Ha azonban manuálisan telepíti a .NET-et, vagy önkiszolgáló alkalmazást tesz közzé, az alkalmazás futtatásához telepítenie kell ezeket a függőségeket:

  • libc6
  • libgcc1 (16.x és 18.x esetén)
  • libgcc-s1 (20.x vagy újabb verzióhoz)
  • libgssapi-krb5-2
  • libicu55 (16.x-hez)
  • libicu60 (18.x-hez)
  • libicu66 (20.x-hez)
  • libicu70 (22.04-hez)
  • libicu71 (22.10-hez)
  • libicu72 (23.04 vagy újabb verzióhoz)
  • liblttng-ust1 (22.x vagy újabb verzióhoz)
  • libssl1.0.0 (16.x esetén)
  • libssl1.1 (18.x, 20.x esetén)
  • libssl3 (22.x vagy újabb verzió esetén)
  • libstdc++6
  • libunwind8 (22.x vagy újabb verzió esetén)
  • zlib1g

A függőségek a paranccsal telepíthetők apt install . Az alábbi kódrészlet a zlib1g kódtár telepítését mutatja be:

sudo apt install zlib1g

Ha a .NET-alkalmazás a System.Drawing.Common szerelvényt használja, a libgdiplust is telepíteni kell. Mivel a System.Drawing.Common már nem támogatott Linux rendszeren, ez csak a .NET 6-on működik, és a futtatókörnyezet konfigurációs kapcsolójának System.Drawing.EnableUnixSupport beállítására van szükség.

A libgdiplus legújabb verzióját úgy telepítheti, hogy hozzáadja a Mono-adattárat a rendszerhez.

Következő lépések