次の方法で共有


Ubuntu に .NET をインストールする決定ガイド

この記事は、Ubuntu に .NET をインストールする方法を決定するのに役立ちます。 Ubuntu 22.04 以降、サポートされているほとんどのバージョンの .NET は、組み込みの Ubuntu フィードで使用できます。 Ubuntu .NET バックポート パッケージ リポジトリには、サポートされている残りの .NET バージョンが含まれています。

Canonical が Ubuntu での .NET の発行を引き継ぎしました。 Ubuntu 22.04 以降、Microsoft は Ubuntu 用 .NET を Microsoft パッケージ リポジトリに配布しなくなりました。

サポートされているディストリビューション

次の表は、現在サポートされている .NET リリースと、それらがサポートされている Ubuntu のバージョンの一覧です。 各リンクは、特定の Ubuntu バージョン ページに移動し、そのバージョンの Ubuntu 用に .NET をインストールする方法について説明します。

ウブントゥ サポートされている .NET バージョン 利用可能
組み込みの Ubuntu フィード
利用可能
.NET バックポート
Ubuntu フィード
利用可能
Microsoft フィード
24.10 9.0、8.0 9.0、8.0 無し 無し
24.04 (LTS) 9.0、8.0 8.0 9.0、7.0、6.0 無し
22.04 (LTS) 9.0、8.0 8.0、7.0、6.0 9.0 8.0、7.0、6.0、3.1

Ubuntu バージョンがサポート期間の終了に達すると、.NET はその特定の Ubuntu バージョンでサポートされなくなりました。

Canonical は、Microsoft が提供するサポート有効期間を超えても、その Ubuntu バージョンの有効期間中に組み込みの Ubuntu フィードの .NET バージョンをサポートし、.NET バックポート パッケージ リポジトリ内の .NET バージョンのベスト エフォート サポートを提供します。これは、Microsoft が提供するサポートの有効期間を超えません。

次のバージョンの .NET は、❌ サポート対象外となりました。

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

Ubuntu をアップグレードするときの考慮事項

Ubuntu を 22.04 以降にアップグレードしますか? 最初に .NET をアンインストールすることを検討してください。

パッケージ マネージャーを使用して Microsoft パッケージ リポジトリから .NET をインストールした場合、Ubuntu のアップグレード後にパッケージのミックスアップの問題が発生します。 Canonical が Ubuntu 22.04 (およびそれ以降のバージョン) のパッケージ フィードに .NET を発行したので、パッケージ マネージャーは以前にインストールした .NET バージョンについて認識しません。 パッケージを最新の .NET にアップグレードすることはできません。 まず、それらをアンインストールしてから、[Ubuntu パッケージ リポジトリ] から再インストールします。

.NET のインストール方法を決定する

Ubuntu のバージョンが組み込みまたは .NET バックポート Ubuntu フィードを通じて .NET をサポートしている場合、.NET のビルドのサポートは Canonical によって提供され、ビルドはさまざまなワークロードに最適化される可能性があります。 Microsoft では、Microsoft パッケージ リポジトリ フィードのパッケージのサポートを提供しています。

Warnung

ソース .NET パッケージへの Ubuntu または Microsoft フィードのいずれかを選択することをお勧めします。 アプリが特定のバージョンの .NET を解決しようとすると問題が発生するため、複数のパッケージ リポジトリから .NET パッケージを混在させる必要はありません。

メソッド 利点 短所
パッケージ マネージャー
組み込み式
Ubuntu フィード)
  • 通常、最新バージョンを使用できます。
  • パッチは正しい方法で利用できます。
  • 依存関係が含まれています。
  • 容易な取り外し。
  • 使用可能な .NET バージョンは、特定の Ubuntu バージョンのサポート期間でサポートされています。
  • Ubuntu 24.04 上の .NET 8 用 IBM System Z プラットフォームのサポート。
  • Ubuntu 16.04、18.04、20.04 では使用できません。
  • 使用できる .NET のバージョンは、Ubuntu のバージョンによって異なります。
  • プレビュー リリースは使用できません。
パッケージ マネージャー
(.NET バックポート
Ubuntu フィード)
  • 組み込みの Ubuntu フィードに含まれていない、サポートされているバージョンが含まれています。
  • パッチは正しい方法で利用できます。
  • 依存関係が含まれています。
  • 容易な取り外し。
  • 組み込みの Ubuntu フィードと互換性があります。
  • Ubuntu 16.04、18.04、20.04 では使用できません。
  • Ubuntu .NET バックポート パッケージ リポジトリを登録する必要があります。
  • プレビュー リリースは使用できません。
