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 つのスクリプトがあります。

注意

.NET によって利用統計情報が収集されます。 詳細とオプトアウトの方法については、「.NET SDK 製品利用統計情報」を参照してください。

目的

このスクリプトの用途は本来、次のような継続的インテグレーション (CI) シナリオ向けとして意図されています。

  • ユーザーの操作と管理者権限なしで SDK をインストールする必要がある。

  • SDK インストールを複数の CI 実行間で保持する必要がない。

    イベントの一般的なシーケンス:

    • CI がトリガーされます。
    • CI により、これらのスクリプトの 1 つを利用して SDK がインストールされます。
    • CI でその作業が完了し、SDK インストールを含む、一時的なデータが消去されます。

開発環境を設定するか、アプリを実行するには、これらのスクリプトではなく、インストーラーを使用します。

安定したバージョンのスクリプトを使用することをお勧めします。

スクリプトのソースは dotnet/install-scripts GitHub リポジトリにあります。

スクリプトの動作

スクリプトの動作は両方とも同じです。 CLI ビルド ドロップから ZIP/tarball ファイルをダウンロードし、既定の場所または -InstallDir|--install-dir で指定された場所へのインストールに進みます。

既定では、インストール スクリプトは SDK をダウンロードしてインストールします。 共有ランタイムの取得だけを行いたい場合は、-Runtime|--runtime 引数を指定します。

既定では、スクリプトはインストールの場所を現在のセッションの $PATH に追加します。 -NoPath|--no-path 引数を指定することによってこの既定の動作をオーバーライドします。 スクリプトでは、DOTNET_ROOT 環境変数は設定されません。

重要

スクリプトはインストール場所をユーザーの PATH 環境変数に追加しません。手動で追加する必要があります。

スクリプトを実行する前に、必要な依存関係をすべてインストールします。

-Version|--version 引数を使用して、特定のバージョンをインストールすることができます。 バージョンには 3 つの部分からなるバージョン番号 (2.1.0 など) を指定する必要があります。 バージョンが指定されていない場合、スクリプトでは latest バージョンがインストールされます。

インストール スクリプトでは、Windows 上のレジストリは更新されません。 zip 形式のバイナリがダウンロードされて、フォルダーにコピーされるだけです。 レジストリ キーの値を更新する必要がある場合は、.NET インストーラーを使用します。

オプション

  • -Architecture|--architecture <ARCHITECTURE>

    インストールする .NET バイナリのアーキテクチャです。 指定できる値は、<auto>amd64x64x86arm64arms390x、および ppc64le です。 既定値は <auto> です。これは実行中の OS アーキテクチャを示します。

  • -AzureFeed|--azure-feed

    内部使用専用です。 別のストレージを使用して SDK アーカイブをダウンロードできます。 このパラメーターは、--no-cdn が false の場合にのみ使用されます。 既定値は、https://dotnetcli.azureedge.net/dotnet です。

  • -Channel|--channel <CHANNEL>

    インストールのソース チャネルを指定します。 次の値を指定できます。

    • STS: 最新の標準期間サポート リリース。
    • LTS: 最新の長期サポート リリース。
    • 特定のリリースを表す A.B 形式の 2 部構成のバージョン (たとえば、3.18.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>

    指定された品質の最新のビルドをチャネルにダウンロードします。 指定できる値は、dailysignedvalidatedpreviewGA です。 ほとんどのユーザーは、dailypreview、または GA の品質を使う必要があります。

    異なる品質値は、インストールされている SDK またはランタイムのリリース プロセスでのステージが異なることを示します。

    • daily: SDK またはランタイムの最新のビルドです。 これらは毎日ビルドされ、テストされません。 運用環境での使用はお勧めしませんが、多くの場合、製品にマージされた直後に特定の機能や修正プログラムをテストするには使用できます。 これらのビルドは dotnet/installer リポジトリからのものであるため、dotnet/sdk からの修正プログラムを探している場合は、コードがフローして SDK からインストーラーにマージされ、daily ビルドに表示されるようになるまで、待つ必要があります。
    • signed: 検証または一般リリースされていない、Microsoft によって署名されたビルド。 署名されたビルドは、検証、プレビュー、GA リリースの候補です。 この品質レベルは、一般的な使用を目的としたものではありません。
    • validated: いくつかの内部テストが行われたが、プレビューまたは GA としてまだリリースされていないビルド。 この品質レベルは、一般的な使用を目的としたものではありません。
    • preview: 一般的な使用が意図されている、.NET の次のバージョンの毎月のパブリック リリース。 実稼働での使用は推奨しません。 ユーザーがリリース前の新しいメジャー バージョンを試してテストできるようにすることを意図しています。
    • GA: .NET SDK とランタイムの最終安定版リリース。 一般使用および実稼働のサポートを意図しています。

    --quality オプションは --channel と組み合わせることによってのみ機能しますが、STSLTS チャネルには適用されず、それらのチャネルのいずれかが使われた場合は無視されます。

    SDK のインストールでは、A.B または A.B.Cxx の形式の channel 値を使います。 ランタイムのインストールには、A.B 形式の channel を使用します。

    versionquality の両方のパラメーターを使用しないでください。 quality を指定すると、スクリプトによって適切なバージョンが独自に決定されます。

    5\.0 リリース以降で使用できます。

  • -Runtime|--runtime <RUNTIME>

    SDK 全体ではなく共有ランタイムのみがインストールされます。 次の値を指定できます。

    • dotnet: Microsoft.NETCore.App 共有ランタイム。
    • aspnetcore: Microsoft.AspNetCore.App 共有ランタイム。
    • windowsdesktopMicrosoft.WindowsDesktop.App 共有ランタイム。
  • --os <OPERATING_SYSTEM>

    ツールのインストール先のオペレーティング システムを指定します。 指定できる値は、osxmacoslinuxlinux-muslfreebsd です。

    パラメーターは省略可能です。スクリプトによって検出されたオペレーティング システムをオーバーライドする必要がある場合にのみ使用してください。

  • -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 スクリプトの真正性を検証する手順を次に示します。

  1. GPG のインストール: GPG (GNU Privacy Guard) は、データの暗号化と署名のための無料のオープンソース ツールです。 GPG の Web サイトの指示に従ってインストールできます。
  2. 公開キーのインポート: install-scripts の公開キー ファイルをダウンロードし、コマンド gpg --import dotnet-install.asc を実行して、それを GPG キーリングにインポートします。
  3. 署名ファイルのダウンロード: bash スクリプトの署名ファイルは、https://dot.net/v1/dotnet-install.sig で入手できます。 wgetcurl などのツールを使用してダウンロードできます。
  4. 署名の検証: bash スクリプトの署名を検証するには、コマンド gpg --verify dotnet-install.sig dotnet-install.sh を実行します。 これにより、dotnet-install.sig ファイル内の署名に対して、dotnet-install.sh ファイルの署名が照合されます。
  5. 結果の確認: 署名が有効な場合は、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 である必要があります。

関連項目