Gambaran umum .NET di Ubuntu

Artikel ini menjelaskan cara menginstal .NET di Ubuntu. Dimulai dengan Ubuntu 22.04, sebagian besar versi .NET yang didukung tersedia di umpan Ubuntu bawaan. Repositori paket backport Ubuntu .NET berisi versi .NET yang didukung yang tersisa, yang tidak tersedia di umpan paket Ubuntu bawaan untuk versi Ubuntu ini. Untuk informasi selengkapnya tentang versi yang tersedia, lihat bagian Distribusi yang didukung. Selain itu, untuk Ubuntu 23.10 dan versi sebelumnya, repositori paket Microsoft berisi setiap versi .NET yang saat ini, atau sebelumnya didukung.

Peringatan

Disarankan agar Anda memilih antara umpan Ubuntu atau Microsoft ke paket .NET sumber. Jangan mencampur paket .NET dari beberapa repositori paket, karena ini menyebabkan masalah ketika aplikasi mencoba mengatasi versi .NET tertentu.

Metode Pro Kontra
Manajer paket
(bawaan
Umpan Ubuntu)
  • Biasanya versi terbaru tersedia.
  • Patch tersedia dengan cara yang benar.
  • Dependensi disertakan.
  • Penghapusan mudah.
  • Versi .NET yang tersedia didukung untuk periode dukungan versi Ubuntu tertentu.
  • Dukungan untuk platform IBM System Z untuk .NET 8 di Ubuntu 24.04.
  • Tidak tersedia untuk Ubuntu 16.04, 18.04, 20.04.
  • Versi .NET tersedia bervariasi menurut versi Ubuntu.
  • Rilis pratinjau tidak tersedia.
Manajer paket
(Backport.NET
Umpan Ubuntu)
  • Berisi versi yang didukung, yang tidak terkandung dalam umpan Ubuntu bawaan.
  • Patch tersedia dengan cara yang benar.
  • Dependensi disertakan.
  • Penghapusan mudah.
  • Kompatibel dengan umpan Ubuntu bawaan.
  • Tidak tersedia untuk Ubuntu 16.04, 18.04, 20.04.
  • Memerlukan pendaftaran repositori paket backport Ubuntu .NET.
  • Rilis pratinjau tidak tersedia.
Manajer paket
(Umpan Microsoft)
  • Versi yang didukung selalu tersedia.
  • Patch tersedia dengan cara yang benar.
  • Dependensi disertakan.
  • Penghapusan mudah.
  • Tidak tersedia untuk Ubuntu 24.04+.
  • Memerlukan pendaftaran repositori paket Microsoft.
  • Rilis pratinjau tidak tersedia.
  • Hanya mendukung X64 Ubuntu.
Skrip \ Ekstraksi manual
  • Kontrol tempat .NET diinstal.
  • Rilis pratinjau tersedia.
  • Instal pembaruan secara manual.
  • Instal dependensi secara manual.
  • Penghapusan manual.

Memutuskan cara menginstal .NET

Saat versi Ubuntu Anda mendukung .NET melalui umpan Ubuntu backport bawaan atau .NET, dukungan untuk build .NET tersebut disediakan oleh Canonical dan build mungkin dioptimalkan untuk beban kerja yang berbeda. Microsoft menyediakan dukungan untuk paket di umpan repositori paket Microsoft.

Gunakan bagian berikut untuk menentukan bagaimana Anda harus menginstal .NET:

Saya menggunakan Ubuntu 22.04 atau yang lebih baru, dan saya hanya perlu .NET

Pasang .NET melalui umpan Ubuntu. Untuk informasi selengkapnya, lihat halaman berikut:

Penting

Versi .NET SDK yang ditawarkan oleh Canonical selalu ada di band fitur .1xx. Jika Anda ingin menggunakan rilis pita fitur yang lebih baru, gunakan umpan Microsoft untuk menginstal SDK. Pastikan Anda meninjau informasi dalam artikel campuran paket .NET di Linux untuk memahami implikasi peralihan antara umpan repositori.

Jika Anda akan menginstal repositori Microsoft untuk menggunakan paket Microsoft lainnya, seperti powershell, , mdatpatau mssql, Anda perlu memisahkan paket .NET yang disediakan oleh repositori Microsoft. Untuk instruksi tentang cara mendeprioritaskan paket, lihat Distribusi Linux saya menyediakan paket .NET, dan saya ingin menggunakannya.

Saya menggunakan versi Ubuntu sebelum 22.04

Gunakan instruksi pada halaman Ubuntu khusus versi.

