W tym artykule opisano sposób instalowania platformy .NET w systemie Ubuntu. Począwszy od systemu Ubuntu 22.04, większość obsługiwanych wersji platformy .NET jest dostępna we wbudowanym kanale informacyjnym ubuntu. Repozytorium pakietów backports platformy .NET systemu Ubuntu zawiera pozostałe obsługiwane wersje platformy .NET. Aby uzyskać więcej informacji na temat dostępnych wersji, zobacz sekcję Obsługiwane dystrybucje .
Firma Canonical przejęła publikowanie platformy .NET w systemie Ubuntu. Począwszy od systemu Ubuntu 22.04, firma Microsoft nie dystrybuuje już platformy .NET dla systemu Ubuntu do repozytorium pakietów firmy Microsoft.
Ostrzeżenie
Zaleca się wybranie między źródłami danych Ubuntu lub Microsoft do źródłowych pakietów platformy .NET. Nie mieszaj pakietów .NET z wielu repozytoriów pakietów, ponieważ prowadzi to do problemów, gdy aplikacje próbują rozwiązać określoną wersję platformy .NET.
Zagadnienia dotyczące uaktualniania systemu Ubuntu
Czy uaktualnić system Ubuntu do wersji 22.04 lub nowszej? Najpierw rozważ odinstalowanie platformy .NET.
Jeśli użyto menedżera pakietów do zainstalowania platformy .NET z repozytorium pakietów firmy Microsoft, po uaktualnieniu systemu Ubuntu wystąpi problem z połączeniem pakietów. Teraz, gdy canonical publikuje platformę .NET w kanałach informacyjnych pakietów dla systemu Ubuntu 22.04 (i nowszych wersji), menedżer pakietów nie będzie wiedział o wcześniej zainstalowanej wersji platformy .NET. Nie można uaktualnić pakietów do najnowszej wersji platformy .NET. Najpierw odinstaluj je, a następnie zainstaluj je ponownie z repozytorium [Ubuntu package].
Wybieranie sposobu instalowania platformy .NET
Jeśli twoja wersja systemu Ubuntu obsługuje platformę .NET za pośrednictwem wbudowanego lub .NET backports kanału informacyjnego Ubuntu, obsługa tych kompilacji platformy .NET jest zapewniana przez firmę Canonical, a kompilacje mogą być zoptymalizowane pod kątem różnych obciążeń. Firma Microsoft zapewnia obsługę pakietów w kanale informacyjnym repozytorium pakietów firmy Microsoft.
Skorzystaj z poniższych sekcji, aby określić, jak należy zainstalować platformę .NET:
Jeśli używasz zestawu .NET 8 SDK i Ubuntu 22.04, pamiętaj, że wersje zestawu SDK oferowane przez firmę Canonical są zawsze dostępne w pasmie funkcji .1xx. Jeśli chcesz użyć nowszej wersji pasma funkcji, użyj kanału informacyjnego firmy Microsoft, aby zainstalować zestaw SDK. Zapoznaj się z informacjami w artykule dotyczącym łączenia pakietów platformy .NET w systemie Linux , aby zrozumieć implikacje przełączania się między kanałami informacyjnymi repozytorium.
Jeśli zamierzasz zainstalować repozytorium firmy Microsoft w celu korzystania z innych pakietów firmy Microsoft, takich jak powershell, mdatplub mssql, należy zderiorytizować pakiety .NET dostarczone przez repozytorium firmy Microsoft. Aby uzyskać instrukcje dotyczące sposobu depriorytyzacji pakietów, zobacz Moja dystrybucja systemu Linux udostępnia pakiety .NET i chcę ich używać.
Używam wersji systemu Ubuntu wcześniejszej niż 22.04
Skorzystaj z instrukcji na stronie ubuntu specyficznej dla wersji.
Zapoznaj się z sekcją Obsługiwane dystrybucje , aby uzyskać więcej informacji na temat obsługiwanych wersji platformy .NET dla używanej wersji systemu Ubuntu. Jeśli instalujesz wersję, która nie jest obsługiwana, zobacz Rejestrowanie repozytorium pakietów firmy Microsoft.
Używam innych pakietów firmy Microsoft, takich jak powershell, mdatplub mssql
Jeśli wersja systemu Ubuntu obsługuje platformę .NET za pośrednictwem kanałów informacyjnych systemu Ubuntu, musisz zdecydować, który kanał informacyjny powinien zainstalować platformę .NET. Sekcja Obsługiwane dystrybucje zawiera tabelę zawierającą listę wersji platformy .NET dostępnych w kanałach informacyjnych pakietów.
Jeśli chcesz użyć źródła pakietów platformy .NET z kanału informacyjnego systemu Ubuntu, należy wycofać pakiety platformy .NET dostarczone przez repozytorium firmy Microsoft. Aby uzyskać instrukcje dotyczące sposobu depriorytyzacji pakietów, zobacz Moja dystrybucja systemu Linux udostępnia pakiety .NET i chcę ich używać.
Chcę utworzyć aplikację platformy .NET
Użyj tych samych źródeł pakietów dla zestawu SDK, które są używane w środowisku uruchomieniowym. Zaleca się zainstalowanie platformy .NET za pośrednictwem kanału informacyjnego systemu Ubuntu. Jeśli jednak chcesz zainstalować platformę .NET z innego źródła (np. repozytorium pakietów firmy Microsoft w celu uzyskania dostępu do wyższych pasm funkcji zestawu SDK), należy odinstalować platformę .NET, skonfigurować menedżera pakietów, aby zignorować pakiety .NET ze źródła danych systemu Ubuntu i ponownie zainstalować je z innego źródła.
Chcę uruchomić aplikację .NET w scenariuszu kontenera, chmury lub ciągłej integracji
Jeśli wersja systemu Ubuntu udostępnia wymaganą wersję platformy .NET, zainstaluj ją z kanału informacyjnego systemu Ubuntu.
W przeciwnym razie zarejestruj repozytorium pakietów firmy Microsoft i zainstaluj platformę .NET z tego repozytorium. Przejrzyj informacje w sekcji Obsługiwane dystrybucje .
Jeśli odpowiednia wersja platformy .NET jest niedostępna, spróbuj użyć skryptu dotnet-install.
Moja dystrybucja systemu Ubuntu nie obejmuje żądanej wersji platformy .NET lub potrzebuję wersji platformy .NET, która nie jest obsługiwana
Zalecamy użycie narzędzia APT i repozytorium pakietów firmy Microsoft. Aby uzyskać więcej informacji, zobacz sekcję Rejestrowanie i instalowanie w repozytorium pakietów firmy Microsoft.
Chcę zainstalować wersję zapoznawcza
Użyj jednego z następujących sposobów instalowania platformy .NET:
Jeśli chcesz zainstalować automatyczną instalację, użyj skryptu instalacji systemu Linux.
Jeśli chcesz mieć pełną kontrolę nad środowiskiem instalacji platformy .NET, pobierz tarball i ręcznie zainstaluj platformę .NET. Aby uzyskać więcej informacji, zobacz Instalacja ręczna.
Używam procesora CPU opartego na usłudze Arm
Jeśli wersja systemu Ubuntu udostępnia wymaganą wersję platformy .NET, zainstaluj ją z wbudowanego źródła danych. Przejrzyj informacje w sekcji Obsługiwane dystrybucje .
Jeśli odpowiednia wersja platformy .NET jest niedostępna, spróbuj użyć jednego z następujących sposobów instalowania platformy .NET:
Począwszy od platformy .NET 8 w systemie Ubuntu 24.04, aplikacja Canonical obsługuje platformę .NET dla platformy IBM System Z. Firma Canonical pracuje nad rozszerzeniem obsługi na inne wersje platform .NET i Ubuntu.
Zainstaluj platformę .NET za pomocą wbudowanego kanału informacyjnego systemu Ubuntu. Aby uzyskać więcej informacji, zobacz następującą stronę:
Poniższa tabela zawiera listę obecnie obsługiwanych wersji platformy .NET i obsługiwanych wersji systemu Ubuntu. Każdy link przechodzi do określonej strony wersji systemu Ubuntu z określonymi instrukcjami dotyczącymi sposobu instalowania platformy .NET dla tej wersji systemu Ubuntu.
Ubuntu
Obsługiwane wersje platformy .NET
Dostępne w wbudowany kanał informacyjny systemu Ubuntu
Gdy wersja systemu Ubuntu osiągnie koniec okresu pomocy technicznej, platforma .NET nie jest już obsługiwana w tej konkretnej wersji systemu Ubuntu.
Aplikacja Canonical obsługuje wersje platformy .NET w wbudowanym kanale informacyjnym ubuntu przez cały okres istnienia tej wersji systemu Ubuntu, nawet poza okresem istnienia pomocy technicznej zapewnianej przez firmę Microsoft i zapewnia najlepszą obsługę wersji platformy .NET w repozytorium pakietów backports platformy .NET, które nie wykracza poza okres wsparcia zapewnianego przez firmę Microsoft.
Następujące wersje platformy .NET nie są ❌ już obsługiwane:
Repozytorium pakietów backports platformy Ubuntu .NET udostępnia wersje platformy .NET, które nie są dostępne we wbudowanym kanale informacyjnym systemu Ubuntu. Sekcja Obsługiwane dystrybucje zawiera tabelę zawierającą listę wersji platformy .NET dostępnych w kanale informacyjnym pakietów. Firma Canonical obsługuje pakiety zawarte w tym repozytorium pakietów i zapewnia najlepszą pomoc techniczną, która nie wykracza poza okres wsparcia zapewnianego przez firmę Microsoft ani okres wsparcia dla określonej wersji systemu Ubuntu.
Nie trzeba wywoływać metody apt update. Polecenie add-apt-repository wykonuje to domyślnie.
Uwaga
Repozytorium pakietów backports platformy Ubuntu .NET jest zgodne z wbudowanym źródłem danych systemu Ubuntu. W związku z tym nie trzeba konfigurować menedżera pakietów tak, aby ignorował pakiety .NET we wbudowanym kanale informacyjnym systemu Ubuntu.
Wyrejestrowywanie repozytorium pakietów backports platformy .NET z systemem Ubuntu
Jeśli nie chcesz już korzystać z pakietów z repozytorium pakietów backports platformy Ubuntu .NET, możesz go wyrejestrować. Otwórz terminal i uruchom następujące polecenie:
Wyrejestrowywanie repozytorium pakietów backports platformy .NET systemu Ubuntu nie powoduje odinstalowania żadnych pakietów.
Nie znaleziono polecenia add-apt-repository
Narzędzie add-apt-repository(1) jest wstępnie zainstalowane w większości instalacji systemu Ubuntu.
Jeśli zostanie wyświetlony komunikat o błędzie informujący add-apt-repository , że polecenie nie zostało znalezione, musisz zainstalować software-properties-common pakiet, który udostępnia to polecenie. Otwórz terminal i uruchom następujące polecenia:
Rejestrowanie repozytorium pakietów firmy Microsoft
Ważne
Dotyczy to tylko wersji systemu Ubuntu wcześniejszych niż 24.04. Począwszy od systemu Ubuntu 24.04, firma Microsoft nie publikuje już pakietów w repozytorium pakietów firmy Microsoft.
Użyj tabeli obsługiwanych dystrybucji, aby określić najlepszy sposób instalowania platformy .NET.
Repozytorium pakietów firmy Microsoft obsługuje tylko pakiety .NET przeznaczone dla architektury x64 . Inne architektury, takie jak Arm, muszą zainstalować platformę .NET w inny sposób, na przykład za pomocą skryptu instalatora lub przez instalację ręczną.
Wersje zapoznawcza nie są dostępne w repozytorium pakietów firmy Microsoft. Aby uzyskać więcej informacji, zobacz Instalowanie wersji zapoznawczych.
Przestroga
Zalecamy używanie tylko jednego repozytorium do zarządzania wszystkimi instalacjami platformy .NET. Jeśli wcześniej zainstalowano platformę .NET z repozytorium Ubuntu, należy wyczyścić system pakietów .NET i skonfigurować narzędzie APT w celu ignorowania kanałów informacyjnych systemu Ubuntu. Aby uzyskać więcej informacji o tym, jak to zrobić, zobacz Potrzebuję wersji platformy .NET, która nie jest dostarczana przez dystrybucję systemu Linux.
Instalowanie za pomocą narzędzia APT można wykonać za pomocą kilku poleceń. Przed zainstalowaniem platformy .NET uruchom następujące polecenia, aby dodać klucz podpisywania pakietów firmy Microsoft do listy zaufanych kluczy i dodać repozytorium pakietów.
Otwórz terminal i uruchom następujące polecenia:
# Get OS version info which adds the $ID and $VERSION_ID variables
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
Porada
Poprzedni skrypt został napisany dla systemu Ubuntu i może nie działać, jeśli używasz dystrybucji pochodnej, takiej jak Linux Mint. Prawdopodobnie zmienne i $ID nie zostaną przypisane poprawne wartości, co spowoduje, że $VERSION_ID identyfikator URI wget polecenia będzie nieprawidłowy. Odpowiada $ID dystrybucji (np. ubuntu), podczas gdy $VERSION_ID mapuje się na określoną wersję systemu Ubuntu, dla której chcesz pobrać pakiety, takie jak 22.04 lub 23.10.
Na przykład w systemie Ubuntu 22.04 $ID będzie i ubuntu$VERSION_ID będzie to 22.04. Adres URL będzie wyglądać następująco: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb.
Możesz użyć przeglądarki internetowej i przejść, aby zobaczyć https://packages.microsoft.com/config/ubuntu/ , które wersje systemu Ubuntu są dostępne do użycia jako $repo_version wartość.
Instalowanie platformy .NET
Zainstaluj platformę .NET za pomocą menedżera pakietów za sudo apt install <package-name> pomocą polecenia . Zastąp <package-name> ciąg nazwą pakietu .NET, który chcesz zainstalować. Aby na przykład zainstalować zestaw .NET SDK 9.0, użyj polecenia sudo apt install dotnet-sdk-9.0. W poniższej tabeli wymieniono aktualnie obsługiwane pakiety .NET (które mogą się różnić w zależności od wersji systemu Ubuntu):
Rezultat
Typ
Pakiet
9.0
ASP.NET Core
Środowisko uruchomieniowe
aspnetcore-runtime-9.0
9.0
.NET
Środowisko uruchomieniowe
dotnet-runtime-9.0
9.0
.NET
SDK
dotnet-sdk-9.0
8.0
ASP.NET Core
Środowisko uruchomieniowe
aspnetcore-runtime-8.0
8.0
.NET
Środowisko uruchomieniowe
dotnet-runtime-8.0
8.0
.NET
SDK
dotnet-sdk-8.0
Porada
Jeśli nie tworzysz aplikacji platformy .NET, zainstaluj środowisko uruchomieniowe platformy ASP.NET Core, ponieważ zawiera środowisko uruchomieniowe platformy .NET, a także obsługuje aplikacje ASP.NET Core.
Niektóre zmienne środowiskowe wpływają na sposób uruchamiania platformy .NET po jej zainstalowaniu. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe zestawu .NET SDK i interfejsu wiersza polecenia.
Odinstalowywanie platformy .NET
Jeśli platforma .NET została zainstalowana za pośrednictwem menedżera pakietów, odinstaluj ją w taki sam sposób, jak za apt-get remove pomocą polecenia :
Wersje wersji zapoznawczej i wersji platformy .NET nie są dostępne w repozytoriach pakietów. Możesz zainstalować wersje zapoznawcze i kandydatów do wydania platformy .NET w jeden z następujących sposobów:
W przypadku korzystania z menedżera pakietów do zarządzania instalacją platformy .NET może wystąpić konflikt, jeśli wcześniej zainstalowano wersję zapoznawcza. Menedżer pakietów może interpretować wydanie inne niż wersja zapoznawcza jako starszą wersję platformy .NET. Aby zainstalować wersję inną niż wersja zapoznawcza, najpierw odinstaluj wersje zapoznawcza. Aby uzyskać więcej informacji na temat odinstalowywania platformy .NET, zobacz Jak usunąć środowisko uruchomieniowe platformy .NET i zestaw SDK.
Aktualizowanie platformy .NET przy użyciu narzędzia APT
Jeśli platforma .NET została zainstalowana za pośrednictwem menedżera pakietów, możesz uaktualnić pakiet za apt upgrade pomocą polecenia . Na przykład następujące polecenia uaktualniają dotnet-sdk-9.0 pakiet przy użyciu najnowszej wersji:
sudo apt update
sudo apt upgrade dotnet-sdk-9.0
Porada
Jeśli dystrybucja systemu Linux została uaktualniona od momentu zainstalowania platformy .NET, może być konieczne ponowne skonfigurowanie repozytorium pakietów firmy Microsoft. Uruchom instrukcje instalacji dla bieżącej wersji dystrybucji, aby uaktualnić do odpowiedniego repozytorium pakietów dla aktualizacji platformy .NET.
Rozwiązywanie problemów
Począwszy od systemu Ubuntu 22.04, może wystąpić sytuacja, w której wydaje się, że jest dostępny tylko kawałek platformy .NET. Na przykład środowisko uruchomieniowe i zestaw SDK zostały zainstalowane, ale po uruchomieniu dotnet --info tylko środowisko uruchomieniowe zostanie wyświetlone. Taka sytuacja może być związana z używaniem dwóch różnych źródeł pakietów. Wbudowane kanały informacyjne pakietów Ubuntu 22.04 i Ubuntu 22.10 obejmują niektóre wersje platformy .NET, ale nie wszystkie i być może również zainstalowano platformę .NET z kanałów informacyjnych firmy Microsoft. Aby uzyskać więcej informacji na temat rozwiązywania tego problemu, zobacz Rozwiązywanie problemów z błędami platformy .NET związanymi z brakującymi plikami w systemie Linux.
Problemy z apt
Ta sekcja zawiera informacje na temat typowych błędów, które mogą wystąpić podczas używania narzędzia APT do zainstalowania platformy .NET.
Nie można odnaleźć pakietu
Ważne
Używanie menedżera pakietów do instalowania platformy .NET z kanału informacyjnego pakietów firmy Microsoft obsługuje tylko architekturę x64. Inne architektury, takie jak Arm, nie są obsługiwane przez źródło danych pakietów firmy Microsoft.
Aby uzyskać więcej informacji na temat instalowania platformy .NET bez menedżera pakietów, zobacz jeden z następujących artykułów:
Nie można zlokalizować \ Nie można zainstalować niektórych pakietów
Uwaga
Te informacje mają zastosowanie tylko wtedy, gdy platforma .NET jest zainstalowana z kanału informacyjnego pakietów firmy Microsoft.
Jeśli zostanie wyświetlony komunikat o błędzie podobny do Nie można zlokalizować pakietu {dotnet-package} lub nie można zainstalować niektórych pakietów, uruchom następujące polecenia.
W poniższym zestawie poleceń znajdują się dwa symbole zastępcze.
{dotnet-package}
Reprezentuje instalowany pakiet .NET, na przykład aspnetcore-runtime-8.0. Jest to używane w poniższym sudo apt-get install poleceniu.
Następnie spróbuj ponownie zainstalować platformę .NET. Jeśli to nie zadziała, możesz uruchomić ręczną instalację przy użyciu następujących poleceń:
Jeśli używasz systemu Ubuntu 23.10 lub nowszego, wypróbuj następujące polecenia:
# Get OS version info which adds the $ID and $VERSION_ID variables
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}
Jeśli używasz wersji systemu Ubuntu wcześniejszej niż 23.10, spróbuj wykonać następujące polecenia:
# 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}
Nie można pobrać
Podczas instalowania pakietu .NET może zostać wyświetlony błąd podobny do Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Ten błąd może oznaczać, że kanał informacyjny pakietu dla platformy .NET jest uaktualniany przy użyciu nowszych wersji pakietów i należy ponowić próbę później. Podczas uaktualniania kanał informacyjny pakietu nie powinien być niedostępny przez ponad 30 minut. Jeśli ten błąd jest stale wyświetlany przez ponad 30 minut, zgłoś problem pod adresem https://github.com/dotnet/core/issues.
Zależności
Podczas instalowania za pomocą menedżera pakietów te biblioteki są instalowane. Jeśli jednak ręcznie zainstalujesz platformę .NET lub opublikujesz samodzielną aplikację, musisz zainstalować te zależności, aby uruchomić aplikację:
certyfikaty ca
libc6
libgcc1 (dla 16.x i 18.x)
libgcc-s1 (dla wersji 20.x lub nowszej)
libgssapi-krb5-2
libicu55 (dla 16.x)
libicu60 (dla 18.x)
libicu66 (dla 20.x)
libicu70 (dla 22.04)
libicu72 (dla 23,10)
libicu74 (dla wersji 24.04 lub nowszej)
liblttng-ust1 (dla wersji 22.x lub nowszej)
libssl1.0.0 (dla 16.x)
libssl1.1 (dla 18.x, 20.x)
libssl3 (dla wersji 22.x lub nowszej)
libstdc++6
libunwind8 (dla wersji 22.x lub nowszej)
zlib1g
Zależności można zainstalować za apt install pomocą polecenia . Poniższy fragment kodu przedstawia instalowanie zlib1g biblioteki:
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Utwórz projekt platformy .NET i dowiedz się, jak dodawać pakiety i zarządzać zależnościami pakietów w projekcie. Użyj interfejsu wiersza polecenia platformy .NET Core i rejestru NuGet, aby dodać biblioteki i narzędzia do aplikacji w języku C# przy użyciu programu Visual Studio Code.