通过DevOps流水线构建Ubuntu 22.04镜像时安装libntlm0包失败求助
通过DevOps流水线构建Ubuntu 22.04镜像时安装libntlm0包失败求助
看起来你遇到的是PPA源的GPG密钥验证失败问题,核心原因是你当前脚本里密钥导入的时机不对——你先执行了apt-get update,之后才导入Ondrej PHP PPA的密钥,这就导致apt在验证源签名的时候找不到对应的密钥,直接触发了报错。
我帮你调整了脚本的执行顺序,把密钥导入步骤提前到添加源之后、第一次apt更新之前,这样apt就能正确验证PPA的签名了。修正后的完整脚本如下:
# 执行基础更新修复可能存在的源问题 sudo apt update --fix-missing # 添加所需的软件源 echo deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main >> /etc/apt/sources.list echo deb http://azure.archive.ubuntu.com/ubuntu jammy main universe multiverse restricted >> /etc/apt/sources.list echo deb http://azure.archive.ubuntu.com/ubuntu jammy-updates main multiverse universe restricted >> /etc/apt/sources.list # 先导入PPA对应的GPG密钥,确保源签名可被验证 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4f4ea0aae5267a6c # 更新apt源缓存 sudo apt-get update # 清理无效缓存 sudo apt clean && sudo apt autoclean # 自动安装目标包(-y参数避免流水线需要手动确认) sudo apt-get install -y libntlm0
另外补充两个实用小提示:
- 如果流水线环境的网络对HTTPS密钥服务器有限制,可以尝试改用HTTP端口连接密钥服务器:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4f4ea0aae5267a6c - 后续如果添加其他PPA源,记得遵循「添加源 → 导入对应密钥 → 更新apt缓存」的顺序,能避免绝大多数签名验证类问题
备注:内容来源于stack exchange,提问作者NNR
相关产品推荐
相关产品推荐