パッケージ マネージャー
(Microsoft フィード)
  • サポートされているバージョンは常に使用可能です。
  • パッチは正しい方法で利用できます。
  • 依存関係が含まれています。
  • 容易な取り外し。
  • Ubuntu 24.04 以降では使用できません。
  • Microsoft パッケージ リポジトリを登録する必要があります。
  • プレビュー リリースは使用できません。
  • x64 Ubuntu のみをサポートします。
スクリプト \ 手動抽出
  • .NET をインストールする場所を制御します。
  • プレビュー リリースを利用できます。
  • 更新プログラムを手動でインストールします。
  • 依存関係を手動でインストールします。
  • 手動による削除。

次のセクションを使用して、.NET のインストール方法を決定します。

Ubuntu 22.04 以降を使用しており、.NET のみが必要です

powershellmdatpmssqlなど、他の Microsoft パッケージが必要ない場合は、Ubuntu フィードを使用して .NET をインストールします。 詳細については、次のページを参照してください。

Von Bedeutung

.NET 8 SDK と Ubuntu 22.04 を使用している場合は、Canonical が提供する SDK のバージョンは常に .1xx 機能帯になります。 より新しい機能帯のリリースを使用する場合は、Microsoft フィードを使用して SDK をインストールしてください。 リポジトリ フィード間の切り替えの影響については、「Linux 上での .NET パッケージの混在」を確認してください。

powershellmdatpmssqlなどの他の Microsoft パッケージを使用するために Microsoft リポジトリをインストールする場合は、Microsoft リポジトリによって提供される .NET パッケージの優先度を下げる必要があります。 パッケージの優先順位を下げる手順については、私の Linux ディストリビューションが .NET パッケージを提供しており、それを使用したい場合を参照してください。

22.04 より前のバージョンの Ubuntu を使用しています

Ubuntu への .NET SDK または .NET ランタイムのインストールに関する記事のバージョン固有のセクションの手順を使用します。

Ubuntu のバージョンで サポートされている .NET のバージョンの詳細については、「サポートされているディストリビューション」セクションを参照してください。 サポートされていないバージョンをインストールする場合は、「 Microsoft パッケージ リポジトリの登録」を参照してください。

他の Microsoft パッケージ ( powershellmdatp、または mssql ) を使用しています。

Ubuntu バージョンで Ubuntu フィード経由の .NET がサポートされている場合は、.NET をインストールするフィードを決定する必要があります。 「サポートされるディストリビューション」セクションには、パッケージ フィードで使用できる .NET のバージョンを示す表が示されています。

Ubuntu フィードから .NET パッケージをソース化する場合は、Microsoft リポジトリによって提供される .NET パッケージを削除する必要があります。 パッケージの優先順位を下げる手順については、私の Linux ディストリビューションが .NET パッケージを提供しており、それを使用したい場合を参照してください。

.NET アプリを作成する

ランタイムに使用するのと同じパッケージ ソースを SDK に使用します。 Ubuntu フィードを使用して .NET をインストールすることをお勧めします。 ただし、別のソース (たとえば、上位の SDK 機能バンドにアクセスするために Microsoft パッケージ リポジトリ ) から .NET をインストールする場合は、.NET をアンインストールし、Ubuntu フィードから .NET パッケージを無視して、他のソースから再インストールするようにパッケージ マネージャーを構成する必要があります。

「.NET のインストール方法を決定する」セクションの他の推奨事項を確認します。

コンテナー、クラウド、または継続的インテグレーションのシナリオで .NET アプリを実行したい

Ubuntu バージョンで必要な .NET バージョンが提供されている場合は、Ubuntu フィードからインストールします。 それ以外 の場合は、Microsoft パッケージ リポジトリを登録 し、そのリポジトリから .NET をインストールします。 「サポートされるディストリビューション」セクションの情報を確認します。

必要な .NET のバージョンが使用できない場合は、 dotnet-install スクリプトを使用してみてください。

Ubuntu ディストリビューションに必要な .NET バージョンが含まれていないか、サポート対象外の .NET バージョンが必要です

APT と Microsoft パッケージ リポジトリを使用することをお勧めします。 詳細については、「 Microsoft パッケージ リポジトリに登録してインストールする 」セクションを参照してください。

プレビュー バージョンをインストールする

