You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 24.04自动化安装vcpkg遇metrics.cpp崩溃问题求助

解决vcpkg在Ubuntu 24.04自动化部署时的"unreachable code was reached"崩溃问题

在重复部署Ubuntu 24.04系统的自动化配置流程中,vcpkg bootstrap阶段反复出现崩溃,错误信息如下:

Downloading vcpkg-glibc...
vcpkg package management program version 2025-06-20-ef7c0d541124bbdd334a03467e7edb6c3364d199

See LICENSE.txt for license information.
[91m/source/src/vcpkg/metrics.cpp(176): unreachable code was reached
[0mAborted (core dumped)

相关自动化脚本片段:

if [[ ! -f "${USER_HOME}/.l.done" ]]; then
      log "[4/7] Cloning and bootstrapping vcpkg"
      cd "${USER_HOME}"
      rm -rf "$VCPKG_DIR"
      git clone https://github.com/microsoft/vcpkg "$VCPKG_DIR"
      cd "$VCPKG_DIR"
      # Disable metrics properly
      export VCPKG_METRICS_OPT_OUT=1
      ./bootstrap-vcpkg.sh --disableMetrics
      log "vcpkg ready at $VCPKG_DIR/vcpkg"
      touch "${USER_HOME}/.l.done"
    else
      log "[4/7] skipped"
    fi

解决步骤

  • 强制从源码编译vcpkg:Ubuntu 24.04自带的glibc 2.39和vcpkg预编译的二进制包存在兼容性问题,bootstrap时加上--no-download参数,避免下载预编译的glibc适配包,直接从源码编译:
    修改bootstrap命令为:

    ./bootstrap-vcpkg.sh --disableMetrics --no-download
    
  • 提前设置metrics禁用变量:把export VCPKG_METRICS_OPT_OUT=1移到git clone之前,确保整个vcpkg初始化过程都能读取到该变量,避免metrics模块初始化时的逻辑冲突:

    export VCPKG_METRICS_OPT_OUT=1
    git clone https://github.com/microsoft/vcpkg "$VCPKG_DIR"
    
  • 清理残留缓存:每次部署前清理vcpkg的缓存目录,避免旧的预编译文件干扰:
    在rm -rf "$VCPKG_DIR"后加上:

    rm -rf "${USER_HOME}/.cache/vcpkg"
    

修改后的完整脚本片段

if [[ ! -f "${USER_HOME}/.l.done" ]]; then
      log "[4/7] Cloning and bootstrapping vcpkg"
      cd "${USER_HOME}"
      rm -rf "$VCPKG_DIR"
      rm -rf "${USER_HOME}/.cache/vcpkg"
      # Disable metrics before cloning to ensure full coverage
      export VCPKG_METRICS_OPT_OUT=1
      git clone https://github.com/microsoft/vcpkg "$VCPKG_DIR"
      cd "$VCPKG_DIR"
      ./bootstrap-vcpkg.sh --disableMetrics --no-download
      log "vcpkg ready at $VCPKG_DIR/vcpkg"
      touch "${USER_HOME}/.l.done"
    else
      log "[4/7] skipped"
    fi

内容的提问来源于stack exchange,提问作者Anthony Persson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:12:16