注意
インストール スクリプトの動作が変更されました。 新しいネットワークの場所から .NET をダウンロードします。 詳細については、「重要: .NET インストール リンクがに変更される」を参照してください。
名前
dotnet-install.ps1
|
dotnet-install.sh - .NET SDK と共有ランタイムをインストールするために使用するスクリプトです。
構文
Windows の場合:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-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-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 アーカイブをダウンロードできます。 既定値は、
https://builds.dotnet.microsoft.com/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パラメーターは、channel以外のバージョンが使用されている場合にlatestパラメーターをオーバーライドします。既定値は
LTSです。 .NET のサポート チャネルの詳細については、「.NET Support Policy」(.NET のサポート ポリシー) ページを参照してください。-
-DryRun|--dry-run設定すると、スクリプトでインストールは実行されません。 代わりに、現在要求されているバージョンの .NET CLI を一貫してインストールするために使用するコマンド ラインが表示されます。 たとえば、バージョン
latestを指定すると、そのバージョンのリンクが表示されるので、ビルド スクリプトで確定的にこのコマンドを使用できます。 また、自分でインストールまたはダウンロードしたい場合、バイナリの場所も表示されます。-FeedCredential|--feed-credentialAzure フィードに付加するクエリ文字列として使用されます。 非公開の 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の値が必要です。-NoPath|--no-path設定すると、インストール フォルダーは現在のセッションのパスにはエクスポートされません。 既定では、スクリプトによって PATH が変更されます。これにより、インストール後すぐに .NET CLI を使用できるようになります。
-ProxyAddress設定すると、インストーラーで Web 要求を行うときにプロキシが使われます。 (Windows でのみ有効)。
-ProxyBypassList <LIST_OF_URLS>ProxyAddressで設定されている場合、プロキシをバイパスする URL をコンマ区切りの一覧で提供します。 (Windows でのみ有効)。-ProxyUseDefaultCredentials設定すると、プロキシ アドレスの使用時に、インストーラーでは現在のユーザーの資格情報が使用されます。 (Windows でのみ有効)。
-Quality|--quality <QUALITY>指定された品質の最新のビルドをチャネルにダウンロードします。 使用可能な値は
daily、preview、およびGAです。異なる品質値は、インストールされている SDK またはランタイムのリリース プロセスでのステージが異なることを示します。
-
daily: SDK またはランタイムの最新のビルドです。 これらは毎日ビルドされ、テストされません。 運用環境での使用はお勧めしませんが、多くの場合、製品にマージされた直後に特定の機能や修正プログラムをテストするには使用できます。 これらのビルドはdotnet/installerリポジトリからのものであるため、dotnet/sdkからの修正プログラムを探している場合は、コードがフローして SDK からインストーラーにマージされ、daily ビルドに表示されるようになるまで、待つ必要があります。 -
preview: 一般的な使用が意図されている、.NET の次のバージョンの毎月のパブリック リリース。 実稼働での使用は推奨しません。 ユーザーがリリース前の新しいメジャー バージョンを試してテストできるようにすることを意図しています。 -
GA: .NET SDK とランタイムの最終安定版リリース。 一般使用および実稼働のサポートを意図しています。
--qualityオプションは--channelと組み合わせることによってのみ機能しますが、STSとLTSチャネルには適用されず、それらのチャネルのいずれかが使われた場合は無視されます。SDK のインストールでは、
channelまたはA.Bの形式のA.B.Cxx値を使います。 ランタイムのインストールには、channel形式のA.Bを使用します。versionとqualityの両方のパラメーターを使用しないでください。qualityを指定すると、スクリプトによって適切なバージョンが独自に決定されます。5\.0 リリース以降で使用できます。
-
-Runtime|--runtime <RUNTIME>SDK 全体ではなく共有ランタイムのみがインストールされます。 次の値を指定できます。
-
dotnet:Microsoft.NETCore.App共有ランタイム。 -
aspnetcore:Microsoft.AspNetCore.App共有ランタイム。 -
windowsdesktopMicrosoft.WindowsDesktop.App共有ランタイム。
-
--os <OPERATING_SYSTEM>ツールのインストール先のオペレーティング システムを指定します。 指定できる値は、
osx、macos、linux、linux-musl、freebsdです。パラメーターは省略可能です。スクリプトによって検出されたオペレーティング システムをオーバーライドする必要がある場合にのみ使用してください。
-SharedRuntime|--shared-runtime注意
このパラメーターは非推奨であり、今後のバージョンのスクリプトでは削除される可能性があります。 別の方法として、
-Runtime|--runtimeオプションを使用することをお勧めします。SDK 全体ではなく共有ランタイム ビットのみがインストールされます。 このオプションは、
-Runtime|--runtime dotnetを指定することと同じです。-SkipNonVersionedFiles|--skip-non-versioned-filesdotnet.exe など、バージョン管理されていないファイルが既に存在する場合は、そのインストールをスキップします。
-UncachedFeed|--uncached-feed内部使用専用です。 別のストレージを使用して SDK アーカイブをダウンロードできます。 このパラメーターは、
-AzureFeed|--azure-feedを上書きします。-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 LTSmacOS/Linux の場合:
./dotnet-install.sh --channel LTS指定した場所に、最新のプレビュー バージョンの 6.0.1xx SDK をインストールします。
Windows の場合:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\climacOS/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.0macOS/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>以前のインストールから
dotnetバイナリを上書きしない状態で、複数のバージョンをインストールします。以前のバージョンの .NET SDK または .NET ランタイムを新しいバージョンの上にインストールする場合は、
--skip-non-versioned-filesを使用して、以前のバージョンの "バージョン管理されていない"dotnetファイルが新しいバージョンの同じファイルを上書きしないようにする必要があります。:~ $ ./dotnet-install.sh --channel 9.0 --install-dir local-dotnet # installs the latest 9 SDK to the specified directory dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz size is 218004272 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Downloaded file size is 218004272 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 9.0.303 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # see what runtimes we have available Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # see what SDKs we have available 9.0.303 [$HOME/local-dotnet/sdk] :~ $ ./dotnet-install.sh --channel 8.0 --install-dir local-dotnet --skip-non-versioned-files # install the 8 SDK to the same place, but keep the 9 dotnet binaries dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz size is 216096947 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Downloaded file size is 216096947 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 8.0.412 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # we should have 8 and 9 Runtimes now Microsoft.AspNetCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # we should have 2 SDKs now 8.0.412 [$HOME/local-dotnet/sdk] 9.0.303 [$HOME/local-dotnet/sdk]
環境変数の設定
.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.shファイル内の署名に対して、dotnet-install.sigファイルの署名が照合されます。 -
結果の確認: 署名が有効な場合は、
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