Offline and Air-Gapped Installs#
cx supports two offline deployment styles:
cxz: one binary with the locked package archives embedded.cxplus a bundle directory: one small binary and a separate directory of.condaor.tar.bz2archives.
Use cxz when you want the transfer artifact to be a single file. Use a
bundle directory when an installer system, container build, or enterprise
software distribution process already manages package files separately.
conda-express publishes the online cx runtime and the embedded cxz
runtime. It does not currently publish conda-ship external layout release
assets such as cx.bundle.tar.zst. The --bundle option below is for
deployment systems that provide a bundle directory next to cx. For custom
external-bundle artifacts, use
conda-ship’s external artifact layout.
Use cxz#
Download the cxz file for the target platform from the release page, make it
executable on Unix, then bootstrap:
chmod +x cxz-x86_64-unknown-linux-gnu
./cxz-x86_64-unknown-linux-gnu --path /opt/cx bootstrap --offline
The embedded bundle is detected automatically, so you do not need --bundle.
Use --offline in disconnected environments so the runtime refuses network
access if anything is missing.
Use a Bundle Directory#
When package archives are stored separately by your installer, image build, or
software distribution process, point cx at the bundle directory and use
offline mode:
cx --path /opt/cx bootstrap \
--bundle /path/to/packages \
--offline
The same settings are available as environment variables for installer scripts and CI jobs:
CX_BUNDLE=/path/to/packages CX_OFFLINE=1 cx --path /opt/cx bootstrap
Use the installer script#
The shell and PowerShell installers pass CX_BUNDLE and CX_OFFLINE through
as cx bootstrap options:
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh \
| env CX_BUNDLE=/path/to/packages CX_OFFLINE=1 sh
On Windows:
$Env:CX_BUNDLE = "C:\packages"
$Env:CX_OFFLINE = "1"
irm https://jezdez.github.io/conda-express/get-cx.ps1 | iex
Verify artifacts before use#
Each GitHub Release artifact has a matching checksum and GitHub Artifact Attestation. For example:
gh attestation verify ./cx-x86_64-unknown-linux-gnu \
-R jezdez/conda-express \
--signer-workflow jezdez/conda-express/.github/workflows/release.yml
For disconnected environments, perform verification before transferring the binary or bundle directory across the boundary. See Verify Release Artifacts for the full checklist.