GitHub CI突发libcurl4-openssl-dev安装失败问题咨询
解决GitHub CI中apt-get安装libcurl4-openssl-dev出现404的问题
一、修复APT源问题
出现404大概率是CI环境里的Ubuntu源地址失效(比如旧版本Ubuntu的官方源被归档),或是源缓存未更新。以下是两种可行方案:
方案1:切换到官方归档源(针对旧Ubuntu版本)
如果你的CI用的是Ubuntu 18.04及更早版本,官方主源已停止维护,需要切换到归档源:
# 替换源地址为官方归档地址 sudo sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list # 更新源缓存 sudo apt-get update # 重新安装目标库 sudo apt-get install -y --no-install-recommends libcurl4-openssl-dev
方案2:使用国内镜像源(更稳定快速)
国内镜像源同步及时,不容易出现404,还能适配当前Ubuntu版本:
# 获取当前Ubuntu版本代号(如focal=20.04,jammy=22.04) CODENAME=$(lsb_release -cs) # 清空原有源列表并写入国内源 sudo rm /etc/apt/sources.list sudo tee /etc/apt/sources.list <<EOF deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $CODENAME main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $CODENAME-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $CODENAME-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $CODENAME-security main restricted universe multiverse EOF # 更新源缓存后安装 sudo apt-get update sudo apt-get install -y --no-install-recommends libcurl4-openssl-dev
二、预装该库的GitHub CI Ubuntu镜像
官方镜像:GitHub提供的
ubuntu-latest(当前对应22.04)或ubuntu-22.04镜像,默认预装了大量常用开发依赖,其中就包含libcurl4-openssl-dev。如果还在使用旧版本镜像(如ubuntu-18.04),建议直接切换到最新版,既能避免源的问题,也无需手动安装依赖。自定义Docker镜像:需要固定环境的话,可以自行构建预装
libcurl4-openssl-dev的Docker镜像,推送到Docker Hub或GitHub容器仓库,然后在CI的jobs.<job_id>.container字段指定该镜像。示例Dockerfile:
FROM ubuntu:22.04 RUN apt-get update && apt-get install -y --no-install-recommends libcurl4-openssl-dev && rm -rf /var/lib/apt/lists/*
内容的提问来源于stack exchange,提问作者Meltemi
相关产品推荐
相关产品推荐

