本文档详细介绍了在没有实时 Internet 连接的环境中部署 vcpkg 的两种可靠方法。
方法 1:预生成和导出包
此方法使用 export
命令 在连接 Internet 的系统上创建全面的捆绑包。 该过程将二进制文件、标头和所有可传递依赖项编译为适合脱机部署的自包含 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 重定向与资产缓存相结合,以便进行受控的外部访问。
选择最适合基础结构和部署要求的方法。