インストール スクリプトを使用するか、バイナリを抽出して Linux に .NET をインストールする
この記事では、インストール スクリプトを使用するか、バイナリを抽出して、Linux に .NET SDK または .NET Runtime をインストールする方法について説明します。 組み込みパッケージ マネージャーがサポートされているディストリビューションの一覧については、「Linux に .NET をインストールする」を参照してください。
.NET アプリを開発する場合は、SDK をインストールします (これにはランタイムが含まれます)。 または、アプリを実行する必要があるだけの場合は、ランタイムをインストールします。 ランタイムをインストールする場合は、ASP.NET Core ランタイムをインストールすることをお勧めします。これには .NET と ASP.NET の Core ランタイムの両方が含まれているためです。
コマンドと dotnet --list-runtimes
コマンドをdotnet --list-sdks
使用して、インストールされているバージョンを確認します。 詳細については、.NET が既にインストールされていることを確認する方法に関するページを参照してください。
.NET のリリース
サポートされるリリースには、長期サポート (LTS) リリースと Standard Term Support (STS) の 2 種類があります。 すべてのリリースの品質は同じです。 唯一の違いは、サポートの長さです。 LTS リリースでは、3 年間無料のサポートとパッチが提供されます。 STS リリースでは、18 か月間の無料サポートとパッチが提供されます。 詳細については、「 .NET サポート ポリシー」を参照してください。
次の表に、.NET (および .NET Core) の各バージョンのサポート状態を示します。
✔️ Supported | ❌ サポートされていない |
---|---|
7 (STS) | 5 |
6 (LTS) | 3.1 |
3.0 | |
2.2 | |
2.1 | |
2.0 | |
1.1 | |
1.0 |
依存関係
.NET をインストールするときに、特定の依存関係がインストールされない可能性があります (手動インストールのときなど)。 次の一覧に、Microsoft によってサポートされていて、インストールが必要な可能性のある依存関係がある Linux ディストリビューションの詳細を示します。 詳細については、ディストリビューションのページを確認してください。
依存関係に関する一般的な情報については、「自己完結型 Linux アプリケーション」を参照してください。
RPM の依存関係
お使いのディストリビューションが前の一覧になく、RPM ベースの場合は、次の依存関係が必要になることがあります。
- krb5-libs
- libicu
- openssl-libs
ターゲット ランタイム環境の OpenSSL バージョンが 1.1 以降である場合は、compat-openssl10 をインストールする必要があります。
DEB の依存関係
お使いのディストリビューションが前の一覧になく、Debian ベースの場合は、次の依存関係が必要になることがあります。
- libc6
- libgcc1
- libgssapi-krb5-2
- libicu67
- libssl1.1
- libstdc++6
- zlib1g
共通の依存関係
.NET アプリで System.Drawing.Common アセンブリを使用する場合は、libgdiplus もインストールする必要があります。 System.Drawing.Common は Linux ではサポートされなくなったため、これは .NET 6 でのみ機能し、ランタイム構成スイッチを設定するSystem.Drawing.EnableUnixSupport
必要があります。
通常、Mono リポジトリをシステムに追加することで、最新バージョンの libgdiplus をインストールできます。
スクリプトでのインストール
dotnet-install スクリプトは、SDK およびランタイムのインストールの自動化および管理者以外によるインストールのために使用されます。 スクリプトは から https://dot.net/v1/dotnet-install.shダウンロードできます。この方法で .NET をインストールする場合は、Linux ディストリビューションに必要な依存関係をインストールする必要があります。 特定の Linux ディストリビューションについては、 Linux への .NET のインストールに関 する記事のリンクを参照してください。
重要
スクリプトを実行するには Bash が必要です。
スクリプトは を使用して wget
ダウンロードできます。
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
このスクリプトを実行する前に、このスクリプトを実行可能ファイルとして実行する許可を付与する必要があります。
sudo chmod +x ./dotnet-install.sh
このスクリプトでは、既定で最新の 長期サポート (LTS) SDK バージョン (.NET 6) がインストールされます。 (LTS) バージョンではない可能性がある最新リリースをインストールするには、 パラメーターを --version latest
使用します。
./dotnet-install.sh --version latest
SDK の代わりに .NET ランタイムをインストールするには、--runtime
パラメーターを使用します。
./dotnet-install.sh --version latest --runtime aspnetcore
パラメーターを使用して特定のメジャー バージョンを --channel
インストールして、特定のバージョンを示すことができます。 次のコマンドは、.NET 7.0 SDK をインストールします。
./dotnet-install.sh --channel 7.0
詳細については、「dotnet-install スクリプト リファレンス」をご覧ください。
コマンド ラインで .NET を有効にするには、「 システム全体で環境変数を設定する」を参照してください。
手動インストール
パッケージ マネージャーの代わりに、SDK とランタイムをダウンロードして手動でインストールすることもできます。 手動インストールは、継続的インテグレーション テストの一環として、またはサポートされていない Linux ディストリビューションで、よく使用されます。 開発者またはユーザーの場合は、パッケージ マネージャーを使用することをお勧めします。
SDK またはランタイムの バイナリ リリースを次のいずれかのサイトからダウンロードします。 .NET SDK には、対応するランタイムが含まれています。
ダウンロードしたファイルを抽出し、 コマンドを export
使用して抽出したフォルダーの場所に設定 DOTNET_ROOT
し、.NET が PATH にあることを確認します。 エクスポート DOTNET_ROOT
すると、.NET CLI コマンドがターミナルで使用できるようになります。 .NET 環境変数の詳細については、「 .NET SDK と CLI 環境変数」を参照してください。
あるいは、.NET バイナリのダウンロード後、ランタイムを抽出する目的でファイルが保存されるディレクトリから次のコマンドを実行できます。 次のコマンドを実行すると、.NET CLI コマンドがターミナルで使用できるようになり、必要な環境変数が設定されます。 DOTNET_FILE
値は必ず、ダウンロードしたバイナリの名前に変更してください。
DOTNET_FILE=dotnet-sdk-7.0.100-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet
mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
上記のインストール スクリプトアプローチでは、異なるバージョンを別々の場所にインストールできるため、どのアプリで使用するかを明示的に選択できます。
環境変数をシステム全体に設定する
前のインストール スクリプトを使用した場合、設定された変数は現在のターミナル セッションにのみ適用されます。 それらをシェル プロファイルに追加します。 Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。
- Bash シェル: ~/.bash_profile、 ~/.bashrc
- Korn シェル: ~/.kshrc または .profile
- Z シェル: ~/.zshrc または .zprofile
シェル プロファイルに次の 2 つの環境変数を設定します。
DOTNET_ROOT
この変数は、.NET をインストールした先のフォルダーに設定されます (
$HOME/.dotnet
など)。export DOTNET_ROOT=$HOME/.dotnet
PATH
この変数には、
DOTNET_ROOT
フォルダーとユーザーの .dotnet/tools フォルダーの両方を含める必要があります。export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools