Ubuntu に .NET SDK または .NET ランタイムをインストールする
この記事では、Ubuntu に .NET をインストールする方法について説明します。 Microsoft パッケージ リポジトリには、Ubuntu で現在、または以前にサポートされていたすべてのバージョンの .NET が含まれています。 Ubuntu 22.04 以降では、Ubuntu パッケージ フィードで一部のバージョンの .NET を使用できます。 使用可能なバージョンの詳細については、「 サポートされているディストリビューション 」セクションを参照してください。
警告
Microsoft と Ubuntu の両方のパッケージ リポジトリを .NET 用に使用することは避けてください。これにより、アプリが特定のバージョンの .NET を解決しようとすると問題が発生するためです。
Method | 長所 | 短所 |
---|---|---|
パッケージ マネージャー (Microsoft フィード) |
|
|
パッケージ マネージャー (Ubuntu フィード) |
|
|
スクリプト \ 手動抽出 |
|
|
.NET のインストール方法を決定する
Ubuntu のバージョンが組み込みの Ubuntu フィードを介して .NET をサポートしている場合、これらのビルドの .NET のサポートは Canonical によって提供され、ビルドはさまざまなワークロードに最適化される場合があります。 Microsoft では、Microsoft パッケージ リポジトリ フィードでパッケージのサポートを提供しています。
次のセクションを使用して、.NET のインストール方法を決定します。
- Ubuntu 22.10 を使用しており、.NET 6.0 または .NET 7.0 のみが必要です
- Ubuntu 22.04 を使用しており、.NET 6.0 のみが必要です
- Ubuntu 22.04 を使用しており、.NET 7.0 が必要です
- 22.04 より前のバージョンの Ubuntu を使用しています
- 、、または など
powershell
mdatp
、他の Microsoft パッケージを使用していますmssql
- .NET アプリを作成する
- コンテナー、クラウド、または継続的インテグレーションのシナリオで .NET アプリを実行する
- Ubuntu ディストリビューションに必要な .NET バージョンが含まれていないか、サポート対象外の .NET バージョンが必要です
- プレビュー バージョンをインストールする
- APT を使用したくない
- Arm ベースの CPU を使用しています
Ubuntu 22.10 を使用しており、.NET 6.0 または .NET 7.0 のみが必要です
Ubuntu フィードを使用して .NET をインストールします。 詳細については、「 Ubuntu 22.10 に .NET をインストールする」を参照してください。
、 などのpowershell
mdatp
mssql
他の Microsoft リポジトリ パッケージを使用する場合は、Microsoft リポジトリによって提供される .NET パッケージの優先順位を解除する必要があります。 パッケージの優先順位を解除する方法については、「 Linux ディストリビューションで .NET パッケージが提供され、それらを使用する」を参照してください。
Ubuntu 22.04 を使用しており、.NET 6.0 のみが必要です
Ubuntu フィードを使用して .NET をインストールします。 詳細については、「 Ubuntu 22.04 に .NET をインストールする」を参照してください。
、 などのpowershell
mdatp
mssql
他の Microsoft リポジトリ パッケージを使用する場合は、Microsoft リポジトリによって提供される .NET パッケージの優先順位を解除する必要があります。 パッケージの優先順位を解除する方法については、「 Linux ディストリビューションで .NET パッケージが提供され、それらを使用する」を参照してください。
Ubuntu 22.04 を使用しており、.NET 7.0 が必要です
.NET 7 は、既定の Ubuntu パッケージ フィードには用意されていません。 Microsoft パッケージ リポジトリを追加し、.NET をインストールする必要があります。 詳細については、「 Microsoft パッケージ リポジトリに登録してインストールする 」セクションを参照してください。
22.04 より前のバージョンの Ubuntu を使用しています
バージョン固有の Ubuntu ページの手順を使用します。
Ubuntu のバージョンで サポートされている .NET のバージョンの詳細については、「サポートされているディストリビューション」セクションを参照してください。 サポートされていないバージョンをインストールする場合は、「 Microsoft パッケージ リポジトリを登録する」を参照してください。
、、または などpowershell
mdatp
、他の Microsoft パッケージを使用していますmssql
組み込みの Ubuntu フィードを使用して Ubuntu バージョンが .NET をサポートしている場合は、.NET をインストールするフィードを決定する必要があります。 [ サポートされているディストリビューション ] セクションには、パッケージ フィードで使用できる .NET のバージョンを示すテーブルが用意されています。
Ubuntu フィードから .NET パッケージをソースにする場合は、Microsoft リポジトリによって提供される .NET パッケージの優先順位を解除する必要があります。 パッケージの優先順位を解除する方法については、「 Linux ディストリビューションで .NET パッケージが提供され、それらを使用する」を参照してください。
.NET アプリを作成する
ランタイムに使用するのと同じパッケージ ソースを SDK に使用します。 たとえば、Ubuntu 22.04 と .NET 6 を使用しているが、.NET 7 を使用していない場合は、組み込みの Ubuntu フィードを使用して .NET をインストールすることをお勧めします。 ただし、Canonical for Ubuntu 22.04 によって提供されていない .NET 7 に移行する場合は、 Microsoft パッケージ リポジトリに登録してインストールする必要があります。 「.NET のインストール方法を決定する」セクションのその他の推奨事項を確認します。
コンテナー、クラウド、または継続的インテグレーションのシナリオで .NET アプリを実行する
Ubuntu バージョンに必要な .NET バージョンが用意されている場合は、組み込みのフィードからインストールします。 それ以外 の場合は、Microsoft パッケージ リポジトリを登録 し、そのリポジトリから .NET をインストールします。 「サポートされているディストリビューション」セクションの情報を確認します。
必要な .NET のバージョンが使用できない場合は、 dotnet-install スクリプトを使用してみてください。
Ubuntu ディストリビューションに必要な .NET バージョンが含まれていないか、サポート対象外の .NET バージョンが必要です
APT と Microsoft パッケージ リポジトリを使用することをお勧めします。 詳細については、「 Microsoft パッケージ リポジトリに登録してインストールする 」セクションを参照してください。
プレビュー バージョンをインストールする
.NET をインストールするには、次のいずれかの方法を使用します。
APT を使用したくない
自動インストールが必要な場合は、 Linux インストール スクリプトを使用します。
.NET インストール エクスペリエンスを完全に制御する場合は、tarball をダウンロードし、.NET を手動でインストールします。 詳細については、「 手動インストール」を参照してください。
Arm ベースの CPU を使用しています
.NET をインストールするには、次のいずれかの方法を使用します。
サポートされているディストリビューション
次の表は、現在サポートされている .NET リリースと、それらがサポートされている Ubuntu のバージョンの一覧です。 各リンクは、特定の Ubuntu バージョン ページに移動し、そのバージョンの Ubuntu 用に .NET をインストールする方法に関する具体的な手順を示します。
Ubuntu | サポートされている .NET バージョン | Ubuntu フィードで使用可能 | Microsoft フィードで使用できる |
---|---|---|---|
22.10 | 7.0, 6.0 | 7.0, 6.0 | 7.0, 6.0, 3.1 |
22.04 (LTS) | 7.0, 6.0 | 6.0 | 7.0, 6.0, 3.1 |
20.04 (LTS) | 7.0, 6.0 | なし | 7.0. 6.0, 5.0, 3.1, 2.1 |
18.04 (LTS) | 7.0, 6.0 | なし | 7.0. 6.0, 5.0, 3.1, 2.2, 2.1 |
16.04 (LTS) | 6.0 | なし | 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 |
Ubuntu のバージョンがサポート対象外である場合、.NET もそのバージョンでサポート対象外となります。
次のバージョンの .NET は、❌ サポート対象外となりました。
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
Microsoft パッケージ リポジトリを登録する
Microsoft パッケージ リポジトリには、 Ubuntu のバージョンで以前または現在サポートされていたすべてのバージョンの .NET が含まれています。 Ubuntu のバージョンに .NET パッケージが用意されている場合は、Ubuntu パッケージの優先順位を解除し、Microsoft リポジトリを使用する必要があります。 パッケージの優先順位を解除する手順については、「 Linux ディストリビューションで提供されていない .NET のバージョンが必要です」を参照してください。
重要
パッケージ マネージャーによるインストールは、x64 アーキテクチャでのみサポートされています。 Arm などの他のアーキテクチャでは、インストーラー スクリプトや手動インストールなど、他の方法で .NET をインストールする必要があります。
プレビュー リリースは、Microsoft パッケージ リポジトリでは使用 できません 。 詳細については、「 プレビュー バージョンのインストール」を参照してください。
注意事項
すべての .NET インストールを管理するには、1 つのリポジトリのみを使用することをお勧めします。 Ubuntu リポジトリを使用して .NET をインストールしたことがある場合は、.NET パッケージのシステムをクリーンアップし、Ubuntu フィードを無視するように APT を構成する必要があります。 これを行う方法の詳細については、「 Linux ディストリビューションで提供されていない .NET のバージョンが必要です」を参照してください。
APT を使用したインストールは、少ないコマンドで実行できます。 .NET をインストールする前に、次のコマンドを実行して、信頼されたキーの一覧に Microsoft パッケージ署名キーを追加し、パッケージ リポジトリを追加します。
ターミナルを開き、次のコマンドを実行します。
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/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
.NET のインストール
Microsoft パッケージ リポジトリを登録した後、または Ubuntu の既定のフィードのバージョンで .NET パッケージがサポートされている場合は、 コマンドを使用してパッケージ マネージャーを使用して .NET をapt install <package-name>
インストールできます。 を、インストールする .NET パッケージの名前に置き換えます <package-name>
。 たとえば、.NET SDK 7.0 をインストールするには、 コマンド を使用します apt install dotnet-sdk-7.0
。 次の表に、現在サポートされている .NET パッケージの一覧を示します。
製品 | Type | パッケージ | |
---|---|---|---|
7.0 | ASP.NET Core | ランタイム | aspnetcore-runtime-7.0 |
7.0 | .NET | ランタイム | dotnet-runtime-7.0 |
7.0 | .NET | SDK | dotnet-sdk-7.0 |
6.0 | ASP.NET Core | ランタイム | aspnetcore-runtime-6.0 |
6.0 | .NET | ランタイム | dotnet-runtime-6.0 |
6.0 | .NET | SDK | dotnet-sdk-6.0 |
サポートされていないバージョンの .NET をインストールする場合は、「 サポートされているディストリビューション 」セクションを確認して、そのバージョンの .NET が使用可能かどうかを確認します。 次に、インストールする .NET の バージョン を置き換える必要があります。 たとえば、ASP.NET Core 2.1 をインストールするには、パッケージ名 を使用しますaspnetcore-runtime-2.1
。
ヒント
.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-7.0
最新バージョンにアップグレードします。
sudo apt update
sudo apt upgrade dotnet-sdk-7.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 をインストールするときに発生するおそれがある一般的なエラーについて説明します。
パッケージが見つからない
重要
パッケージ マネージャーによるインストールは、x64 アーキテクチャでのみサポートされています。 Arm などの他のアーキテクチャについては、Snap、インストーラー スクリプト、手動のバイナリ インストールなど、他の方法で .NET をインストールする必要があります。
パッケージ マネージャーを使用せずに .NET をインストールする方法の詳細については、次の記事のいずれかを参照してください。
見つからない \ 一部のパッケージをインストールできませんでした
注意
この情報は、.NET が Microsoft パッケージ フィードからインストールされている場合にのみ適用されます。
"パッケージ {dotnet-package} が見つかりません" や "一部のパッケージをインストールできませんでした" のようなエラー メッセージが表示される場合は、次のコマンドを実行します。
次の一連のコマンドには、2 つのプレースホルダーがあります。
{dotnet-package}
これは、aspnetcore-runtime-7.0
など、インストールする .NET パッケージを表します。 これは、次のsudo apt-get install
コマンドで使用されます。{os-version}
これは、使用しているディストリビューションのバージョンを表します。 これは、次のwget
コマンドで使用されます。 ディストリビューションのバージョンは、Ubuntu での20.04
や Debian での10
などの数値です。
まず、パッケージ リストを消去してみてください。
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
次に、.NET を再度インストールしてください。 それでも解決しない場合は、次のコマンドを使用して手動インストールを実行できます。
sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
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 を手動でインストールするか、自己完結型アプリを発行する場合は、次の依存関係をインストールしてアプリを実行する必要があります。
- libc6
- libgcc1
- libgcc-s1 (22.x の場合)
- libgssapi-krb5-2
- libicu55 (16.x 用)
- libicu60 (18.x 用)
- libicu66 (20.x 用)
- libicu70 (22.04 の場合)
- libicu71 (22.10 の場合)
- liblttng-ust1 (22.x の場合)
- libssl1.0.0 (16.x の場合)
- libssl1.1 (18.x、20.x 用)
- libssl3 (22.x の場合)
- libstdc++6
- libunwind8 (22.x の場合)
- zlib1g
.NET アプリで System.Drawing.Common アセンブリを使用する場合は、libgdiplus もインストールする必要があります。 System.Drawing.Common は Linux ではサポートされなくなったため、これは .NET 6 でのみ機能し、ランタイム構成スイッチを設定するSystem.Drawing.EnableUnixSupport
必要があります。
Mono リポジトリをシステムに追加することで、libgdiplus の最新バージョンをインストールできます。