Loading... 在 Ubuntu 24.04 上,如果你在更新或安装软件时遇到以下错误: ``` 错误:8 llvm 由于没有公钥:无法验证下列签名 NO_PUBKEY <KEY_ID> ``` 这个错误通常是由于缺少与软件包源相关联的 GPG 公钥。每个软件包源(repository)都使用一个 GPG 密钥来签署它的包文件,以确保包的完整性和来源的可信性。当系统无法找到与该签名对应的公钥时,就会出现上述错误。 ### 解决步骤: #### 1. 获取缺失的公钥 错误信息中会提示缺失的公钥 ID。假设缺失的公钥 ID 是 `12345678ABCDEF12`,你可以使用以下命令从 Ubuntu 的密钥服务器获取这个公钥: ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678ABCDEF12 ``` **解释**: - `apt-key adv`:这个命令用于管理 APT 的密钥。 - `--keyserver keyserver.ubuntu.com`:指定 Ubuntu 官方的密钥服务器,确保公钥来源安全。 - `--recv-keys 12345678ABCDEF12`:下载并添加与缺失公钥 ID 相匹配的公钥。 #### 2. 更新软件包缓存 成功导入公钥后,重新更新软件包缓存以确保系统可以正确识别新的公钥: ```bash sudo apt update ``` **解释**: - `apt update` 命令用于刷新 APT 的软件包缓存,确保系统可以识别到新添加的签名密钥。 #### 3. 重新尝试安装或更新 现在,重新尝试你之前的安装或更新命令,看看问题是否解决: ```bash sudo apt upgrade ``` 或者: ```bash sudo apt install <package-name> ``` #### 4. 如果仍然出现错误 如果在添加密钥后仍然出现公钥问题,可以尝试以下解决方法: 1. **手动下载并添加密钥文件** 在某些情况下,可以直接从软件包源的官网上手动下载并导入密钥文件。以下是通用步骤: - 首先访问相关软件包源的官网,找到提供的 GPG 公钥文件。 - 下载公钥文件(通常是 `.asc` 或 `.gpg` 文件)。 - 使用以下命令将其导入系统: ```bash sudo apt-key add <keyfile.asc> ``` **解释**: - `apt-key add` 命令用于将本地下载的公钥文件导入到系统的 APT 密钥环中。 2. **将密钥迁移到 `/etc/apt/trusted.gpg.d/`** 你也可以将下载的 `.asc` 或 `.gpg` 文件复制到 `/etc/apt/trusted.gpg.d/` 目录下,以确保 APT 可以信任该密钥。 ### 思维导图 ```mind Ubuntu 24.04 解决 NO_PUBKEY 错误 1. 获取缺失的公钥 1.1 使用 apt-key 命令从 Ubuntu 密钥服务器获取公钥 1.2 指定公钥 ID 2. 更新软件包缓存 2.1 运行 apt update 刷新缓存 3. 重新尝试安装或更新 3.1 运行 apt install 或 apt upgrade 4. 其他解决方法 4.1 手动下载并导入公钥文件 4.2 将密钥文件移动到 /etc/apt/trusted.gpg.d/ ``` ### 总结 通过上述步骤,应该能够解决 Ubuntu 24.04 系统中由于缺少公钥导致的软件包签名错误问题。正确的密钥管理对于保持系统软件源的安全性至关重要,因此在处理此类错误时,确保公钥来源的可信性非常重要。如果问题依然存在,可以检查软件源配置或联系软件包源的维护者获取最新的公钥。 最后修改:2024 年 08 月 23 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