.NET をインストールするには、次のいずれかの方法を使用します。

APT を使用したくない

自動インストールが必要な場合は、 Linux インストール スクリプトを使用します。

.NET インストール エクスペリエンスを完全に制御する場合は、tarball をダウンロードし、.NET を手動でインストールします。 詳細については、「 手動インストール」を参照してください。

Arm ベースの CPU を使用しています

Ubuntu バージョンに必要な .NET バージョンが用意されている場合は、組み込みのフィードからインストールします。 「サポートされるディストリビューション」セクションの情報を確認します。

必要な .NET のバージョンが使用できない場合は、次のいずれかの方法を使用して .NET をインストールしてみてください。

IBM System Z プラットフォームを使用しています

Ubuntu 24.04 の .NET 8 以降、Canonical では IBM System Z プラットフォーム用の .NET がサポートされています。 Canonical は、サポートを他の .NET および Ubuntu バージョンに拡張する作業を行います。

組み込みの Ubuntu フィードを使用して .NET をインストールします。 詳細については、次のページを参照してください。

パッケージ リポジトリを登録する

Ubuntu のバージョンによっては、Ubuntu バックポートまたは Microsoft パッケージ リポジトリの登録が必要になる場合があります。

Von Bedeutung

「.NET のインストール方法を決定する」セクションの情報を考慮してください。

Ubuntu .NET バックポート パッケージ リポジトリ

Ubuntu .NET バックポート パッケージ リポジトリには、組み込みの Ubuntu フィードでは使用できないバージョンの .NET が用意されています。 Canonical は、このパッケージ リポジトリに含まれるパッケージを保持し、Microsoft が提供するサポートの有効期間または特定の Ubuntu バージョンのサポート期間を超えないベスト エフォート サポートを提供します。

このパッケージ リポジトリは、Ubuntu 24.04 LTS (Noble Numbat) および Ubuntu 22.04 LTS (Jammy Jellyfish) でサポートされています。 [サポートされるディストリビューション] セクションには、パッケージ フィードで使用できる .NET のバージョンを示すテーブルが用意されています。 詳細については、「 Ubuntu .NET バックポート パッケージ リポジトリ」を参照してください。

このパッケージ リポジトリを追加するには、次のコマンドを実行します。

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

Ubuntu .NET バックポート パッケージ リポジトリを登録する

ターミナルを開き、次のコマンドを実行します。

sudo add-apt-repository ppa:dotnet/backports

Ubuntu .NET バックポート パッケージ リポジトリは、組み込みの Ubuntu フィードと互換性があります。 そのため、組み込みの Ubuntu フィード内の .NET パッケージを無視するようにパッケージ マネージャーを構成する必要はありません。

Ubuntu .NET バックポート パッケージ リポジトリの登録を解除する

Ubuntu .NET バックポート パッケージ リポジトリからパッケージを使用しなくなった場合は、登録を解除できます。 ターミナルを開き、次のコマンドを実行します。

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

Von Bedeutung

Ubuntu .NET バックポート パッケージ リポジトリの登録を解除しても、パッケージはアンインストールされません。

add-apt-repository コマンドが見つかりません

add-apt-repository(1) ユーティリティは、ほとんどの Ubuntu インストールにプレインストールされています。

add-apt-repository コマンドが見つからなかったというエラー メッセージが表示された場合は、このコマンドを提供する software-properties-common パッケージをインストールする必要があります。 ターミナルを開き、次のコマンドを実行します。

sudo apt update
sudo apt install software-properties-common

Microsoft パッケージ リポジトリを登録する

Von Bedeutung

これは、24.04 より前の Ubuntu バージョンにのみ適用されます。 Ubuntu 24.04 以降、Microsoft はパッケージを Microsoft パッケージ リポジトリに発行しなくなりました。 サポートされているディストリビューション テーブルを使用して、.NET をインストールする最適な方法を決定します。

Microsoft パッケージ リポジトリには、 Ubuntu のバージョンで以前または現在サポートされていたすべてのバージョンの .NET が含まれています。 Ubuntu のバージョンに .NET パッケージが含まれている場合は、Ubuntu パッケージの優先順位を下げ、Microsoft リポジトリを使用する必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションで提供されていないバージョンの .NET が必要」を参照してください。

Von Bedeutung

Microsoft パッケージ リポジトリでは、 x64 アーキテクチャを対象とする .NET パッケージのみがサポートされます。 Arm などの他のアーキテクチャでは、インストーラー スクリプトや手動インストールなど、他の方法で .NET をインストールする必要があります。

プレビュー リリースは、Microsoft パッケージ リポジトリでは使用 できません 。 詳細については、「 プレビュー バージョンのインストール」を参照してください。

注意事項

すべての .NET インストールを管理するには、リポジトリを 1 つだけ使用することをお勧めします。 Ubuntu リポジトリを使用して .NET をインストールしたことがある場合は、.NET パッケージのシステムをクリーンアップし、Ubuntu フィードを無視するように APT を構成する必要があります。 これを行う方法の詳細については、「 Linux ディストリビューションで提供されていないバージョンの .NET が必要です」を参照してください。

APT を使用したインストールは、少ないコマンドで実行できます。 .NET をインストールする前に、次のコマンドを実行して、信頼されたキーの一覧に Microsoft パッケージ署名キーを追加し、パッケージ リポジトリを追加します。

ターミナルを開き、次のコマンドを実行します。

# 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

ヒント

前のスクリプトは Ubuntu 用に記述されており、Linux Mint などの派生ディストリビューションを使用している場合は機能しない可能性があります。 $ID変数と$VERSION_ID変数に正しい値が割り当てられず、wget コマンドの URI が無効になる可能性があります。 $IDはディストリビューション (ubuntu など) に対応しますが、$VERSION_IDは、22.04 や 23.10 などのパッケージを取得する特定のバージョンの Ubuntu にマップされます。

たとえば、Ubuntu 22.04 では、 $IDubuntu され、 $VERSION_ID22.04。 URL は次のようになります: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb

Web ブラウザーを使用し、 https://packages.microsoft.com/config/ubuntu/ に移動して、 $repo_version 値として使用できる Ubuntu のバージョンを確認できます。

.NET のインストール、アンインストール、または更新

次のセクションでは、パッケージ マネージャーを使用して .NET を管理する方法について説明します。

.NET をインストールする

sudo apt install <package-name> コマンドを使用して、パッケージ マネージャーを使用して .NET をインストールします。 <package-name>を、インストールする .NET パッケージの名前に置き換えます。 たとえば、.NET SDK 9.0 をインストールするには、コマンド sudo apt install dotnet-sdk-9.0を使用します。 次の表に、現在サポートされている .NET パッケージを示します ( Ubuntu のバージョンによって異なる場合があります)。

プロダクト タイプ パッケージ
9.0 ASP.NET Core ランタイム aspnetcore-runtime-9.0
9.0 。網 ランタイム dotnet-runtime-9.0
9.0 。網 SDKについて dotnet-sdk-9.0
8.0 ASP.NET Core ランタイム aspnetcore-runtime-8.0
8.0 。網 ランタイム dotnet-runtime-8.0
8.0 。網 SDKについて dotnet-sdk-8.0

ヒント

.NET アプリを作成していない場合は、ASP.NET Core ランタイムをインストールします。これには .NET ランタイムが含まれており、ASP.NET Core アプリもサポートされます。

一部の環境変数は、インストール後の .NET の実行方法に影響します。 詳細については、「 .NET SDK と CLI 環境変数」を参照してください。

.NET のアンインストール

パッケージ マネージャーを使用して .NET をインストールした場合は、 apt-get remove コマンドを使用して同じ方法でアンインストールします。

sudo apt-get remove dotnet-sdk-6.0

詳細については、「 .NET のアンインストール」を参照してください。

.NET を更新する

パッケージ マネージャーを使用して .NET をインストールした場合は、 apt upgrade コマンドを使用してパッケージをアップグレードできます。 たとえば、次のコマンドを実行すると、 dotnet-sdk-9.0 パッケージが最新バージョンにアップグレードされます。

sudo apt update
sudo apt upgrade dotnet-sdk-9.0

ヒント

.NET のインストール後に Linux ディストリビューションをアップグレードした場合は、Microsoft パッケージ リポジトリの再構成が必要になる場合があります。 現在のディストリビューション バージョンのインストール手順を実行して、.NET 更新プログラム用の適切なパッケージ リポジトリにアップグレードします。

プレビュー バージョンの管理

次のセクションでは、.NET のプレビュー リリースをインストールおよびアンインストールする方法について説明します。

プレビュー バージョンをインストールする

.NET のプレビューおよびリリース候補バージョンは、パッケージ リポジトリでは使用できません。 .NET のプレビューとリリース候補は、次のいずれかの方法でインストールできます。

