Ubuntu安装VS Code时提示公钥缺失或依赖错误怎么解决

Felix
Felix
发布时间:2026-11-07| 4人浏览过
原创

针对Ubuntu系统在安装Visual Studio Code时出现的NO_PUBKEY公钥缺失与未满足依赖错误,提供从底层原因排查、现代密钥导入到依赖链自动修复的完整图文解决步骤。

在 Ubuntu 上安装 Visual Studio Code 时遇到阻碍,绝大多数情况由两类原因引起:一是配置软件源时缺少对应的 GPG 验证公钥(报错提示 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 只是一个低级解包工具,只负责安装给定的单体文件,它不会自动访问网络源去下载软件所需的关联库。

Ubuntu安装VS Code时提示公钥缺失或依赖错误怎么解决
图 1:安装 VS Code 异常表现与排查路径分流

二、彻底解决 NO_PUBKEY 公钥缺失错误

在较旧的教程中,常常引导大家使用 apt-key add 命令。需要特别说明的是,在现代 Ubuntu(尤其是 20.04 及后续版本,如 22.04、24.04 等)中,apt-key 已经被弃用。它会将第三方密钥直接加入系统的全局全局信任池,存在安全隐患。

标准的做法是:通过 gpg --dearmor 将密钥下载并存储为独立文件,放到 /etc/apt/keyrings/ 目录,并在软件源声明中精确指定该密钥。

Ubuntu安装VS Code时提示公钥缺失或依赖错误怎么解决
图 2:现代 Linux 密钥安全导入与源配置步骤

请按顺序在终端中执行以下四步:

第一步:安装基本工具并建立密钥存放目录
确保本地具备 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 依赖文件,这往往会陷入更严重的“依赖地狱”。

Ubuntu安装VS Code时提示公钥缺失或依赖错误怎么解决
图 3:离线包依赖缺失机制与 APT 修复原理

当系统停留在“未配置(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时提示公钥缺失或依赖错误怎么解决
图 4:两类核心故障的原因分析与最终处理对策对照总结

按照上述方法处理后,你的 Ubuntu 环境不仅能顺利打开 VS Code,同时也建立了规范的官方更新机制。日后系统更新时,VS Code 会随着 sudo apt upgrade 自动获取最新版本,不会再因为签名缺失或残余依赖而频繁弹出错误。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。