실제로 conda를 쓸 때 반복해서 중요한 네 가지 개념이 있어.
Channels. Channel은 패키지 저장소야. Anaconda Inc가 운영하는 defaults가 원조지만 conda-forge보다 패키지가 적고 상업적 사용 조건도 더 엄격해. conda-forge는 30,000개가 넘는 패키지와 활발한 유지관리자를 가진 커뮤니티 channel이고, bioconda는 생물정보학 도구를 제공해. pytorch와 nvidia 같은 특정 구성용 vendor channel도 있어. 특별한 이유가 없다면 설치에 -c conda-forge를 우선해.
Binary 패키지. conda의 핵심 기능이야. 패키지 안에 컴파일된 C/C++ 라이브러리, CUDA 런타임, R 패키지, Java까지 포함할 수 있어. pytorch를 설치하면 운영체제, CPU 아키텍처, CUDA 버전에 맞는 미리 컴파일된 binary를 받아 직접 컴파일할 필요가 없어. conda가 머신 러닝과 데이터 과학의 기본값이 된 이유야.
Solver. 예전 conda는 복잡한 환경을 푸는 데 몇 분씩 걸리는 느린 Python 기반 SAT solver로 악명이 높았어. conda 23.10부터 기본이 된 libmamba solver는 일반적인 환경에서 5~10배 빨라. 오래된 conda라면 conda install -n base conda-libmamba-solver와 conda config --set solver libmamba로 활성화할 수 있어.
conda와 pip 함께 쓰기. 어떤 conda channel에도 없고 PyPI에만 있는 패키지가 있어. 이때는 conda 패키지를 모두 먼저 설치하고 나머지를 pip으로 설치해야 해. 순서를 거꾸로 하면 환경이 손상될 수 있어. pip 계층은 environment.yml의 pip: 아래에 기록해 재현 가능하게 만들어.