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) |
|
|
Csomagkezelő (Ubuntu-hírcsatorna) |
|
|
Szkript \ Manuális kinyeré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
- Az Ubuntu 22.04 előtti verzióját használom
- Más Microsoft-csomagokat használok, például
powershell
,mdatp
vagymssql
- .NET-alkalmazást szeretnék létrehozni
- .NET-alkalmazást szeretnék futtatni egy tárolóban, felhőben vagy folyamatos integrációs forgatókönyvben
- Az Ubuntu-disztribúció nem tartalmazza a kívánt .NET-verziót, vagy nem támogatott .NET-verzióra van szükségem
- Egy előzetes verziót szeretnék telepíteni
- Nem akarom használni az APT-t
- Arm-alapú CPU-t használok
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:
- Telepítse a .NET-et az Ubuntu 24.04-en.
- Telepítse a .NET-et az Ubuntu 23.10-en.
- Telepítse a .NET-et az Ubuntu 23.04-en.
- Telepítse a .NET-et az Ubuntu 22.04-en.
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
, mdatp
vagy 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
, mdatp
vagy 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áulaspnetcore-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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: