Ubuntu での .NET の概要
この記事では、Ubuntu に .NET をインストールする方法について説明します。 Ubuntu 22.04 以降、サポートされているほとんどのバージョンの .NET は、組み込みの Ubuntu フィードから取得できます。 Ubuntu .NET バックポート パッケージ リポジトリには、サポートされている残りの .NET バージョンが含まれています。 入手できるバージョンについて詳しくは、「サポートされているディストリビューション」セクションをご覧ください。
Canonical が Ubuntu での .NET の発行を引き継ぎしました。 Ubuntu 22.04 以降、Microsoft は Ubuntu 用 .NET を Microsoft パッケージ リポジトリに配布しなくなりました。
警告
.NET パッケージを入手するには、Ubuntu フィードまたは Microsoft フィードのいずれかを選択することをお勧めします。 アプリが特定のバージョンの .NET を解決しようとした際に問題が発生するため、複数のパッケージ リポジトリから取得した .NET パッケージを混在させないでください。
メソッド | 長所 | 短所 |
---|---|---|
パッケージ マネージャー (組み込み Ubuntu フィード) |
|
|
パッケージ マネージャー (.NET バックポート Ubuntu フィード) |
|
|
パッケージ マネージャー (Microsoft フィード) |
|
|
スクリプト \ 手動抽出 |
|
|
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 パッケージ リポジトリ フィードのパッケージに対してサポートを提供します。
次のセクションを使用して、.NET のインストール方法を決めます。
- Ubuntu 22.04 以降を使用しており、.NET のみが必要
- 22.04 より前のバージョンの Ubuntu を使用している
powershell
、mdatp
、またはmssql
など、他の Microsoft パッケージを使用している- .NET アプリを作成する
- コンテナー、クラウド、または継続的インテグレーションのシナリオで .NET アプリを実行する
- Ubuntu ディストリビューションに必要な .NET バージョンが含まれていない、またはサポート対象外の .NET バージョンが必要
- プレビュー バージョンをインストールする
- APT を使いたくない
- ARM ベースの CPU を使用している
- IBM System Z プラットフォームを使用している場合
Ubuntu 22.04 以降を使用しており、.NET のみが必要
Ubuntu フィードを使用して .NET をインストールします。 詳細については、次のページを参照してください。
重要
.NET 8 SDK と Ubuntu 22.04 を使用している場合は、Canonical によって提供される SDK バージョンが常に .1xx 機能バンドにあることを理解。 新しい機能帯のリリースを使用する場合は、Microsoft フィードを使用して SDK をインストールしてください。 リポジトリ フィード間の切り替えの影響を理解するには、Linux 上の .NET パッケージの混在に関する記事で情報を確認してください。
powershell
、mdatp
、または mssql
など、他の Microsoft パッケージを使用するために Microsoft リポジトリをインストールする場合は、Microsoft リポジトリで提供される .NET パッケージの優先順位を下げる必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションに .NET パッケージが用意されており、それを使用する必要があります」をご覧ください。
22.04 より前のバージョンの Ubuntu を使用している
バージョン固有の Ubuntu ページの手順を実行します。
Ubuntu のバージョンでサポートされている .NET のバージョンについて詳しくは、「サポートされているディストリビューション」セクションをご覧ください。 サポート対象外のバージョンをインストールする場合は、「Microsoft パッケージ リポジトリを登録する」をご覧ください。
powershell
、mdatp
、または mssql
など、他の Microsoft パッケージを使用している
お使いの Ubuntu バージョンで組み込みの Ubuntu フィードを介して .NET がサポートされている場合は、どのフィードで .NET をインストールするかを決める必要があります。 「サポートされているディストリビューション」セクションに、パッケージ フィードで入手できる .NET バージョンの一覧表があります。
Ubuntu フィードを .NET パッケージのソースにする場合は、Microsoft リポジトリで提供される .NET パッケージの優先順位を下げる必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションに .NET パッケージが用意されており、それを使用する必要があります」をご覧ください。
.NET アプリを作成する
ランタイムに使用するものと同じパッケージ ソースを SDK に使用します。 Ubuntu フィードを使用して .NET をインストールすることをお勧めします。 ただし、別のソースから .NET をインストールする場合 (たとえば、上位の SDK 機能バンドにアクセスするために Microsoft パッケージ リポジトリを使用する) は、.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 をインストールします。 詳細については、次のページを参照してください。
サポートされているディストリビューション
次の表は、現在サポートされている .NET リリースと、それらがサポートされている Ubuntu のバージョンの一覧です。 各リンクは特定の Ubuntu バージョンのページに移動します。その Ubuntu バージョンに .NET をインストールする方法の具体的な手順が説明されています。
Ubuntu | サポートされている .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 |
20.04 (LTS) | 9.0, 8.0 | なし | なし | 8.0、7.0 6.0、5.0、3.1、2.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 の .NET バックポート パッケージ リポジトリ
Ubuntu の .NET バックポート パッケージ リポジトリには、組み込みの Ubuntu フィードでは使用できないバージョンの .NET が用意されています。 「サポートされているディストリビューション」セクションに、パッケージ フィードで入手できる .NET バージョンの一覧表があります。 Canonical は、このパッケージ リポジトリに含まれるパッケージのメンテナンスを行い、Microsoft が提供するサポートの有効期間、または特定の Ubuntu バージョンのサポート期間を超えない範囲でベスト エフォート サポートを提供します。
詳細については、「Ubuntu の .NET バックポート パッケージ リポジトリの Web ビュー」を参照してください。
Ubuntu の .NET バックポート パッケージ リポジトリを登録する
ターミナルを開き、次のコマンドを実行します。
sudo add-apt-repository ppa:dotnet/backports
ヒント
apt update
を呼び出す必要はありません。 add-apt-repository
コマンドは、既定でこれを行います。
Note
Ubuntu の .NET バックポート パッケージ リポジトリは、組み込みの Ubuntu フィードと互換性があります。 そのため、組み込みの Ubuntu フィード内の .NET パッケージを無視するようにパッケージ マネージャーを構成する必要はありません。
Ubuntu の .NET バックポート パッケージ リポジトリの登録を解除する
Ubuntu の .NET バックポート パッケージ リポジトリからパッケージを使用しなくなった場合は、登録を解除できます。 ターミナルを開き、次のコマンドを実行します。
sudo add-apt-repository --remove ppa:dotnet/backports
重要
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 パッケージ リポジトリを登録する
重要
これは、24.04 より前の Ubuntu バージョンにのみ適用されます。 Ubuntu 24.04 以降、Microsoft はパッケージを Microsoft パッケージ リポジトリに発行しなくなりました。 サポートされているディストリビューション テーブルを使用して.NET をインストールする最適な方法を決定します。
Microsoft パッケージ リポジトリには、ご利用のバージョンの Ubuntu で現在サポートされている、または以前サポートされていたすべての .NET バージョンが含まれています。 ご利用のバージョンの Ubuntu で .NET パッケージが提供されている場合は、Ubuntu パッケージの優先順位を下げて、Microsoft リポジトリを使用する必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションで提供されていないバージョンの .NET が必要です」をご覧ください。
重要
Microsoft パッケージ リポジトリでは、x64 アーキテクチャをターゲットとする .NET パッケージのみがサポートされます。 ARM など他のアーキテクチャについては、インストーラー スクリプトまたは手動のインストールなど、他の方法で .NET をインストールする必要があります。
プレビュー リリースは、Microsoft パッケージ リポジトリでは使用できません。 詳しくは、「プレビュー バージョンをインストールする」をご覧ください。
注意
1 つのリポジトリのみを使用してすべての .NET インストールを管理することをお勧めします。 以前に 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 では、 $ID
は ubuntu
され、 $VERSION_ID
は 22.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 のインストール
sudo apt install <package-name>
コマンドを使用して、パッケージ マネージャーを使用して .NET をインストールします。 <package-name>
を実際にインストールするパッケージ名に置き換えます。 たとえば、.NET SDK 9.0 をインストールするには、コマンド sudo apt install dotnet-sdk-9.0
を使用します。 次の表に、現在サポートされている .NET パッケージを示します ( は Ubuntu のバージョンによって異なります)。
Product | 種類 | Package | |
---|---|---|---|
9.0 | ASP.NET Core | Runtime | aspnetcore-runtime-9.0 |
9.0 | .NET | Runtime | dotnet-runtime-9.0 |
9.0 | .NET | SDK | dotnet-sdk-9.0 |
8.0 | ASP.NET Core | Runtime | aspnetcore-runtime-8.0 |
8.0 | .NET | Runtime | dotnet-runtime-8.0 |
8.0 | .NET | SDK | dotnet-sdk-8.0 |
ヒント
.NET アプリを作成していない場合は、.NET ランタイムを含み、ASP.NET Core アプリもサポートしている ASP.NET Core ランタイムをインストールします。
一部の環境変数は、インストール後の .NET がどのように実行されるかに影響します。 詳しくは、「.NET SDK と CLI 環境変数」をご覧ください。
.NET をアンインストールする
パッケージ マネージャーを使用して .NET をインストールした場合は、apt-get remove
コマンドを使用して同じ方法でアンインストールします。
sudo apt-get remove dotnet-sdk-6.0
詳しくは、「.NET をアンインストールする」をご覧ください。
プレビュー バージョンをインストールする
.NET のプレビューおよびリリース候補バージョンは、パッケージ リポジトリでは入手できません。 .NET のプレビューとリリース候補は、次のいずれかの方法でインストールできます。
プレビュー バージョンの削除
パッケージ マネージャーを使用して .NET のインストールを管理しているとき、以前、プレビュー リリースをインストールしている場合、競合が発生することがあります。 パッケージ マネージャーは、プレビューではないリリースを .NET の以前のバージョンとして解釈することがあります。 プレビューではないリリースをインストールするには、最初にプレビュー バージョンをアンインストールします。 .NET をアンインストールする方法の詳細については、「.NET ランタイムと SDK を削除する方法」を参照してください。
APT を使用して .NET を更新する
パッケージ マネージャーを使用して .NET をインストールした場合は、apt upgrade
コマンドを使用してパッケージをアップグレードできます。 たとえば、次のコマンドは、dotnet-sdk-9.0
パッケージを最新バージョンにアップグレードします。
sudo apt update
sudo apt upgrade dotnet-sdk-9.0
ヒント
.NET のインストール後に Linux ディストリビューションをアップグレードした場合は、Microsoft パッケージ リポジトリの再構成が必要な場合があります。 現在のディストリビューション バージョンのインストール手順を実行して、.NET 更新プログラムの適切なパッケージ リポジトリにアップグレードします。
トラブルシューティング
Ubuntu 22.04 以降では、一部の .NET しか使用できないと思われる状況が発生する場合があります。 たとえば、ランタイムと SDK をインストールしたものの、dotnet --info
を実行するとランタイムのみが一覧表示されます。 この状況は、2 つの異なるパッケージ ソースの使用に関連する場合があります。 組み込みの Ubuntu 22.04 と Ubuntu 22.10 パッケージ フィードには一部のバージョンの .NET が含まれていますが、すべてではありません。また、Microsoft フィードからも .NET をインストールした可能性があります。 この問題を解決する方法について詳しくは、「Linux 上で見つからないファイルに関連する .NET エラーのトラブルシューティング」をご覧ください。
APT の問題
このセクションでは、APT を使用して .NET をインストールするときに発生するおそれがある一般的なエラーについて説明します。
パッケージが見つからない
重要
パッケージ マネージャーを使った Microsoft パッケージ フィードからの .NET のインストールでは、x64 アーキテクチャのみがサポートされます。 Arm などの他のアーキテクチャは、Microsoft パッケージ フィードではサポートされていません。
パッケージ マネージャーを使用せずに .NET をインストールする方法の詳細については、次の記事のいずれかを参照してください。
見つからない \ 一部のパッケージをインストールできませんでした
Note
この情報は、.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-certificates
- 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
- libunwind8 (22.x 以降の場合)
- zlib1g
依存関係は apt install
コマンドを使用してインストールできます。 次のスニペットは、zlib1g
ライブラリのインストールを示しています。
sudo apt install zlib1g
.NET アプリで System.Drawing.Common アセンブリを使用する場合は、 libgdiplus をインストールする必要があります。 詳細については、「 System.Drawing.Common は Windows でのみサポートされていますを参照してください。
最新バージョンの libgdiplus をインストールするには、システムに Mono リポジトリを追加します。
次のステップ
.NET