Debian に .NET SDK または .NET ランタイムをインストールする

この記事では、Debian に .NET をインストールする方法について説明します。 Debian のバージョンがサポート対象外である場合、.NET もそのバージョンでサポート対象外となります。 ただし、サポート対象外の場合でも、これらの手順がそれらのバージョンで .NET を実行するのに役立つことがあります。

.NET アプリを開発する場合は、SDK をインストールします (これにはランタイムが含まれます)。 または、アプリを実行する必要があるだけの場合は、ランタイムをインストールします。 ランタイムをインストールする場合は、ASP.NET Core ランタイムをインストールすることをお勧めします。これには .NET と ASP.NET の Core ランタイムの両方が含まれているためです。

既に SDK またはランタイムをインストールしている場合は、dotnet --list-sdksdotnet --list-runtimes コマンドを使用して、インストールされているバージョンを確認します。 詳細については、.NET が既にインストールされていることを確認する方法に関するページを参照してください。

重要

パッケージ マネージャーによるインストールは、x64 アーキテクチャでのみサポートされています。 Arm などの他のアーキテクチャについては、Snap、インストーラー スクリプト、手動のバイナリ インストールなど、他の方法で .NET をインストールする必要があります。

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

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

次の表は、現在サポートされている .NET リリースと、それらがサポートされている Debian のバージョンの一覧です。 これらのバージョンは、.NET のバージョンがサポート終了になるか、Debian のバージョンの有効期限が切れるまでサポートされます。

  • ✔️ は、Debian または .NET のバージョンがまだサポートされていることを示します。
  • ❌ は、Debian または .NET のバージョンがその Debian のリリースではサポートされていないことを示しています。
  • Debian のバージョンと .NET のバージョンの両方に ✔️ が付いている場合、その OS と .NET の組み合わせはサポートされています。
Debian .NET Core 3.1 .NET 5 .NET 6
✔️ 11 ✔️ 3.1 ✔️ 5.0 ✔️ 6.0
✔️ 10 ✔️ 3.1 ✔️ 5.0 ✔️ 6.0
✔️ 9 ✔️ 3.1 ✔️ 5.0 ✔️ 6.0
8 ❌ 3.1 ❌ 5.0 ❌ 6.0

次のバージョンの .NET は、❌ サポート対象外となりました。 これらのダウンロードは、まだ公開されています。

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

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

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

プレビュー バージョンの削除

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

Debian 11 ✔️

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

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

wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

重要

"パッケージ dotnet-sdk-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

重要

"パッケージ aspnetcore-runtime-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-6.0dotnet-runtime-6.0 で置き換えます。

sudo apt-get install -y dotnet-runtime-6.0

Debian 10 ✔️

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

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

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

重要

"パッケージ dotnet-sdk-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

重要

"パッケージ aspnetcore-runtime-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-6.0dotnet-runtime-6.0 で置き換えます。

sudo apt-get install -y dotnet-runtime-6.0

Debian 9 ✔️

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

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

wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/debian/9/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

SDK のインストール

.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

重要

"パッケージ dotnet-sdk-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ランタイムをインストールする

ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

重要

"パッケージ aspnetcore-runtime-6.0 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-6.0dotnet-runtime-6.0 で置き換えます。

sudo apt-get install -y dotnet-runtime-6.0

Debian 8 ❌

❌ このバージョンの Debian は現在サポートされていないことに注意してください。

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

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

wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/debian/8/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

SDK のインストール

.NET Core SDK を使用すると、.NET Core を使用してアプリを開発できます。 .NET Core SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET Core SDK をインストールするには、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-2.1

重要

"パッケージ dotnet-sdk-2.1 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ランタイムをインストールする

.NET Core ランタイムを使用すると、ランタイムを含まない .NET Core を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET Core の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-2.1

重要

"パッケージ aspnetcore-runtime-2.1 が見つかりません" のようなエラー メッセージが表示される場合は、「APT のトラブルシューティング」セクションをご覧ください。

