다음을 통해 공유


vcpkg install

개요

  • 클래식 모드
vcpkg install [options] <package>...
  • 매니페스트 모드
vcpkg install [options]

설명

포트 패키지를 빌드하고 설치합니다.

클래식 모드

클래식 모드에서 이 동사는 설치된 디렉터리의 기존 집합에 포트 패키지를 추가합니다installed/(기본적으로 vcpkg 루트 아래에 있음). 이를 위해서는 기존 패키지를 제거하고 다시 빌드해야 할 수 있으며, 이는 실패할 수 있습니다.

패키지 구문

portname[feature1,feature2]:triplet

트리플렛이 없는 패키지 참조는 기본 대상 트리플렛의해 자동으로 정규화됩니다. 명시적으로 나열 core 되지 않는 패키지 참조는 모든 기본 기능을 의미하는 것으로 간주됩니다.

매니페스트 모드

매니페스트 모드에서 이 명령은 설치된 디렉터리를 필요에 따라 패키지를 추가, 제거 또는 다시 빌드하여 매니페스트 파일에서 지정 vcpkg.json 한 상태로 설정합니다.

옵션

모든 vcpkg 명령은 일반적인 옵션 집합 을 지원합니다.

--allow-unsupported

지원되지 않는 포트에서 중지하는 대신 경고를 계속합니다.

기본적으로 vcpkg는 절 외부 "supports" 의 triplet에 대한 포트 설치가 포함된 설치 계획을 실행하지 않습니다. 패키지 절은 "supports" 패키지를 빌드할 수 있을 것으로 예상되는 전체 플랫폼 집합을 설명합니다. 이 플래그는 중지하는 대신 빌드가 실패할 것으로 예상된다는 경고를 vcpkg에 지시합니다.

--clean-after-build

각 패키지를 빌드한 후 빌드 트리, 패키지 및 다운로드를 정리합니다.

이 옵션은 전달 --clean-buildtrees-after-build--clean-downloads-after-build--clean-packages-after-build.

--clean-buildtrees-after-build

각 패키지를 빌드한 후 빌드 트리 임시 하위 폴더에서 모든 하위 디렉터리를 정리합니다.

빌드 트리 하위 폴더의 모든 최상위 파일(예: buildtrees/zlib/config-x64-windows-out.log)은 유지됩니다. 모든 하위 디렉터리가 삭제됩니다.

--clean-downloads-after-build

각 패키지를 빌드한 후 폴더에서 downloads/ 추적되지 않은 자산을 모두 정리합니다.

폴더의 downloads/ 모든 최상위 파일이 삭제됩니다. 추출된 도구는 유지됩니다.

--clean-packages-after-build

각 패키지를 빌드한 후 패키지 임시 하위 폴더를 정리합니다.

빌드된 패키지의 패키지 하위 폴더(예: packages/zlib_x64-windows)는 설치 후 삭제됩니다.

--dry-run

설치 계획을 인쇄하지만 패키지를 제거하거나 설치하지 마세요.

설치 계획에는 설치할 모든 패키지 및 기능과 제거 및 다시 빌드해야 하는 다른 패키지가 나열됩니다.

--editable

  • 클래식 모드만

명령줄에서 직접 참조된 모든 패키지에 대해 편집 가능한 빌드를 수행합니다.

vcpkg는 포트를 빌드할 때 매번 소스 코드를 제거하고 다시 추출하여 입력이 정확하게 유지되도록 합니다. 매니페스트 모드가 설치된 내용을 정확하게 업데이트하고 캐시된 콘텐츠가 올바른지 확인하기 위해 이진 캐싱에 필요합니다.

플래그를 전달하면 --editable 이 동작이 비활성화되고 폴더의 추출된 원본에 대한 편집 내용이 buildtrees/ 유지됩니다. 이렇게 하면 각 변경 내용에 대한 파일을 작성할 필요가 없도록 하여 패치를 빠르게 개발할 수 있습니다.

편집 가능한 빌드 중에 추출된 원본은 .clean/ 디렉터리 이름에 접미사가 없으며 편집할 수 없는 후속 빌드에서 지워지지 않습니다.

--enforce-port-checks

포트에서 문제를 감지하거나 사용되지 않는 기능을 사용하려고 하면 설치에 실패합니다.

