トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
この記事では、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 を 22.04 以降にアップグレードしますか? 最初に .NET をアンインストールすることを検討してください。
パッケージ マネージャーを使用して Microsoft パッケージ リポジトリから .NET をインストールした場合、Ubuntu のアップグレード後にパッケージのミックスアップの問題が発生します。 Canonical が Ubuntu 22.04 (およびそれ以降のバージョン) のパッケージ フィードに .NET を発行したので、パッケージ マネージャーは以前にインストールした .NET バージョンについて認識しません。 パッケージを最新の .NET にアップグレードすることはできません。 まず、それらをアンインストールしてから、[Ubuntu パッケージ リポジトリ] から再インストールします。
お使いの Ubuntu バージョンが、組み込みフィードまたは .NET バックポート Ubuntu フィードを通じて .NET をサポートしている場合、.NET のビルドのサポートは Canonical によって提供されており、ビルドはさまざまなワークロードに対し最適化される可能性があります。 Microsoft は、Microsoft パッケージ リポジトリ フィードのパッケージに対してサポートを提供します。
次のセクションを使用して、.NET のインストール方法を決めます。
powershell
、mdatp
、または mssql
など、他の Microsoft パッケージを使用しているUbuntu フィードを使用して .NET をインストールします。 詳細については、次のページを参照してください。
重要
.NET 8 SDK と Ubuntu 22.04 を使用している場合は、Canonical によって提供される SDK バージョンが常に .1xx 機能バンドにあることを理解。 新しい機能帯のリリースを使用する場合は、Microsoft フィードを使用して SDK をインストールしてください。 リポジトリ フィード間の切り替えの影響を理解するには、Linux 上の .NET パッケージの混在に関する記事で情報を確認してください。
powershell
、mdatp
、または mssql
など、他の Microsoft パッケージを使用するために Microsoft リポジトリをインストールする場合は、Microsoft リポジトリで提供される .NET パッケージの優先順位を下げる必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションに .NET パッケージが用意されており、それを使用する必要があります」をご覧ください。
バージョン固有の Ubuntu ページの手順を実行します。
Ubuntu のバージョンでサポートされている .NET のバージョンについて詳しくは、「サポートされているディストリビューション」セクションをご覧ください。 サポート対象外のバージョンをインストールする場合は、「Microsoft パッケージ リポジトリを登録する」をご覧ください。
お使いの Ubuntu バージョンで組み込みの Ubuntu フィードを介して .NET がサポートされている場合は、どのフィードで .NET をインストールするかを決める必要があります。 「サポートされているディストリビューション」セクションに、パッケージ フィードで入手できる .NET バージョンの一覧表があります。
Ubuntu フィードを .NET パッケージのソースにする場合は、Microsoft リポジトリで提供される .NET パッケージの優先順位を下げる必要があります。 パッケージの優先順位を下げる方法については、「Linux ディストリビューションに .NET パッケージが用意されており、それを使用する必要があります」をご覧ください。
ランタイムに使用するものと同じパッケージ ソースを SDK に使用します。 Ubuntu フィードを使用して .NET をインストールすることをお勧めします。 ただし、別のソースから .NET をインストールする場合 (たとえば、上位の SDK 機能バンドにアクセスするために Microsoft パッケージ リポジトリを使用する) は、.NET をアンインストールして、Ubuntu フィードからの .NET パッケージを無視するようにパッケージ マネージャーを構成し、他のソースから再インストールする必要があります。
「.NET のインストール方法を決める」セクションの、他の提案をご確認ください。
お使いの Ubuntu バージョンで必要な .NET バージョンが入手できる場合は、Ubuntu のフィードからインストールします。 それ以外の場合は、Microsoft パッケージ リポジトリを登録し、そのリポジトリから .NET をインストールします。 「サポートされているディストリビューション」セクションの情報をご確認ください。
必要な .NET バージョンを入手できない場合は、dotnet-install スクリプトを使用してみてください。
APT と Microsoft パッケージ リポジトリを使用することをお勧めします。 詳しくは、「Microsoft パッケージ リポジトリに登録してインストールする」セクションをご覧ください。
次のいずれかの方法で .NET をインストールします。
自動インストールが必要な場合は、Linux インストール スクリプトを使用します。
.NET インストール エクスペリエンスをすべて制御したい場合は、tarball をダウンロードし、手動で .NET をインストールします。 詳しくは、「手動インストール」をご覧ください。
Ubuntu バージョンに必要な .NET バージョンが用意されている場合は、組み込みのフィードからインストールします。 「サポートされているディストリビューション」セクションの情報をご確認ください。
必要な .NET のバージョンが入手できない場合は、次のいずれかの方法を使用して .NET をインストールしてみてください。
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 は、❌ サポート対象外となりました。
Ubuntu の .NET バックポート パッケージ リポジトリには、組み込みの Ubuntu フィードでは使用できないバージョンの .NET が用意されています。 「サポートされているディストリビューション」セクションに、パッケージ フィードで入手できる .NET バージョンの一覧表があります。 Canonical は、このパッケージ リポジトリに含まれるパッケージのメンテナンスを行い、Microsoft が提供するサポートの有効期間、または特定の Ubuntu バージョンのサポート期間を超えない範囲でベスト エフォート サポートを提供します。
詳細については、「Ubuntu の .NET バックポート パッケージ リポジトリの Web ビュー」を参照してください。
ターミナルを開き、次のコマンドを実行します。
sudo add-apt-repository ppa:dotnet/backports
ヒント
apt update
を呼び出す必要はありません。 add-apt-repository
コマンドは、既定でこれを行います。
注意
Ubuntu の .NET バックポート パッケージ リポジトリは、組み込みの Ubuntu フィードと互換性があります。 そのため、組み込みの Ubuntu フィード内の .NET パッケージを無視するようにパッケージ マネージャーを構成する必要はありません。
Ubuntu の .NET バックポート パッケージ リポジトリからパッケージを使用しなくなった場合は、登録を解除できます。 ターミナルを開き、次のコマンドを実行します。
sudo add-apt-repository --remove ppa:dotnet/backports
重要
Ubuntu の .NET バックポート パッケージ リポジトリの登録を解除しても、パッケージはアンインストールされません。
add-apt-repository(1)
ユーティリティは、ほとんどの Ubuntu インストールにプレインストールされています。
add-apt-repository
コマンドが見つからなかったというエラー メッセージが表示された場合は、このコマンドを提供する software-properties-common
パッケージをインストールする必要があります。 ターミナルを開き、次のコマンドを実行します。
sudo apt update
sudo apt install software-properties-common
重要
これは、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 バージョンを確認できます。
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 をインストールした場合は、apt-get remove
コマンドを使用して同じ方法でアンインストールします。
sudo apt-get remove dotnet-sdk-6.0
詳しくは、「.NET をアンインストールする」をご覧ください。
.NET のプレビューおよびリリース候補バージョンは、パッケージ リポジトリでは入手できません。 .NET のプレビューとリリース候補は、次のいずれかの方法でインストールできます。
パッケージ マネージャーを使用して .NET のインストールを管理しているとき、以前、プレビュー リリースをインストールしている場合、競合が発生することがあります。 パッケージ マネージャーは、プレビューではないリリースを .NET の以前のバージョンとして解釈することがあります。 プレビューではないリリースをインストールするには、最初にプレビュー バージョンをアンインストールします。 .NET をアンインストールする方法の詳細については、「.NET ランタイムと SDK を削除する方法」を参照してください。
パッケージ マネージャーを使用して .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 を使用して .NET をインストールするときに発生するおそれがある一般的なエラーについて説明します。
重要
パッケージ マネージャーを使った 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 を手動でインストールする場合、または自己完結型アプリを発行する場合は、これらの依存関係をインストールしてアプリを実行する必要があります。
依存関係は apt install
コマンドを使用してインストールできます。 次のスニペットは、zlib1g
ライブラリのインストールを示しています。
sudo apt install zlib1g
.NET アプリで System.Drawing.Common アセンブリを使用する場合は、 libgdiplus をインストールする必要があります。 詳細については、「 System.Drawing.Common は Windows でのみサポートされていますを参照してください。
最新バージョンの libgdiplus をインストールするには、システムに Mono リポジトリを追加します。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。