개념 사전 · 프로그램

conda

콘다

는 패키지의 의존성을 해결하고 여러 실행 환경을 만드는 패키지·환경 관리자이다. 환경별 과 라이브러리를 다른 설치 경로에 두고, 활성화할 환경을 선택해 실행할 프로그램과 의존성 조합을 바꾼다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

로고: Anaconda, Inc. / conda project 공식 자료. 제품 식별을 위해 표시하며 각 상표의 권리는 권리자에게 있습니다.

01무엇이고, 어떤 일을 하나

  • 프로젝트마다 다른 ·패키지 버전 요구를 별도의 환경으로 관리한다.
  • 의 패키지 메타데이터와 의존 조건을 비교해 함께 설치할 조합을 계산한다.
  • ·목록·내보내기 기능으로 사용 중인 환경과 재현에 필요한 정보를 추적한다.

02어떤 순서로 동작하나

  1. 환경과 요구 지정

    새 환경의 이름 또는 경로와 필요한 ·패키지 조건을 정한다. 같은 이름의 명령이라도 어느 환경의 실행기인지에 따라 import 가능한 라이브러리가 달라진다.

  2. 패키지 조합 계산

    과 플랫폼에 맞는 후보의 버전·빌드·의존성을 비교한다. 요구가 충돌하면 설치 가능한 조합을 찾지 못할 수 있으며 조건을 무조건 제거하면 의도한 실습 환경이 달라진다.

  3. 환경에 설치

    계산된 패키지를 에 배치하고 설치 상태를 관리한다. 프로젝트 파일이나 외부 DB 자료를 함께 복사해 주는 작업은 아니다.

  4. 와 실행

    셸 가 PATH 등 실행 조건을 설정하고 이후 명령이 그 환경을 이용하게 한다. 이미 실행 중인 프로세스나 다른 터미널의 환경까지 소급 변경하지 않는다.

03먼저 알아둘 용어와 구성요소

하나의 환경에 설치한 실행기와 라이브러리가 놓이는 위치이다. 환경 이름은 이를 선택하는 편의 수단이며 실제 경로와 대조해야 한다.
패키지와 버전·빌드 메타데이터를 제공하는 공급 경로다. 같은 패키지 이름도 ·플랫폼과 의존 조건에 따라 선택 후보가 달라질 수 있다.
현재 셸에서 해당 환경의 프로그램을 찾도록 실행 조건을 바꾸는 동작이다. 의 권한이나 운영체제 커널을 새로 격리하는 동작과 다르다.
환경의 패키지 요구나 정확한 설치 조합을 파일로 기록하는 기능이다. 이식 가능한 요구 목록과 특정 플랫폼에 묶인 정확한 빌드 목록은 목적이 다르다.
서로 다른 경로다. 한 환경에서 섞어 쓰면 실제 실행기의 pip인지, 각 관리자가 어떤 패키지 변경을 알고 있는지 주의해야 한다.
LEARN THROUGH PRACTICE

PATH 설정을 쓸 때와 source할 때의 변수 확장 비교하기

따옴표와 실행 시점이 설정 파일에 저장되는 문자열 및 현재 셸 환경을 어떻게 바꾸는지 추적한다.