Tinjau bagian Distribusi yang didukung untuk informasi selengkapnya tentang versi .NET apa yang didukung untuk versi Ubuntu Anda. Jika Anda menginstal versi yang tidak didukung, lihat Mendaftarkan repositori paket Microsoft.

Saya menggunakan paket Microsoft lainnya, seperti powershell, , mdatpatau mssql

Jika versi Ubuntu Anda mendukung .NET melalui umpan Ubuntu, Anda harus memutuskan umpan mana yang harus menginstal .NET. Bagian Distribusi yang didukung menyediakan tabel yang mencantumkan versi .NET mana yang tersedia dalam umpan paket.

Jika Anda ingin sumber paket .NET dari umpan Ubuntu, Anda perlu memisahkan paket .NET yang disediakan oleh repositori Microsoft. Untuk instruksi tentang cara mendeprioritaskan paket, lihat Distribusi Linux saya menyediakan paket .NET, dan saya ingin menggunakannya.

Saya ingin membuat aplikasi .NET

Gunakan sumber paket yang sama untuk SDK seperti yang Anda gunakan untuk runtime. Disarankan agar Anda menginstal .NET melalui umpan Ubuntu. Namun, jika Anda ingin menginstal .NET dari sumber lain (misalnya repositori paket Microsoft untuk mengakses pita fitur SDK yang lebih tinggi), Anda harus menghapus instalasi .NET, mengonfigurasi manajer paket Anda untuk mengabaikan paket .NET dari umpan Ubuntu dan menginstalnya kembali dari sumber lain.

Tinjau saran lain di bagian Putuskan cara menginstal .NET .

Saya ingin menjalankan aplikasi .NET dalam skenario kontainer, cloud, atau integrasi berkelanjutan

Jika versi Ubuntu Anda menyediakan versi .NET yang Anda butuhkan, instal dari umpan Ubuntu. Jika tidak, daftarkan repositori paket Microsoft dan instal .NET dari repositori tersebut. Tinjau informasi di bagian Distribusi yang didukung.

Jika versi .NET yang Anda inginkan tidak tersedia, coba gunakan skrip dotnet-install.

Distribusi Ubuntu saya tidak menyertakan versi .NET yang saya inginkan, atau saya memerlukan versi .NET yang tidak didukung

Kami sarankan Anda menggunakan APT dan repositori paket Microsoft. Untuk informasi selengkapnya, lihat bagian Mendaftar dan menginstal dengan repositori paket Microsoft.

Saya ingin menginstal versi pratinjau

Gunakan salah satu cara berikut untuk menginstal .NET:

Saya tidak ingin menggunakan APT

Jika Anda menginginkan penginstalan otomatis, gunakan skrip penginstalan Linux.

Jika Anda ingin kontrol penuh atas pengalaman penginstalan .NET, unduh tarball dan instal .NET secara manual. Untuk informasi selengkapnya, lihat Penginstalan manual.

Saya menggunakan CPU berbasis Arm

Jika versi Ubuntu Anda menyediakan versi .NET yang Anda butuhkan, instal dari umpan bawaan. Tinjau informasi di bagian Distribusi yang didukung.

Jika versi .NET yang Anda inginkan tidak tersedia, coba gunakan salah satu cara berikut untuk menginstal .NET:

Saya menggunakan platform IBM System Z

Dimulai dengan .NET 8 pada Ubuntu 24.04, Canonical mendukung .NET untuk platform IBM System Z. Canonical bekerja untuk memperluas dukungan ke versi .NET dan Ubuntu lainnya.

Instal .NET melalui umpan Ubuntu bawaan. Untuk informasi selengkapnya, lihat halaman berikut ini:

Distribusi yang didukung

Tabel berikut adalah daftar rilis .NET yang saat ini didukung dan versi Ubuntu yang didukungnya. Setiap tautan masuk ke halaman versi Ubuntu tertentu dengan instruksi khusus tentang cara menginstal .NET untuk versi Ubuntu tersebut.

Ubuntu Versi .NET yang didukung Tersedia dalam
umpan Ubuntu bawaan
Tersedia di
Backport .NET
Umpan Ubuntu
Tersedia di
Umpan Microsoft
24.04 (LTS) 8.0, 7.0, 6.0 8.0 7.0, 6.0 Tidak
23.10 8.0, 7.0, 6.0 8.0, 7.0, 6.0 Tidak 8.0, 7.0, 6.0
22.04 (LTS) 8.0, 7.0, 6.0 8.0, 7.0, 6.0 Tidak 8.0, 7.0, 6.0, 3.1
20.04 (LTS) 8.0, 7.0, 6.0 Tidak Tidak 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 7.0, 6.0 Tidak Tidak 7.0. 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6.0 Tidak Tidak 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

