源码安装HHVM 3.30时git子模块更新出现gnutls握手失败报错
报错原因
HHVM 3.30分支配置的cudf子模块远端地址https://scm.gforge.inria.fr/anonscm/git/cudf/cudf.git/已停止服务,gnutls握手失败是远端源不可用导致,和本地git、gnutls配置无关。
解决步骤
- 拉取HHVM仓库并切换到3.30版本分支:
git clone https://github.com/facebook/hhvm.git cd hhvm git checkout HHVM-3.30
- 替换失效的cudf子模块源地址为可用镜像:
git config submodule.third-party/ocaml/opam_deps/cudf.url https://github.com/ocaml-opam/cudf.git
- 同步子模块配置后重新拉取所有子模块:
git submodule sync --recursive git submodule update --init --recursive
- 若后续拉取其他同域名下的ocaml依赖时出现同类TLS报错,按相同逻辑将对应子模块的url替换为GitHub上的同名官方镜像仓库,再重新执行sync和update操作即可。
- 所有子模块拉取完成后,继续执行原有编译安装流程:
cmake -DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock . make -j $(nproc) make install cd .. && rm -rf /hhvm
注意事项
- 不要通过关闭git SSL校验、降级gnutls版本的方式绕过报错,这类操作会引入不必要的安全风险,且无法解决源站停止服务的根本问题。
- 若GitHub拉取速度较慢,可提前为git配置代理,不会影响子模块拉取逻辑。
内容的提问来源于stack exchange,提问作者Zahra Heydari
相关产品推荐
相关产品推荐