실습 구성과 전제

  • 두 사진은 Miniconda 실행 경로를 셸 설정에 넣는 서로 다른 방법의 사례다. 운영용 /etc/bashrc를 그대로 수정하지 않고 새 실습 디렉터리의 파일로 재구성한다.
  • Bash의 큰따옴표와 작은따옴표를 비교한다. 실제 Miniconda 설치 경로는 환경마다 다르며 PATH 추가가 환경 와 같은 작업은 아니다.
  1. 큰따옴표 안의 변수는 설정을 쓰는 순간 확장된다

    • 첫 사진은 echo의 큰따옴표 안에서 $PATH를 사용하고 결과를 파일에 추가한다. 현재 셸이 변수 값을 먼저 넣으므로 저장되는 문자열에는 그 시점의 PATH 값이 포함된다.
    • 이 방식은 다른 계정·세션에서도 재평가할 식을 남기려는 의도와 다를 수 있다. 사진의 성공 여부와 별개로 파일에 실제 어떤 문자열이 쓰였는지 읽어야 한다.
    Linux 초기 실행 환경 설정 · RL 세팅 자동화원본 크기로 보기 ↗
    • echo 명령의 export PATH 표현이 큰따옴표로 감싸져 있다.
    • 출력은 >>로 /etc/bashrc에 추가되며 Miniconda의 bin 경로가 포함되어 있다.
    확인 기준

    파일에 $PATH라는 글자가 남았는지 이미 긴 경로 목록으로 바뀌었는지 구분한다. 따옴표 종류가 단순한 꾸밈이 아니다.

  2. 작은따옴표로 식을 보존하고 실행 시점을 늦춘다

    • 두 번째 사진의 작은따옴표 안에서는 셸이 $PATH를 즉시 치환하지 않는다. sed가 추가한 설정 행을 나중에 셸이 읽을 때 변수 확장이 일어난다.
    • 재구성 예시는 새 파일에 식을 저장한 뒤 cat으로 확인한다. printf에 전달한 작은따옴표는 제거되지만 그 안의 $HOME·$PATH 문자열은 파일에 그대로 남는다.
    bash
    printf '%s\n' 'export PATH="$HOME/miniconda3/bin:$PATH"' > ./lab-env.sh
    cat ./lab-env.sh

    새 빈 실습 디렉터리에서만 사용할 파일 작성 예시다. 시스템 설정 파일을 변경하지 않는다.

    팀 · 실습·개념 참고 화면 4원본 크기로 보기 ↗
    • sed에 전달하는 추가 스크립트가 작은따옴표로 묶여 있고 $PATH가 포함되어 있다.
    • 그 뒤 source, PATH 조회, conda 관련 명령이 이어져 파일 작성과 환경 적용이 별도 단계임을 보여 준다.
    확인 기준

    설정 파일 내용에 변수를 남기는 것과 현재 셸에서 그 변수를 확장하는 것은 다른 시점의 작업이다.

  3. source의 영향 범위를 자식 셸로 제한해 확인한다

    • source는 현재 셸 안에서 파일의 문장을 실행한다. 반면 별도로 실행한 bash 의 환경 변경은 부모 셸로 거슬러 올라가지 않는다.
    • 아래 예시는 자식 Bash에서만 파일을 source한 뒤 경로와 명령 위치를 확인한다. 명령 발견이나 버전 출력은 환경이 활성화되었다는 증거와는 다르다.
    bash
    bash -c 'source ./lab-env.sh; printf "%s\n" "$PATH"; command -v conda; command -v python'
    command -v python

    첫 행의 환경 변경은 자식 Bash에만 적용된다. 다음 행은 원래 셸의 명령 탐색 결과다.

    확인 기준

    명령 위치가 기대한 설치 경로인지 확인한다. PATH에서 찾은 실행 파일과 의 활성 환경· sys.executable을 혼동하지 않는다.

실습에서 확인한 동작 원리

  • 따옴표는 변수 확장 여부를 정하고, 파일 작성과 source는 서로 다른 확장 시점을 만든다.
  • 환경은 부모에서 자식으로 전달되며 자식에서 바꾼 PATH가 부모 셸을 자동 변경하지 않는다.
관련 개념·전체 실습 화면 이어서 읽기 →
동작·명령 참고 문서

04예제로 따라가기

  • env list에서 별표가 붙은 환경과 의 sys.executable 경로를 대응시키면 이름 표시와 실제 실행 대상을 연결할 수 있다.
  • 서로 다른 환경 A·B에서 같은 import 문이 각각 성공·실패할 수 있다. 소스 변경 전에 선택된 실행기와 각 환경의 설치 목록을 확인한다.
  • 환경을 활성화한 터미널에서 Notebook 서버를 시작해도 선택한 커널이 다른 실행기라면 셀의 패키지 목록은 달라질 수 있다.

05혼동하기 쉬운 점과 확인 기준

  • deactivate는 현재 셸의 환경 선택을 바꾸는 동작이며 그 환경 디렉터리나 실행 중인 다른 를 삭제하지 않는다.
  • 버전 문자열만 기록하면 ·빌드·플랫폼 차이를 놓칠 수 있다. 정확한 재현과 다른 OS로의 이식에 필요한 기록 범위를 구분한다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

실습 가이드

conda 활성화·내보내기로 실행 환경 추적

Activating an environment에서 PATH· 스크립트의 역할을 읽고 Managing environments의 내보내기 예제로 이동한다. 활성 환경 표시와 실제 실행기·패키지·플랫폼을 함께 기록하는 학습 경로다.

읽으면서 확인할 것
  • 가 현재 터미널 세션에 적용되는 범위
  • 대화형 셸과 비대화형 스크립트의 초기화 차이
  • 이식용 요구 목록과 특정 플랫폼의 정확한 패키지 명세의 차이

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.