Ketika versi Ubuntu mencapai akhir periode dukungannya, .NET tidak lagi didukung dengan versi Ubuntu tertentu.

Canonical mendukung versi .NET di umpan Ubuntu bawaan selama masa pakai versi Ubuntu tersebut, bahkan di luar masa pakai dukungan yang disediakan Microsoft dan memberikan dukungan upaya terbaik untuk versi .NET di repositori paket backport .NET, yang tidak meluas melampaui masa pakai dukungan yang disediakan Microsoft.

Versi .NET ❌ berikut tidak lagi didukung:

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

Repositori paket backport Ubuntu .NET

Repositori paket backport Ubuntu .NET menyediakan versi .NET, yang tidak tersedia di umpan Ubuntu bawaan. Bagian Distribusi yang didukung menyediakan tabel yang mencantumkan versi .NET mana yang tersedia di umpan paket. Canonical mempertahankan paket yang terkandung dalam repositori paket ini dan memberikan dukungan upaya terbaik, yang tidak melampaui masa pakai dukungan yang disediakan Microsoft atau periode dukungan dari versi Ubuntu tertentu.

Lihat tampilan web repositori paket backport Ubuntu .NET untuk detail selengkapnya.

Mendaftarkan repositori paket backport Ubuntu .NET

Buka terminal dan jalankan perintah berikut:

sudo add-apt-repository ppa:dotnet/backports

Tip

Anda tidak perlu memanggil apt update. Perintah add-apt-repository melakukan ini secara default.

Catatan

Repositori paket backport Ubuntu .NET kompatibel dengan umpan Ubuntu bawaan. Oleh karena itu Anda tidak perlu mengonfigurasi manajer paket Anda untuk mengabaikan paket .NET di umpan Ubuntu bawaan.

Membatalkan pendaftaran repositori paket backport Ubuntu .NET

Jika Anda tidak lagi ingin menggunakan paket dari repositori paket backport Ubuntu .NET, Anda dapat membatalkan pendaftarannya. Buka terminal dan jalankan perintah berikut:

sudo add-apt-repository --remove ppa:dotnet/backports

Penting

Membatalkan pendaftaran repositori paket backport Ubuntu .NET tidak menghapus instalan paket apa pun.

perintah add-apt-repository tidak ditemukan

add-apt-repository(1) Utilitas telah diinstal sebelumnya pada sebagian besar penginstalan Ubuntu.

Jika Anda menerima pesan kesalahan bahwa add-apt-repository perintah tidak ditemukan, Anda harus menginstal software-properties-common paket, yang menyediakan perintah ini. Buka terminal dan jalankan perintah berikut:

sudo apt update
sudo apt install software-properties-common

Mendaftarkan repositori paket Microsoft

Repositori paket Microsoft berisi semua versi .NET yang sebelumnya, atau saat ini didukung dengan versi Ubuntu Anda. Jika versi Ubuntu Anda menyediakan paket .NET, Anda harus memisahkan paket Ubuntu dan menggunakan repositori Microsoft. Untuk petunjuk tentang cara mendeprioritaskan paket, lihat Saya memerlukan versi .NET yang tidak disediakan oleh distribusi Linux saya.

Penting

Repositori paket Microsoft hanya mendukung paket .NET yang menargetkan arsitektur x64 . Arsitektur lain, seperti Arm, harus menginstal .NET dengan beberapa cara lain, seperti dengan skrip alat penginstal atau dengan penginstalan manual.

Rilis pratinjau tidak tersedia di repositori paket Microsoft. Untuk informasi selengkapnya, lihat Menginstal versi pratinjau.

Perhatian

Kami menyarankan agar Anda hanya menggunakan satu repositori untuk mengelola semua penginstalan .NET Anda. Jika sebelumnya Anda telah menginstal .NET dengan repositori Ubuntu, Anda harus membersihkan sistem paket .NET dan mengonfigurasi APT untuk mengabaikan umpan Ubuntu. Untuk informasi selengkapnya tentang cara melakukan ini, lihat Saya memerlukan versi .NET yang tidak disediakan oleh distribusi Linux saya.

Menginstal dengan APT dapat dilakukan dengan beberapa perintah. Sebelum Anda menginstal .NET, jalankan perintah berikut untuk menambahkan kunci penandatanganan paket Microsoft ke daftar kunci tepercaya Anda, lalu tambahkan repositori paket.

