다음을 통해 공유


이진 캐싱

vcpkg 공용 레지스트리대부분의 포트는 원본에서 빌드됩니다. 원본에서 빌드하면 vcpkg는 프로젝트에서 종속성을 빌드하는 데 사용하는 동일한 환경, 빌드 도구, 컴파일러 플래그, 링커 플래그 및 기타 구성을 사용하여 최대 호환성을 보장할 수 있습니다.

이진 캐싱을 사용하는 경우 각 패키지가 원본에서 빌드된 후 vcpkg는 이진 패키지를 만듭니다. 이진 패키지는 이진 파일, 빌드 시스템 통합 파일, 사용 설명서, 라이선스 및 기타 파일과 같은 패키지의 빌드 출력을 보유합니다. 나중에 실행하려면 캐시된 패키지를 설치해야 하는 경우 vcpkg는 캐시된 이진 패키지를 복원할지 아니면 원본에서 빌드를 트리거할지 결정합니다.

이러한 방식으로 이진 캐싱은 원본에서 빌드할 때 다음과 같은 단점이 미치는 영향을 줄입니다.

  • 중복된 작업: 원본에서 패키지를 빌드해야 하는 횟수를 줄입니다.
  • 긴 빌드 시간: 이진 패키지 복원은 일반적으로 완료하는 데 몇 초가 걸리는 매우 빠른 작업입니다.

이진 캐싱은 임시 컨테이너 또는 빌드 에이전트가 매번 vcpkg가 클린 슬레이트로 작동하도록 강제하는 CI 시나리오에서 특히 효과적입니다. 클라우드 기반 이진 캐시(예: GitHub 패키지 또는 Azure DevOps 아티팩트)를 사용하면 종속성 또는 구성을 변경할 때만 다시 빌드가 수행되므로 최대 속도를 보장하기 위해 실행 간에 이진 패키지를 유지할 수 있습니다.

모든 연속 통합 파이프라인 또는 워크플로에 대한 읽기 및 쓰기 권한이 있는 이진 캐시를 만드는 것이 좋습니다. 개별 개발자는 CI에서 생성된 이진 캐시에 대한 읽기 전용 액세스 권한이 있어야 합니다.

이진 캐시는 다양한 환경에서 호스트할 수 있습니다. 이진 캐시의 가장 기본적인 형태는 로컬 컴퓨터의 폴더 또는 네트워크 파일 공유입니다. 캐시는 모든 NuGet 피드(예: GitHub 패키지 또는 Azure DevOps 아티팩트), Azure Blob Storage, Google Cloud Storage 및 기타 여러 서비스에 저장할 수도 있습니다.

CI 공급자가 네이티브 "캐싱" 함수를 제공하는 경우 가장 성능이 좋은 결과를 위해 vcpkg 이진 캐싱과 네이티브 메서드를 모두 사용하는 것이 좋습니다.

개발을 위해 이진 캐시 다시 사용

이진 배포 메커니즘으로는 권장되지 않지만 이진 캐싱을 사용하여 여러 시스템의 빌드 출력을 다시 사용할 수 있습니다. 예를 들어 개발자는 로컬 컴퓨터에서 CI 실행으로 생성된 이진 패키지를 사용할 수 있습니다. vcpkg에서 생성된 이진 파일을 재사용하고 통합하는 다른 방법은 다음을 참조 vcpkg export하세요.

예를 들어 CI 파이프라인에서 빌드된 이진 패키지를 수락하고 개발 환경에서 다시 사용하도록 Azure Artifacts에 호스트되는 NuGet 피드를 구성할 수 있습니다.

Azure DevOps 파이프라인에 읽기 및 쓰기 권한을 부여하고 개발 팀의 호스트에 대한 읽기 전용 권한을 부여하도록 Azure Artifacts 피드를 구성해야 합니다.

기본 이진 캐시

이진 캐싱은 기본적으로 다음과 같은 첫 번째 유효한 위치에 있는 files 공급자 와 함께 사용하도록 설정됩니다.

  • Windows
  1. %VCPKG_DEFAULT_BINARY_CACHE%
  2. %LOCALAPPDATA%\vcpkg\archives
  3. %APPDATA%\vcpkg\archives
  • 비 Windows
  1. $VCPKG_DEFAULT_BINARY_CACHE
  2. $XDG_CACHE_HOME/vcpkg/archives
  3. $HOME/.cache/vcpkg/archives

축소된 도구 내 도움말은 .를 통해 vcpkg help binarycaching사용할 수 있습니다.

이진 캐싱은 빌드하는 이진 파일만 포함합니다. 원본 파일 및 미리 빌드된 도구를 캐시하려면 자산 캐싱을 참조하세요.

다음 단계

이진 캐시 및 구성 구문 참조를 설정하는 방법을 알아보려면 자습서를 읽어보세요.