ASP.NET Core ランタイムの代替手段として、ASP.NET Core サポートを含まない .NET Core ランタイムをインストールできます。それには、前のコマンドの aspnetcore-runtime-2.1dotnet-runtime-2.1 で置き換えます。

sudo apt-get install -y dotnet-runtime-2.1

その他のバージョンをインストールする方法

すべてのバージョンの .NET は、https://dotnet.microsoft.com/download/dotnet でダウンロードできますが、手動でのインストールが必要です。 パッケージ マネージャーを使用して、異なるバージョンの .NET をインストールすることもできます。 ただし、必要なバージョンを使用できない場合もあります。

パッケージ マネージャーのフィードに追加されるパッケージは、変更可能な形式で名前が付けられます (例: {product}-{type}-{version})。

  • product
    インストールする .NET 製品の種類。 有効なオプションは次のとおりです。

    • dotnet
    • aspnetcore
  • type
    SDK またはランタイムを選択します。 有効なオプションは次のとおりです。

    • SDK
    • ランタイム
  • version
    インストールする SDK またはランタイムのバージョン。 この記事では常に、サポートされている最新バージョンの手順について説明します。 有効なオプションは、次のようなリリース バージョンです。

    • 5.0
    • 3.1
    • 3.0
    • 2.1

    ダウンロードしようとしている SDK/ランタイムが Linux ディストリビューションで使用できない可能性があります。 サポートされているディストリビューションの一覧が必要な場合、「Linux に .NET をインストールする」を参照してください。

使用例

  • ASP.NET Core 5.0 ランタイムをインストールする: aspnetcore-runtime-5.0
  • .NET Core 2.1 ランタイムをインストールする: dotnet-runtime-2.1
  • .NET 5 SDK をインストールする: dotnet-sdk-5.0
  • .NET Core 3.1 SDK をインストールする: dotnet-sdk-3.1

パッケージがない

パッケージ バージョンの組み合わせが正しくない場合は、使用できません。 たとえば、ASP.NET Core SDK がない場合、SDK コンポーネントは .NET SDK に含まれています。 値 aspnetcore-sdk-2.2 は正しくありません。dotnet-sdk-2.2 にする必要があります .NET によってサポートされている Linux ディストリビューションの一覧については、.NET の依存関係と要件に関するページを参照してください。

APT を使用して .NET を更新する

.NET で新しい修正プログラムのリリースを利用できる場合は、次のコマンドを使用して、APT で簡単にアップグレードすることができます。

sudo apt-get update
sudo apt-get upgrade

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

APT のトラブルシューティング

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

パッケージが見つからない

重要

パッケージ マネージャーによるインストールは、x64 アーキテクチャでのみサポートされています。 Arm などの他のアーキテクチャについては、Snap、インストーラー スクリプト、手動のバイナリ インストールなど、他の方法で .NET をインストールする必要があります。

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

見つからない \ 一部のパッケージをインストールできませんでした

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

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

  • {dotnet-package}
    これは、aspnetcore-runtime-3.1 など、インストールする .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/debian/{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 apt-transport-https && \
  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 Core をインストールする場合、または自己完結型アプリを公開する場合は、次のライブラリがインストールされていることを確認する必要があります。

  • libc6
  • libgcc-s1
  • libgssapi-krb5-2
  • libicu52 (8.x 用)
  • libicu57 (9.x 用)
  • libicu63 (10.x 用)
  • libicu67 (11.x 用)
  • libssl1.0.0 (8.x 用)
  • libssl1.1 (9.x - 11.x 用)
  • libstdc++6
  • zlib1g

System.Drawing.Common アセンブリを使用する .NET Core アプリの場合は、次の依存関係も必要です。

  • libgdiplus (バージョン 6.0.1 以降)

    警告

    最新バージョンの libgdiplus をインストールするには、システムに Mono リポジトリを追加します。 詳細については、「https://www.mono-project.com/download/stable/」を参照してください。

次の手順