Buka terminal dan jalankan perintah berikut:

# 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

Tip

Skrip sebelumnya ditulis untuk Ubuntu dan mungkin tidak berfungsi jika Anda menggunakan distribusi turunan, seperti Linux Mint. Kemungkinan variabel tidak akan diberi nilai yang $repo_version benar, membuat URI untuk perintah tidak wget valid. Variabel ini memetakan ke versi Ubuntu tertentu yang ingin Anda dapatkan paketnya, seperti 22.04 atau 23.10.

Anda dapat menggunakan browser web dan menavigasi untuk https://packages.microsoft.com/config/ubuntu/ melihat versi Ubuntu mana yang tersedia untuk digunakan sebagai $repo_version nilai.

Menginstal .NET

Setelah mendaftarkan repositori paket Microsoft, atau jika Umpan Ubuntu mendukung paket .NET untuk versi Ubuntu Anda, Anda dapat menginstal .NET melalui manajer paket dengan sudo apt install <package-name> perintah . Ganti <package-name> dengan nama paket .NET yang ingin Anda instal. Misalnya, untuk menginstal .NET SDK 8.0, gunakan perintah sudo apt install dotnet-sdk-8.0. Tabel berikut mencantumkan paket .NET yang saat ini didukung:

Produk Jenis Paket
8.0 Inti ASP.NET Runtime aspnetcore-runtime-8.0
8.0 .NET Runtime dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0
7.0 Inti ASP.NET Runtime aspnetcore-runtime-7.0
7.0 .NET Runtime dotnet-runtime-7.0
7.0 .NET SDK dotnet-sdk-7.0
6.0 Inti ASP.NET Runtime aspnetcore-runtime-6.0
6.0 .NET Runtime dotnet-runtime-6.0
6.0 .NET SDK dotnet-sdk-6.0

Jika Anda ingin menginstal versi .NET yang tidak didukung, periksa bagian Distribusi yang didukung untuk melihat apakah versi .NET tersebut tersedia. Kemudian, ganti versi .NET yang ingin Anda instal. Misalnya, untuk menginstal ASP.NET Core 8.0, gunakan nama aspnetcore-runtime-8.0paket .

Tip

Jika Anda tidak membuat aplikasi .NET, instal runtime ASP.NET Core karena menyertakan runtime .NET dan juga mendukung aplikasi ASP.NET Core.

Beberapa variabel lingkungan memengaruhi cara .NET dijalankan setelah diinstal. Untuk informasi selengkapnya, lihat variabel lingkungan .NET SDK dan CLI.

Hapus instalan .NET

Jika Anda menginstal .NET melalui manajer paket, hapus instalan dengan cara yang sama dengan apt-get remove perintah :

sudo apt-get remove dotnet-sdk-6.0

Untuk informasi selengkapnya, lihat Menghapus instalasi .NET.

Menginstal versi pratinjau

Versi kandidat pratinjau dan rilis .NET tidak tersedia di repositori paket. Anda dapat menginstal pratinjau dan merilis kandidat .NET dengan salah satu cara berikut:

Menghapus versi pratinjau

Saat menggunakan manajer paket untuk mengelola penginstalan .NET, Anda mungkin mengalami konflik jika sebelumnya sudah menginstal rilis pratinjau. Manajer paket dapat menginterpretasikan rilis non-pratinjau sebagai versi .NET sebelumnya. Untuk menginstal rilis non-pratinjau, hapus instalan versi pratinjau terlebih dahulu. Untuk informasi lebih lanjut tentang menghapus instalan .NET, lihat Cara menghapus .NET Runtime dan SDK.

Gunakan APT untuk memperbarui .NET

Jika Anda menginstal .NET melalui manajer paket, Anda dapat meningkatkan paket dengan apt upgrade perintah . Misalnya, perintah berikut meningkatkan dotnet-sdk-7.0 paket dengan versi terbaru:

sudo apt update
sudo apt upgrade dotnet-sdk-7.0

Tip

Jika Anda sudah meningkatkan distribusi Linux sejak menginstal .NET, Anda mungkin perlu mengonfigurasi ulang repositori paket Microsoft. Jalankan petunjuk penginstalan untuk versi distribusi Anda saat ini untuk meningkatkan ke repositori paket yang sesuai untuk pembaruan .NET.

Pemecahan Masalah