プレビュー バージョンを削除する

パッケージ マネージャーを使用して .NET のインストールを管理する場合、以前にプレビュー リリースをインストールしたことがある場合、競合が発生する可能性があります。 パッケージ マネージャーは、プレビュー以外のリリースを以前のバージョンの .NET と解釈できます。 プレビュー以外のリリースをインストールするには、最初にプレビュー バージョンをアンインストールします。 .NET のアンインストールの詳細については、「 .NET ランタイムと SDK を削除する方法」を参照してください。

トラブルシューティング

Ubuntu 22.04 以降では、.NET の一部しか使用できないと思われる状況が発生する可能性があります。 たとえば、ランタイムと SDK をインストールしたが、 dotnet --info 実行するとランタイムのみが表示されます。 この状況は、2 つの異なるパッケージ ソースの使用に関連する場合があります。 組み込みの Ubuntu 22.04 および Ubuntu 22.10 パッケージ フィードには、一部のバージョンの .NET が含まれていますが、すべてではありません。また、Microsoft フィードから .NET をインストールしている可能性もあります。 この問題を解決する方法の詳細については、 Linux 上の不足しているファイルに関連する .NET エラーのトラブルシューティングを参照してください。

APT の問題

このセクションでは、APT を使用して .NET をインストールするときに発生する可能性がある一般的なエラーについて説明します。

パッケージが見つかりません

Von Bedeutung

パッケージ マネージャーを使用して Microsoft パッケージ フィードから .NET をインストールする方法は、x64 アーキテクチャでのみサポートされています。 Arm などの他のアーキテクチャでは、Microsoft パッケージ フィードではサポートされていません。

パッケージ マネージャーを使用せずに .NET をインストールする方法の詳細については、次の記事のいずれかを参照してください。

\ 一部のパッケージをインストールできませんでした

この情報は、.NET が Microsoft パッケージ フィードからインストールされている場合にのみ適用されます。

パッケージ {dotnet-package} を見つけられない か、 一部のパッケージをインストールできませんでしたのようなエラー メッセージが表示された場合は、次のコマンドを実行します。

次の一連のコマンドには、2 つのプレースホルダーがあります。

  • {dotnet-package}
    これは、 aspnetcore-runtime-8.0など、インストールする .NET パッケージを表します。 これは、次の sudo apt-get install コマンドで使用されます。

まず、パッケージ 一覧を消去してみてください。

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

次に、.NET をもう一度インストールしてみてください。 それでも問題が解決しない場合は、次のコマンドを使用して手動インストールを実行できます。

Ubuntu 23.10 以降を使用している場合は、次のコマンドを試してください。

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

23.10 より前のバージョンの Ubuntu を使用している場合は、次のコマンドを試してください。

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

取得に失敗しました

.NET パッケージのインストール中に、 Failed to fetch ... File has unexpected size ... Mirror sync in progress?のようなエラーが表示されることがあります。 このエラーは、.NET のパッケージ フィードが新しいパッケージ バージョンでアップグレードされ、後でもう一度やり直す必要があることを意味する可能性があります。 アップグレード中は、パッケージ フィードを 30 分以上使用できないようにする必要があります。 このエラーが 30 分を超えて継続的に発生する場合は、 https://github.com/dotnet/core/issuesで問題を提出してください。

依存関係

パッケージ マネージャーを使用してインストールする場合、次のライブラリが自動的にインストールされます。 ただし、.NET を手動でインストールする場合、または自己完結型アプリを発行する場合は、次の依存関係をインストールしてアプリを実行する必要があります。

  • CA証明書
  • libc6
  • libgcc1 (16.x および 18.x の場合)
  • libgcc-s1 (20.x 以降)
  • libgssapi-krb5-2
  • libicu55 (16.x の場合)
  • libicu60 (18.x の場合)
  • libicu66 (20.x の場合)
  • libicu70 (22.04 用)
  • libicu72 (バージョン23.10用)
  • libicu74 (24.04 以降の場合)
  • liblttng-ust1 (22.x 以降の場合)
  • libssl1.0.0 (16.x の場合)
  • libssl1.1 (18.x、20.x の場合)
  • libssl3 (22.x 以降の場合)
  • libstdc++6
  • zlib1g

依存関係は apt install コマンドでインストールできます。 次のスニペットは zlib1g ライブラリのインストールを示しています。

sudo apt install zlib1g

次のステップ