# Conda — Cross-Platform Package and Environment Manager > Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool. ## Install Save in your project root: # Conda — Cross-Platform Package and Environment Manager ## Quick Use ```bash # install Miniconda (lightweight): wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh # create and activate an environment: conda create -n myenv python=3.12 numpy conda activate myenv ``` ## Introduction Conda is a language-agnostic package and environment manager that installs pre-built binaries from curated channels. It handles Python, R, C libraries, CUDA toolkits, and system-level dependencies in isolated environments, making it the standard tool for data science and scientific computing workflows. ## What Conda Does - Creates isolated environments with pinned package versions - Installs pre-built binary packages for Python, R, C/C++, Fortran, and more - Resolves complex dependency graphs including non-Python shared libraries - Manages CUDA, MKL, OpenBLAS, and other system-level runtime dependencies - Supports reproducible environments via environment.yml and conda-lock files ## Architecture Overview Conda maintains a package index (repodata.json) fetched from configured channels. Its solver analyzes version constraints, build strings, and platform markers to produce a consistent environment plan. Packages are tarballs containing pre-compiled binaries, metadata, and activation scripts. Environments live in isolated directories under `envs/`, each with its own `bin/`, `lib/`, and `site-packages/`. The activation system modifies PATH and environment variables per shell session. ## Self-Hosting & Configuration - Install Miniconda for a minimal base or Anaconda for a full data-science distribution - Add conda-forge as the default channel for the broadest package selection - Create environments with `conda create -n name package=version` - Export environments with `conda env export > environment.yml` for reproducibility - Configure solver behavior, proxy settings, and channel priority in `.condarc` ## Key Features - Language-agnostic — manages Python, R, Julia, Node.js, and compiled libraries - Pre-built binaries eliminate the need for compilers on end-user machines - Channel system with conda-forge providing 30,000+ community-maintained packages - Environment isolation prevents dependency conflicts between projects - Cross-platform support for Linux, macOS, and Windows with consistent behavior ## Comparison with Similar Tools - **mamba** — C++ reimplementation of conda with 10-50x faster solving; same ecosystem - **pip + venv** — Python-only; cannot manage non-Python dependencies like CUDA or MKL - **uv** — ultra-fast pip replacement but limited to PyPI; no conda channel support - **pixi** — Rust-based conda-compatible manager with lockfiles and task runner - **Spack** — builds from source for HPC; more flexible but slower than pre-built packages ## FAQ **Q: What is the difference between Miniconda and Anaconda?** A: Miniconda installs only conda and Python. Anaconda bundles 250+ popular data-science packages out of the box. **Q: Can I use pip inside a conda environment?** A: Yes, but install conda packages first, then use pip for anything not available on conda channels to avoid solver conflicts. **Q: How do I speed up conda's solver?** A: Set `solver: libmamba` in `.condarc` (default since conda 23.10) or switch to mamba/micromamba for faster resolution. **Q: Is conda free for commercial use?** A: Conda itself is open source (BSD). The default Anaconda channel requires a license for organizations with 200+ employees; conda-forge is always free. ## Sources - https://github.com/conda/conda - https://docs.conda.io/en/latest/ --- Source: https://tokrepo.com/en/workflows/e811510a-4211-11f1-9bc6-00163e2b0d79 Author: AI Open Source