Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.

vcpkg

Контекст vcpkg — пакетный менеджер для C/C++ от Microsoft. В manifest‑режиме состав зависимостей объявлен в vcpkg.json, а версии пинуются через baseline и overrides в vcpkg-configuration.json. Ключевая для SCA особенность: vcpkg сам генерирует SPDX‑SBOM на каждый установленный порт — редкая ситуация, когда C/C++ зависимость приходит вместе с готовым машиночитаемым описанием.

Для чего

vcpkg собирает и устанавливает C/C++ библиотеки из «портов», интегрируется с CMake через toolchain‑файл и выдаёт цели для линковки. Для инвентаризации он ценен тем, что фиксирует версии (baseline) и кладёт рядом с каждым пакетом SPDX‑документ, описывающий компонент и его происхождение.

Как применяют

Manifest‑режим с воспроизводимыми версиями:

// vcpkg.json
{
  "dependencies": ["openssl", "zlib", { "name": "boost-asio", "version>=": "1.84.0" }],
  "builtin-baseline": "a1b2c3d4e5f6..."
}

Установка и интеграция со сборкой:

vcpkg install --triplet x64-linux
cmake -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake

После установки SBOM каждого порта лежит здесь:

vcpkg_installed/<triplet>/share/openssl/vcpkg.spdx.json

Эти per‑package SPDX‑документы агрегируются в общий SBOM проекта.

Сильные стороны

Ограничения

Offline / on-premise

Да. vcpkg поддерживает asset caching (X_VCPKG_ASSET_SOURCES) и binary caching (VCPKG_BINARY_SOURCES) — исходники и собранные бинарные пакеты кладутся во внутреннее хранилище/прокси, после чего установка идёт без выхода в интернет. Реестр портов хранится как git‑репозиторий и зеркалируется во внутренний контур.

Связанные темы

М09 C/C++ legacy · М05 Генерация SBOM · М03 Форматы SBOM · П21. Conan graph и package identity · П31. Пилот CodeScoring make CMake qmake · Conan · CMake · SPDX