Getting started on Linux or macOS with Bash

This guide contains the exact Bash syntax for the supported Linux/Bash and macOS/Bash product mappings. Shared command behavior is documented separately in the command reference.

Requirements

  • Linux or macOS
  • Bash
  • standard shell utilities used by the tool, including curl, awk, grep, sed, tr, mktemp, chmod, mv, rm, and tar
  • a SHA-256 utility for stable tool bootstrap and eligible historical .NET 1.x payloads: sha256sum where available or shasum -a 256
  • a SHA-512 utility for SDK payload verification: sha512sum where available or shasum -a 512
  • network access when bootstrap or SDK installation downloads remote artifacts

A system-wide dotnet installation is not required.

Install or update the stable tool

Install the latest published stable release, or rerun the same command later to explicitly update to the latest stable release:

curl -fsSL https://isolated-dotnet-sdk.infoconex.com/install.sh | bash

The Pages-hosted bootstrap resolves the latest published stable GitHub Release, downloads that release’s tagged isolated-dotnet-sdk.sh and SHA256SUMS, verifies the released script’s SHA-256, and executes only the verified released script. The piped bootstrap itself is trusted through HTTPS delivery from the project Pages site and cannot verify its own bytes before execution.

The verified released file is saved as:

$HOME/dotnet-sdks/isolated-dotnet-sdk.sh

Normal execution of that saved tool does not auto-update. For an explicit pinned version, reproducible installation, or rollback, see Stable bootstrap, update, and rollback.

Identify the tool version

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" --version

Stable releases published with embedded identity report their exact release tag. Mutable main reports isolated-dotnet-sdk development (main) instead of claiming a stable version. The query exits without bootstrap, network access, SDK discovery, prompting, or mutation.

This identifies the isolated-dotnet-sdk tool itself. --sdk-version <sdk-version> explicitly selects a .NET SDK, and a bare value such as 10.0.401 is the equivalent positional selector. See Tool version.

Start an interactive session

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh"

Main displays the same stable/development tool identity near the top. The persistent session uses I for Install, R for Remove, L for List, V for Verify, A for Audit, and E for Exit. See Interactive mode for navigation semantics.

Install an SDK

Open the interactive install picker once and exit when it completes:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" install

Install a known exact version directly with the explicit SDK selector:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" install --sdk-version 10.0.401

Without an explicit action, --sdk-version implies Install:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" --sdk-version 10.0.401

The equivalent positional convenience form is also supported:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" 10.0.401

If a matching System SDK already exists, Install normally asks before creating an isolated copy. Use --yes only when that confirmation should be approved automatically:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" install 10.0.401 --yes

See Install for the behavioral and integrity contract.

List installed SDKs

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" list

List shows Isolated SDKs first and read-only System SDKs second. See List.

Audit installed SDKs

Run the explicit online, read-only servicing and lifecycle assessment:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" audit

Audit reports Isolated SDKs and System SDKs separately and uses current Microsoft release metadata. It does not install, remove, or repair SDKs. See Audit.

Verify an isolated SDK

Run Verify directly for a known exact isolated SDK:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" verify 10.0.401

Verify is read-only. The persistent Main menu also exposes V so you can choose from installed isolated SDKs; System SDKs are not offered as Verify targets. See Verify.

Use an isolated SDK

Invoke the selected version’s host directly:

"$HOME/dotnet-sdks/10.0.401/dotnet" --version
"$HOME/dotnet-sdks/10.0.401/dotnet" --info

Normal .NET CLI arguments such as restore, build, test, and run work through that same host path. Nothing in this pattern adds the isolated SDK to PATH.

For global.json, VS Code, and project-level workflows, see Project and editor use.

Remove an isolated SDK

Open the removal picker:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" remove

Remove one exact isolated SDK:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" remove 10.0.401

For intentional automation, approve the tool-owned default-no confirmation with --yes:

"$HOME/dotnet-sdks/isolated-dotnet-sdk.sh" remove 10.0.401 --yes

Bash does not emulate PowerShell’s -WhatIf or -Confirm facilities. See Remove for the shared behavior.

Development source

For explicit development testing only, mutable main can be piped into Bash:

curl -fsSL https://raw.githubusercontent.com/infoconex/isolated-dotnet-sdk/main/isolated-dotnet-sdk.sh | bash

This is not a stable installation command. It consumes mutable source and does not receive the stable-release checksum guarantee. Once saved, that development copy reports isolated-dotnet-sdk development (main) through --version and on Main.

Troubleshooting and safe recovery

If a bootstrap download, SDK installation, Verify report, Audit request, or Remove operation fails, follow Troubleshooting and safe recovery before deleting or replacing anything under dotnet-sdks. A failed Verify local check differs from temporarily unavailable Microsoft metadata, and a conflicting existing destination is deliberately preserved.

Next steps