Dimulai dengan Ubuntu 22.04, Anda mungkin mengalami situasi di mana tampaknya hanya sepotong .NET yang tersedia. Misalnya, Anda telah menginstal runtime dan SDK, tetapi ketika Anda hanya menjalankan dotnet --info runtime yang tercantum. Situasi ini dapat terkait dengan penggunaan dua sumber paket yang berbeda. Umpan paket Ubuntu 22.04 dan Ubuntu 22.10 bawaan mencakup beberapa versi .NET, tetapi tidak semua, dan Anda mungkin juga menginstal .NET dari umpan Microsoft. Untuk informasi selengkapnya tentang cara memperbaiki masalah ini, lihat Memecahkan masalah kesalahan .NET yang terkait dengan file yang hilang di Linux.

Masalah APT

Bagian ini menyediakan informasi tentang kesalahan umum yang mungkin Anda dapatkan saat menggunakan APT untuk menginstal .NET.

Tidak dapat menemukan paket

Penting

Menggunakan manajer paket untuk menginstal .NET dari umpan paket Microsoft hanya mendukung arsitektur x64 . Arsitektur lain, seperti Arm, tidak didukung oleh umpan paket Microsoft.

Untuk informasi lebih lanjut tentang menginstal .NET tanpa manajer paket, lihat salah satu artikel berikut ini:

Tidak dapat menemukan \ Beberapa paket tidak dapat diinstal

Catatan

Informasi ini hanya berlaku ketika .NET diinstal dari umpan paket Microsoft.

Jika Anda menerima pesan kesalahan yang mirip dengan Tidak dapat menemukan paket {dotnet-package} atau Beberapa paket tidak dapat diinstal, jalankan perintah berikut.

Ada dua tempat penampung dalam sekumpulan perintah berikut.

  • {dotnet-package}
    Ini mewakili paket .NET yang Anda instal, seperti aspnetcore-runtime-8.0. Ini digunakan dalam perintah sudo apt-get install berikut.

Pertama, coba hapus daftar paket:

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

Kemudian, coba instal .NET lagi. Jika tidak berhasil, Anda dapat menjalankan penginstalan manual dengan perintah berikut:

Jika Anda menggunakan Ubuntu 23.10 atau yang lebih baru, coba perintah berikut:

# 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}

Jika Anda menggunakan versi Ubuntu sebelum 23.10, coba perintah berikut:

# 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}

Gagal mengambil

Saat menginstal paket .NET, Anda mungkin melihat kesalahan yang mirip dengan Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Kesalahan ini bisa berarti bahwa umpan paket untuk .NET sedang ditingkatkan dengan versi paket yang lebih baru, dan Anda harus mencoba lagi nanti. Selama peningkatan, umpan paket seharusnya tidak tersedia selama lebih dari 30 menit. Jika Anda terus menerima kesalahan ini selama lebih dari 30 menit, silakan ajukan masalah di https://github.com/dotnet/core/issues.

Dependensi

Saat Anda menginstal dengan manajer paket, pustaka ini diinstal untuk Anda. Tetapi, jika Anda menginstal .NET secara manual atau menerbitkan aplikasi mandiri, Anda harus menginstal dependensi ini untuk menjalankan aplikasi Anda:

  • ca-certificates
  • libc6
  • libgcc1 (untuk 16.x dan 18.x)
  • libgcc-s1 (untuk 20.x atau yang lebih baru)
  • libgssapi-krb5-2
  • libicu55 (untuk 16.x)
  • libicu60 (untuk 18.x)
  • libicu66 (untuk 20.x)
  • libicu70 (untuk 22.04)
  • libicu72 (untuk 23.10)
  • libicu74 (untuk 24.04 atau yang lebih baru)
  • liblttng-ust1 (untuk 22.x atau yang lebih baru)
  • libssl1.0.0 (untuk 16.x)
  • libssl1.1 (untuk 18.x, 20.x)
  • libssl3 (untuk 22.x atau yang lebih baru)
  • libstdc++6
  • libunwind8 (untuk 22.x atau yang lebih baru)
  • zlib1g

Dependensi dapat diinstal dengan apt install perintah . Cuplikan berikut menunjukkan penginstalan zlib1g pustaka:

sudo apt install zlib1g

Jika aplikasi .NET menggunakan rakitan System.Drawing.Common , libgdiplus juga perlu diinstal. Karena System.Drawing.Common tidak lagi didukung di Linux, ini hanya berfungsi pada .NET 6 dan memerlukan pengaturan System.Drawing.EnableUnixSupport sakelar konfigurasi runtime.

Anda dapat menginstal versi terbaru libgdiplus dengan menambahkan repositori Mono ke sistem Anda.

Langkah berikutnya