按LLVM官网配置仓库后无法找到clang-format-15,该如何解决?
解决GitHub Action中Ubuntu 20.04无法找到clang-format-15的问题
你的脚本核心问题在于GPG密钥的关联方式,原脚本用apt-key add添加密钥,但这种方式无法确保密钥与LLVM源正确绑定,导致apt在更新时可能忽略该源,进而搜不到clang-format-15。
修正后的脚本
# 添加带签名验证的LLVM源 echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" | sudo tee /etc/apt/sources.list.d/llvm.list echo "deb-src [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list # 导入并存储GPG密钥到系统指定目录 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/llvm-snapshot.gpg.key # 更新apt缓存 sudo apt update
关键修正点
- 在源定义中添加
signed-by参数,明确指定验证该源的密钥文件路径,确保apt信任这个源的包 - 用
gpg --dearmor将下载的密钥转换为二进制格式,存储到/usr/share/keyrings/目录(这是当前推荐的密钥管理方式,替代已弃用的apt-key add)
额外检查项
- 确认GitHub Action的运行环境确实是Ubuntu 20.04,即Workflow中设置
runs-on: ubuntu-20.04 - 执行
sudo apt update时查看输出,确保没有出现密钥验证失败、源无法访问等错误 - 若仍有问题,可执行
sudo apt-cache policy clang-format-15查看包的来源信息,确认LLVM源是否被正确加载
内容的提问来源于stack exchange,提问作者bcaddy
相关产品推荐
相关产品推荐

