vcpkg 的离线使用

本文档详细介绍了在没有实时 Internet 连接的环境中部署 vcpkg 的两种可靠方法。

方法 1:预生成和导出包

此方法使用 export 命令 在连接 Internet 的系统上创建全面的捆绑包。 该过程将二进制文件、标头和所有可传递依赖项编译为适合脱机部署的自包含 SDK 捆绑包。

导出教程 - 创建自包含 SDK 捆绑包开始。

优点和缺点

优点

  • 使用命令将所有必需的组件捆绑到单个存档 export 中。
  • 易于入门。
  • 极其可靠。

缺点

  • 必须在连接的系统上执行更新和源开发。
  • 库更新时涉及额外维护。
  • 无法处理仅离线的私有库。
  • 没有很好地适应多个不同使用者的需求 —— 每个使用者都需要单独的捆绑包。

方法 2:重定向外部资源访问

此策略通过将 Git URL 重定向与资产缓存相结合,允许控制对外部资源的访问。 在不需要完整的离线捆绑包的情况下,这是一种有效的替代方案。

Git 重定向

Git 注册表和某些端口源是使用 git 协议提取的,该协议可能引用脱机环境外部的资源。 以下 Git 配置演示如何将来自标准存储库的请求重定向到内部镜像:

[url "https://internal/mirror/of/vcpkg"]
    insteadOf = https://github.com/microsoft/vcpkg

还可以通过命令行应用此配置:

git config --global url."https://internal/mirror/of/vcpkg".insteadOf "https://github.com/microsoft/vcpkg"

有关详细信息,请参阅 Git 官方文档中的使用 Git URL 重定向 (insteadOf)

资产缓存

资产缓存将下载存储在本地或远程存储解决方案上,从而增强生成性能和提高网络安全。 资产缓存教程资产缓存配置参考中提供了详细说明。

优点和缺点

优点

  • 通过重用缓存的资源加速构建。
  • 删除对连续 Internet 连接的依赖项。
  • 支持脱机重新生成,使工具链或标志更改更容易。
  • 可以很好地扩展到具有不同库子集的多个不同使用者。

缺点

  • 涉及额外设置。
  • 需要维护内部镜像和缓存基础结构。

结论

可以通过以下方法在隔离环境中部署 vcpkg:

  • 预构建和导出完整的捆绑包。
  • 配置 Git 重定向与资产缓存相结合,以便进行受控的外部访问。

选择最适合基础结构和部署要求的方法。

其他资源

  1. Export 命令
  2. 资产缓存配置参考
  3. 使用 Git URL 重定向 (insteadOf)