기본적으로 vcpkg는 빌드된 패키지에서 여러 검사 실행하고 문제가 발견되면 경고를 내보낸다. 이 플래그는 해당 경고를 오류로 업그레이드합니다.

--x-feature=<feature>

참고 항목

이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.

  • 매니페스트 모드만

종속성을 설치할 추가 기능을vcpkg.json 지정합니다.

기본적으로 종속성 "default-features""dependencies" 설치됩니다.

--head

  • 클래식 모드만

빌드할 때 사용 가능한 최신 소스를 가져오도록 명령줄에서 명시적으로 참조된 모든 패키지를 요청합니다.

이 플래그는 임시 테스트용이며 프로덕션 또는 장기 사용을 위한 것이 아닙니다. vcpkg가 모든 입력을 정확하게 추적할 수 없으므로 명시적으로 참조된 모든 패키지 및 해당 종속에 대해 이진 캐싱 을 사용하지 않도록 설정합니다.

--keep-going

첫 번째 실패 후 설치 계획을 계속합니다.

기본적으로 vcpkg는 첫 번째 패키지 빌드 실패 시 중지됩니다. 이 플래그는 실패한 패키지에 의존하지 않는 설치 계획의 다른 부분을 계속 빌드하고 설치하도록 vcpkg에 지시합니다.

--x-no-default-features

참고 항목

이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.

  • 매니페스트 모드만

최상위 매니페스트에서 기본 기능을 설치하지 마세요.

매니페스트 모드에서 사용하는 install 경우 기본적으로 나열된 "default-features" 기능의 모든 종속성이 설치됩니다. 이 플래그는 해당 동작을 사용하지 않도록 설정하므로 명시적으로 사용하도록 설정된 --x-feature 기능만 설치됩니다.

--no-downloads

패키지를 빌드할 때 빌드하는 동안 포트가 새 자산을 다운로드하지 못하도록 합니다.

기본적으로 포트는 인터넷에서 요청 시 소스 코드 및 도구를 획득합니다(자산 캐싱따라). 이 매개 변수는 다운로드를 차단하고 이전에 컴퓨터에서 다운로드 및 캐시된 자산으로만 포트를 제한합니다.

--only-downloads

빌드를 수행하지 않고 설치 계획에 필요한 모든 자산을 다운로드합니다.

이 옵션을 통과하면 vcpkg는 첫 번째 비 다운로드 외부 프로세스 호출을 수행할 때까지 계획의 각 빌드를 실행합니다. 대부분의 포트는 첫 번째 외부 프로세스 호출(일반적으로 빌드 시스템)전에 모든 다운로드를 수행하므로 이 절차는 필요한 모든 자산을 다운로드합니다. 이 절차를 따르지 않는 포트에는 해당 자산이 미리 다운로드되지 않습니다.

--only-binarycaching

빌드 수행을 거부합니다. 이진 캐시에서 만 패키지를 복원합니다.

이 플래그는 vcpkg가 요청 시 빌드를 수행하지 못하도록 차단하고 패키지를 이진 캐시에서 찾을 수 없는 경우 실패합니다.

--recurse

  • 클래식 모드만

패키지를 다시 빌드해야 하는 설치 계획을 승인합니다.

설치된 패키지의 기능 집합을 수정하려면 vcpkg에서 해당 패키지를 제거하고 다시 빌드해야 합니다. 이로 인해 사용자가 시작한 것보다 적은 수의 패키지로 설치 트리가 실패하고 종료될 가능성이 있으므로 사용자는 이 플래그를 전달하여 패키지를 다시 빌드하는 계획을 승인해야 합니다.

--x-use-aria2

참고 항목

이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.

aria2를 사용하여 다운로드 작업을 수행합니다.

--x-write-nuget-packages-config

참고 항목

이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.

이진 캐싱에 사용할 NuGet packages.config형식 파일을 작성합니다.

이 옵션은 패키지를 빌드하거나 설치하지 않고 이진 캐싱에서 필요한 NuGet 패키지 목록을 가져오는 데 함께 --dry-run 사용할 수 있습니다. 이렇게 하면 대체 프로토콜을 사용하여 파일을 획득 .nupkg 하는 등의 고급 시나리오에 대해 NuGet 명령줄을 별도로 호출할 수 있습니다.

--no-print-usage

설치가 끝날 때 인쇄된 사용량 텍스트 생성을 표시하지 않습니다.