Ubuntu安装VS Code时提示公钥缺失或依赖错误怎么解决
针对Ubuntu系统在安装Visual Studio Code时出现的NO_PUBKEY公钥缺失与未满足依赖错误,提供从底层原因排查、现代密钥导入到依赖链自动修复的完整图文解决步骤。
NO_PUBKEY);二是通过离线 deb 包安装时,系统未能自动补齐依赖的动态运行库(提示 Unmet dependencies)。解决这两类问题的核心逻辑是:先将 Microsoft 官方公钥以现代规范放入系统密钥环,再通过 APT 的依赖修复机制自动补齐断裂链条。本文将针对这两个具体报错,提供清晰、安全的处理步骤。
一、问题根源与排查分流
在动手敲命令之前,先观察终端给出的具体提示文字。不同的提示代表不同的系统机制发生了中断,不能使用同一种命令去盲目处理。
报错场景 A:公钥缺失(NO_PUBKEY)
当你执行 sudo apt update 时,终端输出类似以下警告或错误:
W: GPG error: https://packages.microsoft.com/repos/code stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EB3E94ADBE1229CF
E: The repository 'https://packages.microsoft.com/repos/code stable InRelease' is not signed.
这说明你的系统安装源列表中已经添加了 VS Code 的源地址,但本地 APT 信任库中没有微软官方的公钥,系统因出于防篡改安全验证而拒绝同步软件列表。
报错场景 B:依赖项未满足(Unmet dependencies)
当你直接从官网下载 .deb 文件并用 sudo dpkg -i code_*.deb 安装时,终端输出:
dpkg: dependency problems prevent configuration of code:
code depends on libasound2 (>= 1.0.17); however:
Package libasound2 is not installed.
dpkg: error processing package code (--install):
dependency problems - leaving unconfigured
这是因为 dpkg 只是一个低级解包工具,只负责安装给定的单体文件,它不会自动访问网络源去下载软件所需的关联库。
二、彻底解决 NO_PUBKEY 公钥缺失错误
在较旧的教程中,常常引导大家使用 apt-key add 命令。需要特别说明的是,在现代 Ubuntu(尤其是 20.04 及后续版本,如 22.04、24.04 等)中,apt-key 已经被弃用。它会将第三方密钥直接加入系统的全局全局信任池,存在安全隐患。
标准的做法是:通过 gpg --dearmor 将密钥下载并存储为独立文件,放到 /etc/apt/keyrings/ 目录,并在软件源声明中精确指定该密钥。
请按顺序在终端中执行以下四步:
第一步:安装基本工具并建立密钥存放目录
确保本地具备 curl 与 gpg 工具,同时在 /etc/apt/ 下创建规范的 keyrings 目录:
sudo apt-get update
sudo apt-get install -y wget gpg apt-transport-https
sudo install -d -m 0755 /etc/apt/keyrings
第二步:下载微软官方公钥并转换为系统所需的 GPG 格式
从微软源直接拉取公钥并转换为 .gpg 密钥文件放入刚创建的安全目录:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
rm -f packages.microsoft.gpg
第三步:将正确的软件源列表写入 apt 源文件
通过 signed-by 参数把刚才下载的密钥指定给微软的 VS Code 源,防止因源文件混淆产生验证缺失:
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
第四步:重新同步并安装
再次刷新软件源列表,此时警告与 NO_PUBKEY 错误将消失,随后可顺利完成安装:
sudo apt-get update
sudo apt-get install -y code
三、修复安装 deb 包时的“依赖未满足”错误
如果你是通过浏览器从 VS Code 官方网站直接下载的 code_*.deb 安装包,使用 dpkg -i 命令后提示依赖项缺失,请千万不要手动一个个去网上搜索并下载 .deb 依赖文件,这往往会陷入更严重的“依赖地狱”。
当系统停留在“未配置(unconfigured)”或“依赖未满足”状态时,直接执行系统内置的修复中断指令:
执行命令:sudo apt-get --fix-broken install -y
原理说明:这个命令会让 APT 扫描本地状态库,发现 VS Code 处于由于依赖缺失而悬挂的状态。APT 会自动分析出其缺失的组件(例如 libasound2、libsecret-1-0 等),并通过官方镜像源将它们一次性拉取并安装完毕,随后自动回过头来把 VS Code 的配置过程跑完。
.deb 包,建议避免直接运行 sudo dpkg -i ./code_*.deb,而是直接使用 sudo apt install ./code_*.deb(注意文件名开头必须带 ./ 以便让 APT 识别为本地路径)。APT 从一开始就会主动分析并自动为你拉取全部缺失的依赖项。
四、结果验证与冲突排查
在执行完上述修复之后,你可以通过以下两个步骤确认问题是否已经彻底排除。
1. 检查 APT 源状态与软件启动
在终端中直接运行一次源同步和程序唤醒测试:
执行命令:sudo apt update
code --version
如果在执行 apt update 过程中,与 packages.microsoft.com 相关的条目状态均显示为 Hit 或 Get,末尾没有报错;且 code --version 能够正确输出形如 1.8x.x 的版本号和 Commit 哈希,则证明安装和密钥验证均已完全恢复正常。
2. 常见冲突与注意点
- 旧版密钥警告残留:如果终端提示类似
Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg),说明系统全局池里还存有旧密钥。可以查看/etc/apt/trusted.gpg或/etc/apt/trusted.gpg.d/目录下是否有与微软旧键相关的废弃文件,将其清理即可。 - 重复添加源:如果
sudo apt update出现Target Packages is configured multiple times,表明在/etc/apt/sources.list或者/etc/apt/sources.list.d/中有多个文件重复声明了 VS Code 的软件源。只需保留一个规范的vscode.list,把其余重复项删除。
按照上述方法处理后,你的 Ubuntu 环境不仅能顺利打开 VS Code,同时也建立了规范的官方更新机制。日后系统更新时,VS Code 会随着 sudo apt upgrade 自动获取最新版本,不会再因为签名缺失或残余依赖而频繁弹出错误。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









