dotnet-install スクリプト リファレンス
名前
dotnet-install.ps1
| dotnet-install.sh
- .NET SDK と共有ランタイムをインストールするために使用するスクリプトです。
構文
Windows の場合:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoCdn] [-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
[-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
[-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
[-Version <VERSION>]
Get-Help ./dotnet-install.ps1
Linux/macOS:
dotnet-install.sh [--architecture <ARCHITECTURE>] [--azure-feed]
[--channel <CHANNEL>] [--dry-run] [--feed-credential]
[--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
[--no-cdn] [--no-path] [--quality <QUALITY>]
[--runtime <RUNTIME>] [--runtime-id <RID>]
[--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
[--version <VERSION>]
dotnet-install.sh --help
bash スクリプトは PowerShell のスイッチも読み取るので、Linux/macOS システムのスクリプトで PowerShell のスイッチを使うことができます。
説明
dotnet-install
スクリプトによって、.NET CLI や共有ランタイムを含む .NET SDK の非管理者インストールが実行されます。 次の 2 つのスクリプトがあります。
- Windows 上で動作する PowerShell スクリプト。 インストール手順については、「Windows へのインストール」を参照してください。
- Linux/macOS で動作する bash スクリプト。 インストール手順については、「Linux へのインストール」および「macOS へのインストール」を参照してください。
注意
.NET によって利用統計情報が収集されます。 詳細とオプトアウトの方法については、「.NET SDK 製品利用統計情報」を参照してください。
目的
このスクリプトの用途は本来、次のような継続的インテグレーション (CI) シナリオ向けとして意図されています。
ユーザーの操作と管理者権限なしで SDK をインストールする必要がある。
SDK インストールを複数の CI 実行間で保持する必要がない。
イベントの一般的なシーケンス:
- CI がトリガーされます。
- CI により、これらのスクリプトの 1 つを利用して SDK がインストールされます。
- CI でその作業が完了し、SDK インストールを含む、一時的なデータが消去されます。
開発環境を設定するか、アプリを実行するには、これらのスクリプトではなく、インストーラーを使用します。
推奨されるバージョン
安定したバージョンのスクリプトを使用することをお勧めします。
- Bash (Linux、macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
スクリプトのソースは dotnet/install-scripts GitHub リポジトリにあります。
スクリプトの動作
スクリプトの動作は両方とも同じです。 CLI ビルド ドロップから ZIP/tarball ファイルをダウンロードし、既定の場所または -InstallDir|--install-dir
で指定された場所へのインストールに進みます。
既定では、インストール スクリプトは SDK をダウンロードしてインストールします。 共有ランタイムの取得だけを行いたい場合は、-Runtime|--runtime
引数を指定します。
既定では、スクリプトはインストールの場所を現在のセッションの $PATH に追加します。 -NoPath|--no-path
引数を指定することによってこの既定の動作をオーバーライドします。 スクリプトでは、DOTNET_ROOT
環境変数は設定されません。
重要
スクリプトはインストール場所をユーザーの PATH
環境変数に追加しません。手動で追加する必要があります。
スクリプトを実行する前に、オペレーティング システムがサポートされていることを確認してください。 詳細については、「Windows、Linux、macOS への .NET のインストール」を参照してください。
-Version|--version
引数を使用して、特定のバージョンをインストールすることができます。 バージョンには 3 つの部分からなるバージョン番号 (2.1.0
など) を指定する必要があります。 バージョンが指定されていない場合、スクリプトでは latest
バージョンがインストールされます。
インストール スクリプトでは、Windows 上のレジストリは更新されません。 zip 形式のバイナリがダウンロードされて、フォルダーにコピーされるだけです。 レジストリ キーの値を更新する必要がある場合は、.NET インストーラーを使用します。
オプション
-Architecture|--architecture <ARCHITECTURE>
インストールする .NET バイナリのアーキテクチャです。 使用できる値は、
<auto>
、amd64
、x64
、x86
、arm64
、arm
、s390x
、ppc64le
、およびriscv64
です。 既定値は<auto>
です。これは実行中の OS アーキテクチャを示します。-AzureFeed|--azure-feed
内部使用専用です。 別のストレージを使用して SDK アーカイブをダウンロードできます。 このパラメーターは、--no-cdn が false の場合にのみ使用されます。 既定値は、
https://dotnetcli.azureedge.net/dotnet
です。-Channel|--channel <CHANNEL>
インストールのソース チャネルを指定します。 次の値を指定できます。
STS
: 最新の標準期間サポート リリース。LTS
: 最新の長期サポート リリース。- 特定のリリースを表す A.B 形式の 2 部構成のバージョン (たとえば、
3.1
や8.0
)。 - 特定の SDK リリース (8.0.1xx や 8.0.2xx など) を表す、A.B.Cxx 形式の 3 部構成のバージョン。 5\.0 リリース以降で使用できます。
version
パラメーターは、latest
以外のバージョンが使用されている場合にchannel
パラメーターをオーバーライドします。既定値は
LTS
です。 .NET のサポート チャネルの詳細については、「.NET Support Policy」(.NET のサポート ポリシー) ページを参照してください。-DryRun|--dry-run
設定すると、スクリプトでインストールは実行されません。 代わりに、現在要求されているバージョンの .NET CLI を一貫してインストールするために使用するコマンド ラインが表示されます。 たとえば、バージョン
latest
を指定すると、そのバージョンのリンクが表示されるので、ビルド スクリプトで確定的にこのコマンドを使用できます。 また、自分でインストールまたはダウンロードしたい場合、バイナリの場所も表示されます。-FeedCredential|--feed-credential
Azure フィードに付加するクエリ文字列として使用されます。 非公開の BLOB ストレージ アカウントを使用するように URL を変更することができます。
--help
スクリプトのヘルプを出力します。 bash スクリプトのみに適用されます。 PowerShell の場合、
Get-Help ./dotnet-install.ps1
を使用します。-InstallDir|--install-dir <DIRECTORY>
インストール パスを指定します。 存在しない場合は、ディレクトリが作成されます。 既定値は、 %LocalAppData%\Microsoft\dotnet (Windows) または $HOME/.dotnet (Linux と macOS) です。 バイナリは、このディレクトリに直接配置されます。
-JSonFile|--jsonfile <JSONFILE>
SDK バージョンを決定するために使用される global.json ファイルへのパスを指定します。 global.json ファイルには
sdk:version
の値が必要です。-NoCdn|--no-cdn
Azure Content Delivery Network (CDN) からのダウンロードを無効にし、キャッシュされていないフィードを直接使用します。
-NoPath|--no-path
設定すると、インストール フォルダーは現在のセッションのパスにはエクスポートされません。 既定では、スクリプトによって PATH が変更されます。これにより、インストール後すぐに .NET CLI を使用できるようになります。
-ProxyAddress
設定すると、インストーラーで Web 要求を行うときにプロキシが使われます。 (Windows でのみ有効)。
-ProxyBypassList <LIST_OF_URLS>
ProxyAddress
で設定されている場合、プロキシをバイパスする URL をコンマ区切りの一覧で提供します。 (Windows でのみ有効)。-ProxyUseDefaultCredentials
設定すると、プロキシ アドレスの使用時に、インストーラーでは現在のユーザーの資格情報が使用されます。 (Windows でのみ有効)。
-Quality|--quality <QUALITY>
指定された品質の最新のビルドをチャネルにダウンロードします。 指定できる値は、
daily
、signed
、validated
、preview
、GA
です。 ほとんどのユーザーは、daily
、preview
、またはGA
の品質を使う必要があります。異なる品質値は、インストールされている SDK またはランタイムのリリース プロセスでのステージが異なることを示します。
daily
: SDK またはランタイムの最新のビルドです。 これらは毎日ビルドされ、テストされません。 運用環境での使用はお勧めしませんが、多くの場合、製品にマージされた直後に特定の機能や修正プログラムをテストするには使用できます。 これらのビルドはdotnet/installer
リポジトリからのものであるため、dotnet/sdk
からの修正プログラムを探している場合は、コードがフローして SDK からインストーラーにマージされ、daily ビルドに表示されるようになるまで、待つ必要があります。signed
: 検証または一般リリースされていない、Microsoft によって署名されたビルド。 署名されたビルドは、検証、プレビュー、GA リリースの候補です。 この品質レベルは、一般的な使用を目的としたものではありません。validated
: いくつかの内部テストが行われたが、プレビューまたは GA としてまだリリースされていないビルド。 この品質レベルは、一般的な使用を目的としたものではありません。preview
: 一般的な使用が意図されている、.NET の次のバージョンの毎月のパブリック リリース。 実稼働での使用は推奨しません。 ユーザーがリリース前の新しいメジャー バージョンを試してテストできるようにすることを意図しています。GA
: .NET SDK とランタイムの最終安定版リリース。 一般使用および実稼働のサポートを意図しています。
--quality
オプションは--channel
と組み合わせることによってのみ機能しますが、STS
とLTS
チャネルには適用されず、それらのチャネルのいずれかが使われた場合は無視されます。SDK のインストールでは、
A.B
またはA.B.Cxx
の形式のchannel
値を使います。 ランタイムのインストールには、A.B
形式のchannel
を使用します。version
とquality
の両方のパラメーターを使用しないでください。quality
を指定すると、スクリプトによって適切なバージョンが独自に決定されます。5\.0 リリース以降で使用できます。
-Runtime|--runtime <RUNTIME>
SDK 全体ではなく共有ランタイムのみがインストールされます。 次の値を指定できます。
dotnet
:Microsoft.NETCore.App
共有ランタイム。aspnetcore
:Microsoft.AspNetCore.App
共有ランタイム。windowsdesktop
Microsoft.WindowsDesktop.App
共有ランタイム。
--os <OPERATING_SYSTEM>
ツールのインストール先のオペレーティング システムを指定します。 指定できる値は、
osx
、macos
、linux
、linux-musl
、freebsd
です。パラメーターは省略可能です。スクリプトによって検出されたオペレーティング システムをオーバーライドする必要がある場合にのみ使用してください。
-SharedRuntime|--shared-runtime
注意
このパラメーターは非推奨であり、今後のバージョンのスクリプトでは削除される可能性があります。 別の方法として、
-Runtime|--runtime
オプションを使用することをお勧めします。SDK 全体ではなく共有ランタイム ビットのみがインストールされます。 このオプションは、
-Runtime|--runtime dotnet
を指定することと同じです。-SkipNonVersionedFiles|--skip-non-versioned-files
dotnet.exe など、バージョン管理されていないファイルが既に存在する場合は、そのインストールをスキップします。
-UncachedFeed|--uncached-feed
内部使用専用です。 別のストレージを使用して SDK アーカイブをダウンロードできます。 このパラメーターは、--no-cdn が true の場合にのみ使用されます。
-KeepZip|--keep-zip
設定すると、ダウンロードした SDK アーカイブはインストール後も保持されます。
-ZipPath|--zip-path <PATH>
設定すると、ダウンロードした SDK アーカイブは指定したパスに格納されます。
-Verbose|--verbose
診断情報を表示します。
-Version|--version <VERSION>
特定のビルド バージョンを表します。 次の値を指定できます。
latest
: チャネルの最新ビルド (-Channel
オプションで使用)。- 特定のビルド バージョンを表す X.Y.Z 形式の 3 部構成のバージョン。
-Channel
オプションよりも優先されます。 たとえば、2.0.0-preview2-006120
のように指定します。
指定しない場合、
-Version
の既定値はlatest
です。
使用例
最新の長期サポート (LST) バージョンを既定の場所にインストールします。
Windows の場合:
./dotnet-install.ps1 -Channel LTS
macOS/Linux の場合:
./dotnet-install.sh --channel LTS
指定した場所に、最新のプレビュー バージョンの 6.0.1xx SDK をインストールします。
Windows の場合:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cli
macOS/Linux の場合:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
共有ランタイムの 6.0.0 バージョンをインストールします。
Windows の場合:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
macOS/Linux の場合:
./dotnet-install.sh --runtime dotnet --version 6.0.0
スクリプトを入手し、会社のプロキシの後ろに 6.0.2 バージョンをインストールします (Windows のみ)。
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1'; ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;
スクリプトを入手し、.NET CLI の 1 行コードのサンプルをインストールします。
Windows の場合:
# Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session. &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"
macOS/Linux の場合:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>
環境変数の設定
.NET を手動でインストールしても環境変数はシステム全体に追加されず、通常、.NET がインストールされたセッションにのみ機能します。 オペレーティング システムに設定する必要のある環境変数は 2 つあります。
DOTNET_ROOT
この変数は、.NET をインストールした先のフォルダーに設定されます (Linux や macOS の場合
$HOME/.dotnet
、Windows の場合は PowerShell での$HOME\.dotnet
など)。PATH
この変数には、
DOTNET_ROOT
フォルダーとユーザーの .dotnet/tools フォルダーの両方を含める必要があります。 通常、これは Linux と macOS の場合は$HOME/.dotnet/tools
、Windows では PowerShell の$HOME\.dotnet\tools
です。
ヒント
Linux や macOS の場合、echo
コマンドを使用して、シェル プロファイルに変数を設定します (.bashrc など)。
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
[アンインストール]
アンインストール スクリプトはありません。 .NET を手動でアンインストールする方法の詳細については、「.NET ランタイムと SDK を削除する方法」を参照してください。
dotnet-install.sh の署名検証
署名の検証は、スクリプトの真正性と完全性を確保するのに役立つ重要なセキュリティ対策です。 スクリプトの署名を検証することで、スクリプトが改ざんされていないことと、信頼できるソースからの署名であることを確認できます。
GPG を使用して dotnet-install.sh
スクリプトの真正性を検証する手順を次に示します。
- GPG のインストール: GPG (GNU Privacy Guard) は、データの暗号化と署名のための無料のオープンソース ツールです。 GPG の Web サイトの指示に従ってインストールできます。
- 公開キーのインポート: install-scripts の公開キー ファイルをダウンロードし、コマンド
gpg --import dotnet-install.asc
を実行して、それを GPG キーリングにインポートします。 - 署名ファイルのダウンロード: bash スクリプトの署名ファイルは、
https://dot.net/v1/dotnet-install.sig
で入手できます。wget
やcurl
などのツールを使用してダウンロードできます。 - 署名の検証: bash スクリプトの署名を検証するには、コマンド
gpg --verify dotnet-install.sig dotnet-install.sh
を実行します。 これにより、dotnet-install.sig
ファイル内の署名に対して、dotnet-install.sh
ファイルの署名が照合されます。 - 結果の確認: 署名が有効な場合は、
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>"
を含むメッセージが表示されます。 これは、スクリプトが改ざんされておらず、信頼できることを意味します。
環境の準備
GPG のインストールと公開キーのインポートは 1 回だけの操作です。
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
成功すると、次のような出力が表示されます。
gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
ダウンロードと検証
キーをインポートしたら、スクリプトと署名をダウンロードできるようになり、スクリプトと署名が一致するかを検証できます。
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
成功すると、次のような出力が表示されます。
gpg: Signature made <datetime>
gpg: using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6 B6AC B9CF 1A51 FC7D 3ACF
この警告は、キーリング内の公開キーが信頼されていないことを意味しますが、それでも、スクリプトは検証されます。 検証コマンドによって返される終了コードは、成功を意味する 0
である必要があります。
関連項目
.NET