Upgrade From Early cx Versions#
Use this guide when you installed an early cx release before the
conda-ship-based runtime split and want to move to the current conda-express
release.
What Changed#
Current cx releases bootstrap the managed conda prefix at:
~/.conda/express
Early releases used ~/.cx. Upgrading the cx binary does not rewrite or
migrate that old prefix. The first run of the new binary creates a fresh
managed prefix at ~/.conda/express; the old ~/.cx directory remains until
you remove it.
Important
Keep ~/.cx until you have recreated or archived any environments you still
need. cx uninstall removes the current managed prefix, not old early-release
state.
Upgrade The Binary#
Install a current cx binary with one of the supported release channels.
Current conda-express releases are built with conda-ship and are distributed
through Homebrew, the installer scripts, GitHub Releases, Docker, and PyPI.
New releases are no longer published to crates.io. Common local-binary upgrade
paths are below.
brew update
brew upgrade cx
curl -fsSL https://jezdez.github.io/conda-express/get-cx.sh | sh
On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://jezdez.github.io/conda-express/get-cx.ps1 | iex"
python -m pip install --upgrade conda-express
If you installed an early release with cargo install, remove that old binary
and then choose one of the supported install methods above:
cargo uninstall conda-express
This removes the Cargo-installed cx executable. It does not remove the old
~/.cx prefix.
Check the binary version:
cx --version
On macOS and Linux, also check which binary your shell finds:
command -v cx
On Windows PowerShell:
Get-Command cx
If that still points at an old Cargo install, for example under
~/.cargo/bin or %USERPROFILE%\.cargo\bin, remove the old binary or adjust
your PATH before continuing.
Bootstrap The New Prefix#
Run:
cx bootstrap
cx status
The status output should show ~/.conda/express unless you intentionally used
the runtime --path option.
Move Environments You Still Need#
If your old ~/.cx prefix contains named environments you still use, export
and recreate them deliberately.
For a portable environment file:
~/.cx/bin/conda env export --from-history -n myenv > myenv.yml
cx env create -n myenv -f myenv.yml
For an exact same-platform package specification:
~/.cx/bin/conda list --explicit -n myenv > myenv-spec.txt
cx create -n myenv --file myenv-spec.txt
On Windows, the old conda executable is typically under:
$HOME\.cx\Scripts\conda.exe
Use that path in place of ~/.cx/bin/conda in the commands above.
Note
Do not point the new cx runtime at ~/.cx as a migration shortcut. Current
releases use runtime ownership metadata to avoid mutating prefixes that were
created by another runtime generation.
Remove The Old Prefix#
After the environments you need are available under the new prefix, remove the old early-release prefix manually.
macOS and Linux:
rm -rf ~/.cx
Windows PowerShell:
Remove-Item -Recurse -Force "$HOME\.cx"
Then use the current runtime:
cx create -n myenv python=3.12
cx shell myenv