holoscan-install-conda · diff
v1.0.0 to v2.0.0
35 added, 149 removed. Audit A to A.
---
name: holoscan-install-conda
- version: "1.0.0"
- description: "Install Holoscan SDK v4.3+ via Conda in a CUDA 13 environment. Use for Conda installs; redirect CUDA 12 hosts to container/wheel."
+ description: "Handle Holoscan SDK 5.x Conda installation requests: explain 5.0 package unavailability, check later releases, and select a supported installation method."
license: Apache-2.0
metadata:
author: "Holoscan Team <holoscan-team@nvidia.com>"
+ version: "2.0.0"
github-url: "https://github.com/nvidia-holoscan/holoscan-sdk"
tags:
- holoscan
- - install
+ - installation
- conda
- - cuda
---
- # Holoscan Conda Installation
-
- ## Purpose
-
- Install the Holoscan SDK (Python runtime and/or C++ dev headers) into a Conda environment on Linux x86_64, using conda-forge + rapidsai with a correctly pinned CUDA metapackage.
-
- ## Prerequisites
-
- - Linux x86_64 with an NVIDIA GPU and CUDA 13 driver (check `nvidia-smi`).
- - `conda` (Miniforge preferred). Step 1 installs it if missing.
- - Network access to conda-forge, rapidsai, and `docs.nvidia.com`.
-
- ## Limitations
-
- - **CUDA 13 only** (since v4.3.0 — earlier releases were CUDA 12). If the user has a CUDA 12 driver, redirect to `/holoscan-install-container` or `/holoscan-install-wheel` instead.
- - Linux x86_64 only — no aarch64/iGPU support on conda-forge.
- - `ulimit -s 32768` is recommended in every shell that runs Holoscan — without it, some apps **may** segfault.
-
- ## Step 0: Consult the Official Install Instructions
-
- Always fetch the current Conda section of `https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html` before installing — package names, channel selection, and the runtime/dev split can change between releases. Specifically extract:
-
- - The exact runtime package name (e.g. `holoscan` for Python bindings).
- - The C++ dev package name and whether the user needs it. As of v4.1.0, `libholoscan-dev` is a separate package containing headers and CMake config — install it whenever the user wants to develop C++ apps. Without it, `find_package(holoscan)` fails and there are no headers to `#include`.
- - Supported Python versions for the current release (3.10–3.13 for v4.3).
- - The current `cuda-version` pin (v4.3 → `13`).
-
- `rmm` and `ucxx` are distributed via the `rapidsai` channel; `holoscan`, `libholoscan`, and `libholoscan-dev` come from `conda-forge`.
-
- If the doc disagrees with anything below, the doc wins — update the install commands accordingly and tell the user.
-
- ## Step 1: Prerequisites Check
-
- ```bash
- conda --version 2>&1
- nvidia-smi 2>&1 | head -5
- ```
-
- If `conda` is not found, install Miniforge silently (preferred over Miniconda for conda-forge):
-
- ```bash
- wget -q https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O /tmp/Miniforge3.sh
- bash /tmp/Miniforge3.sh -b -p ~/miniforge3
- source ~/miniforge3/etc/profile.d/conda.sh
- conda --version
- ```
-
- The `-b` flag installs non-interactively without modifying `.bashrc`. Users must `source ~/miniforge3/etc/profile.d/conda.sh` in each new shell (or add it to their shell RC file) to make `conda` available.
-
- ## Step 2: Create Environment and Install
-
- ### Package roles
-
- - `libholoscan` — C++ runtime symbols (`libholoscan_core.so`). Auto-pulled as a dependency.
- - `holoscan` — Python bindings.
- - `libholoscan-dev` — C++ headers, `libholoscan_core.so` symlink, and `holoscan-config.cmake` for `find_package(holoscan)`.
- - `rmm` — RAPIDS Memory Manager (rapidsai channel). Undeclared runtime dep of `holoscan`; `import holoscan` fails without it.
- - `ucxx` — UCX Python bindings (rapidsai channel), needed for distributed/multi-process apps.
- - `cuda-version=13` — pins the CUDA 13 metapackage so the solver picks compatible CUDA runtime libs.
-
- Create the environment first:
-
- ```bash
- source ~/miniforge3/etc/profile.d/conda.sh # if conda not yet on PATH
- conda create -n holoscan python=3.13 -y
- conda activate holoscan
- ```
-
- Then pick one of the variants below based on the user's goal.
-
- Pick the packages for the user's goal — Python-only needs `holoscan`, C++ dev needs `libholoscan-dev`, both works for combined use:
-
- ```bash
- conda install <packages> rmm ucxx cuda-version=13 -c rapidsai -c conda-forge -y
- ```
-
- For C++ development, also install the toolchain:
-
- ```bash
- conda install -c conda-forge cxx-compiler cmake ninja -y
- ```
-
- Verify Python installs with `python3 -c "import holoscan; print(holoscan.__version__)"`. Verify C++ dev installs with `ls "$CONDA_PREFIX/include/holoscan"`.
-
- ## Step 3: Run Python Tests
-
- `ulimit -s 32768` is recommended — without it, some Holoscan apps may segfault on startup.
-
- `video_replayer` is a display app that loops forever by default. Always patch its YAML to
- stop after 10 frames (`count: 10`, `repeat: false`, `realtime: false`) and to run headless
- (`headless: true`) — headless works with or without a display attached and avoids GUI
- failure modes over SSH, so we don't branch on `$DISPLAY`.
-
- Download scripts and YAML configs, patch the YAML, then run:
-
- ```bash
- source ~/miniforge3/etc/profile.d/conda.sh
- conda activate holoscan
- ulimit -s 32768
-
- SDK_VER=$(python3 -c "import holoscan; print(holoscan.__version__)")
- BASE="https://raw.githubusercontent.com/nvidia-holoscan/holoscan-sdk/v${SDK_VER}/examples"
-
- curl -fsSL "${BASE}/hello_world/python/hello_world.py" -o /tmp/hs_hello_world.py
- curl -fsSL "${BASE}/video_replayer/python/video_replayer.py" -o /tmp/hs_video_replayer.py
- curl -fsSL "${BASE}/video_replayer/python/video_replayer.yaml" -o /tmp/video_replayer.yaml
-
- # Patch video_replayer.yaml — 10 frames, headless.
- python3 -c "
- c = open('/tmp/video_replayer.yaml').read()
- c = c.replace('count: 0', 'count: 10')
- c = c.replace('repeat: true', 'repeat: false')
- c = c.replace('realtime: true', 'realtime: false')
- c = c.replace(' width: 854', ' headless: true\n width: 854')
- open('/tmp/video_replayer.yaml', 'w').write(c)"
-
- # hello_world — no display, no data needed; expected: "Hello World!"
- python3 /tmp/hs_hello_world.py
-
- # video_replayer — needs racerx data; expected: frames rendered, "Graph execution finished."
- HOLOSCAN_INPUT_PATH=/path/to/holoscan/data python3 /tmp/hs_video_replayer.py
- ```
-
- `HOLOSCAN_INPUT_PATH` must point to the directory containing a `racerx/` subdirectory.
- If the user has the SDK source repo that is `~/repos/holoscan-sdk/data`; otherwise download
- with the `download_ngc_data` script from the Debian or source install tree.
-
- ## Step 4: Remind the User
+ # Holoscan 5.0 and Conda
- They must do the following in each new shell session:
+ This skill checks Conda availability for the requested Holoscan SDK 5.x release.
+ SDK 5.0 has no Conda package. For later releases, it follows the release's Conda
+ instructions when support is documented and matching packages are published.
+ Otherwise, it offers container, Debian, wheel, or source alternatives while
+ preserving the requested SDK version and C++ or Python goal.
- ```bash
- source ~/miniforge3/etc/profile.d/conda.sh # if Miniforge was installed with -b
- conda activate holoscan
- ulimit -s 32768 # recommended — prevents segfaults in some apps
- ```
+ Conda-forge Holoscan 4.x packages are a different release line and cannot satisfy
+ a 5.x installation request.
- Consider adding these lines to `~/.bashrc` or `~/.zshrc` to avoid repeating them.
+ 1. Establish the requested SDK release. For 5.0, explain that Conda installation
+ is unavailable; do not install Miniforge, create an environment, or run a
+ Holoscan Conda solve. For a later release, follow its documented Conda method
+ only if that release explicitly supports it and the matching packages are
+ published. If availability is unknown, report the uncertainty and offer the
+ verified alternatives below rather than inventing an installation command.
+ 2. When Conda is unavailable or unconfirmed, preserve the requested SDK version
+ and the user's C++ or Python goal. Offer the matching skill when available,
+ or use the release's installation guide directly:
- Then offer next steps:
- - Explore C++ and Python examples at `https://github.com/nvidia-holoscan/holoscan-sdk/tree/v<VERSION>/examples`
- - Walk through a specific example: `/explain-example`
- - Start building a custom Holoscan application
+ | Goal | Method |
+ | --- | --- |
+ | Ready-to-use C++ and Python environment | `holoscan-install-container` |
+ | Native C++ headers and libraries | `holoscan-install-debian` |
+ | Python environment | `holoscan-install-wheel` |
+ | Early Access binaries unavailable, or SDK development | `holoscan-install-source` |
- ## Troubleshooting
+ 3. Confirm which alternative the user wants if they have not already chosen
+ one. If the host or goal is unclear, use `holoscan-setup` to assess it.
+ 4. If the user explicitly needs 4.x, consult that release's Conda instructions
+ and report the version change before proceeding. Keep an existing Conda
+ installation intact; its presence does not establish availability for the
+ requested release.
- - **`ImportError: librmm.so: cannot open shared object file`.** `rmm` was not installed. Re-run the Step 2 `conda install` line — `rmm` is an undeclared runtime dependency of `holoscan`.
- - **Solver picks an older `holoscan` build than expected.** Channel order may be wrong. Use `-c rapidsai -c conda-forge` (rapidsai first) — that's the order in the official install command, and under strict channel priority a conda-forge-first ordering can lock the solver to an older `holoscan` build.
- - **Segmentation fault on app startup.** Set `ulimit -s 32768` in the current shell before running any Holoscan app. Not all apps trip this, but the larger stack avoids the failure mode.
- - **`find_package(holoscan)` fails when building C++ apps.** Install `libholoscan-dev` (headers + CMake config are in a separate package since v4.1.0).
- - **`conda: command not found` in a new shell.** Miniforge was installed with `-b` and did not patch `.bashrc`. Run `source ~/miniforge3/etc/profile.d/conda.sh` or add it to your shell RC file.
+ Use the selected release notes and
+ [installation guide](https://docs.nvidia.com/holoscan/sdk-user-guide/setup/sdk-installation)
+ to establish current support. Do not treat a 4.x search result as 5.x support.