ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Ubuntu 18.04安装VSCode:APT源、Snap与deb包方案全解析

Ubuntu 18.04安装VSCode:APT源、Snap与deb包方案全解析 1. 项目概述与核心价值最近在帮几个刚接触Linux开发环境的朋友配置机器发现一个挺普遍的现象很多人从Windows或macOS切换到Ubuntu这类Linux发行版后第一道坎往往不是命令行而是找一个趁手的代码编辑器。大家习惯了各种集成开发环境的便利突然面对一个相对“原始”的桌面环境会有点不知所措。其中Visual Studio Code简称VSCode几乎是大家点名率最高的工具。它轻量、免费、插件生态丰富对前端、后端、脚本乃至文档编写都支持得非常好。然而在Ubuntu 18.04 LTS这个依然被许多企业和个人使用的稳定版本上安装VSCode却不是一个“双击安装包”那么简单直接的过程里面有几个关键选择会直接影响后续的使用体验比如软件源的稳定性、更新机制、以及图形化启动的兼容性。这篇内容我就以Ubuntu 18.04为例把几种主流安装方法掰开揉碎了讲清楚不仅仅是告诉你敲哪条命令更重要的是解释每种方法背后的原理、适用场景以及我踩过坑后总结的实操要点。无论你是刚装好Ubuntu的新手还是需要为团队统一部署开发环境的老手都能在这里找到可靠且一劳永逸的解决方案。我们的目标很简单在Ubuntu 18.04上安全、稳定、便捷地安装好VSCode并让它能完美融入你的工作流。2. 安装方案深度解析与选型指南面对安装你首先会搜到至少三种方法从官网下载.deb包直接安装、通过Snap包管理器安装、以及添加微软官方APT软件源后用apt命令安装。这三种方式各有优劣选择哪种不是拍脑袋而是要看你的具体需求和对系统管理的理解深度。2.1 直接下载.deb包安装最直观但后续维护麻烦这是很多新手的第一选择因为操作最像Windows访问VSCode官网点击下载那个大大的“.deb for Debian/Ubuntu”按钮然后在文件管理器里双击安装。系统会调用默认的软件中心如gnome-software来完成安装。这个方法确实简单但其弊端在后续才会显现。最大的问题是更新依赖手动操作。VSCode更新频率很高你无法通过系统的sudo apt update sudo apt upgrade命令来更新它。每次更新都需要重复“下载-双击”的过程长期来看非常低效。此外这种方式安装的包其软件源信息可能不完整在某些依赖检查或系统清理时可能会遇到小问题。因此我只推荐在临时、单次使用的场景下考虑此法对于打算长期使用的生产或学习环境这不是个好选择。2.2 通过Snap安装系统集成度高但存在潜在兼容性问题Ubuntu自16.04版本开始大力推广Snap这是一种跨Linux发行版的软件打包格式。通过Snap安装VSCode非常简单只需一条命令sudo snap install --classic code。Snap的优势在于自动更新和沙盒化安全。安装后你几乎不用操心更新后台会自动处理。然而Snap版本的VSCode有时会存在一些让人头疼的兼容性问题尤其是在图形界面和文件系统访问方面。我遇到过几次通过Snap安装的VSCode无法正常调用系统主题、托盘图标显示异常或者访问挂载的NTFS分区时权限诡异的情况。这是因为Snap的严格沙盒限制有时会与传统的桌面环境集成产生摩擦。如果你追求极致的稳定性和对系统深度集成比如完美的全局菜单支持、无感的文件访问Snap版本可能需要一些额外的配置调整。2.3 通过官方APT源安装平衡稳定性与可维护性的推荐方案这是我个人最推荐也是为团队部署时最常用的方法。它的核心思想是将微软维护的VSCode软件仓库添加到Ubuntu系统的软件源列表里。这样VSCode就被当作一个系统级的正规软件包来管理。好处非常明显你可以使用熟悉的apt命令来安装、更新和卸载VSCode更新过程与系统其他软件同步管理起来极其方便。同时因为是官方提供的仓库软件包的兼容性和稳定性通常比Snap版本更好更贴近原生体验。这种方法稍微多几个步骤但一劳永逸后续管理成本几乎为零。接下来我们就重点详解这种方法的完整操作流程和每一个细节。注意在开始任何安装操作前请确保你的Ubuntu 18.04系统已经连接到网络并且拥有sudo权限。建议先执行sudo apt update刷新本地软件包索引确保系统处于最新状态。3. 通过APT源安装VSCode的完整实操流程下面我们一步步走通通过官方APT源安装VSCode的整个过程。我会解释每一条命令的作用这样即使你是Linux新手也能明白自己在做什么而不是机械地复制粘贴。3.1 步骤一导入微软GPG公钥Linux系统通过APT管理软件包时非常重视安全性。软件源提供的包必须经过数字签名验证以确保它们来自可信的发布者且未被篡改。GPG密钥就是用来验证签名的。打开终端快捷键CtrlAltT输入以下命令wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/vscode.gpg /dev/null我们来拆解这条“管道”命令wget -qO- https://packages.microsoft.com/keys/microsoft.ascwget是一个网络下载工具。-q参数表示静默模式不输出额外信息-O-表示将下载的内容输出到标准输出即终端屏幕。这部分命令的作用是从微软的指定URL下载GPG公钥文件。gpg --dearmorgpg是GNU隐私卫士工具。下载下来的密钥是ASCII格式.asc而APT软件源通常需要二进制格式.gpg。--dearmor参数的作用就是执行这个格式转换。sudo tee /usr/share/keyrings/vscode.gpg /dev/nulltee命令通常用于同时输出到屏幕和文件。这里用sudo提权将上一步转换好的二进制密钥写入到系统级的密钥环目录/usr/share/keyrings/下并命名为vscode.gpg。 /dev/null则将原本会输出到屏幕的内容丢弃让终端看起来更整洁。执行这条命令后不会有成功提示这是正常的。你可以通过ls /usr/share/keyrings/命令来确认vscode.gpg文件是否已经存在。3.2 步骤二添加VSCode的APT软件源接下来我们需要告诉APT工具去哪里寻找VSCode的软件包。这通过创建一个源列表文件来实现。在终端中执行以下命令echo deb [archamd64 signed-by/usr/share/keyrings/vscode.gpg] https://packages.microsoft.com/repos/code stable main | sudo tee /etc/apt/sources.list.d/vscode.list再次拆解deb [...] https://packages.microsoft.com/repos/code stable main这是一个标准的Debian系软件源格式。deb表示这是一个二进制软件仓库。[archamd64 signed-by/usr/share/keyrings/vscode.gpg]这是可选的架构和签名验证声明。archamd64指定适用于64位系统。signed-by部分至关重要它明确指定了这个软件源使用的GPG密钥文件路径这是Ubuntu 18.04及之后版本更安全的做法能避免密钥环冲突。https://packages.microsoft.com/repos/code这是微软为VSCode维护的软件仓库地址。stable mainstable是发布通道稳定版main是软件包的分支。sudo tee /etc/apt/sources.list.d/vscode.list将上面定义的源字符串写入到/etc/apt/sources.list.d/目录下的一个新文件vscode.list中。系统在更新时会自动读取该目录下所有.list文件。3.3 步骤三更新软件包缓存并安装VSCode添加新源后必须更新本地的软件包索引这样APT才能知道新源里有哪些软件可用。sudo apt update执行sudo apt update后你应该能在输出信息中看到类似于“正在读取软件包列表... 完成”、“获取:7 https://packages.microsoft.com/repos/code stable InRelease [10.3 kB]”这样的提示这表明VSCode的软件源已经成功添加并被读取。最后安装VSCode稳定版sudo apt install code这里的code就是VSCode在APT仓库中的软件包名称。安装过程会提示你确认磁盘空间占用输入y并按回车即可。安装程序会自动处理所有依赖关系。3.4 步骤四验证安装与启动安装完成后你有多种方式启动VSCode终端启动直接在终端输入code并按回车。这是最快的方式也是后续常用方式例如code .打开当前目录。图形化启动在Ubuntu的应用程序菜单通常在屏幕左下角或左上角中搜索“Visual Studio Code”即可找到并点击启动。桌面快捷方式安装后通常会自动在应用程序菜单创建快捷方式你也可以将其锁定到侧边栏。首次启动可能会稍慢因为需要初始化环境。启动后你可以看到熟悉的VSCode界面。至此通过APT源安装的流程全部完成。4. 安装后的关键配置与优化技巧安装成功只是第一步要让VSCode在Ubuntu 18.04上用得顺手还需要进行一些关键配置。这些设置能显著提升你的开发体验。4.1 解决中文输入法问题Fcitx框架用户必看如果你使用的是Fcitx输入法框架如搜狗输入法、谷歌拼音等你可能会发现VSCode的编辑器区域无法输入中文但搜索框等地方却可以。这是一个经典问题原因是VSCode的Electron框架与某些Linux桌面环境变量不兼容。解决方法是在启动VSCode时注入一个特定的环境变量。最一劳永逸的方法是修改VSCode的桌面启动器文件。定位桌面文件sudo nano /usr/share/applications/code.desktop你会看到几个以[Desktop Entry]开头的段落分别对应不同的启动方式例如带和不带--no-sandbox参数。找到Exec字段它定义了启动命令。我们需要在Exec的值开头添加环境变量设置。修改Exec行。在原有的命令前加上env GTK_IM_MODULExim。例如原本是Exec/usr/share/code/code --unity-launch %F修改为Execenv GTK_IM_MODULExim /usr/share/code/code --unity-launch %F通常需要修改多处Exec行如Exec/usr/share/code/code --new-window等请确保所有Exec行都按此格式修改。保存并退出在nano编辑器中按CtrlX然后按Y确认再按回车。注销当前用户并重新登录使修改生效。之后从应用程序菜单启动的VSCode就应该能正常输入中文了。提示这个方法是通过强制VSCode使用xim这个旧的输入法协议来解决问题。虽然xim协议较老但在VSCode的兼容性上目前是最可靠的。如果你使用的是IBus输入法框架通常不会有此问题。4.2 将code命令添加到终端PATH的另一种方式通过APT安装后code命令通常已经可以直接在终端使用。如果万一无法使用除了重启终端还可以手动将其链接到用户bin目录sudo ln -sf /usr/share/code/bin/code /usr/local/bin/code这条命令创建了一个符号链接将VSCode的可执行脚本链接到/usr/local/bin目录下该目录通常默认在用户的PATH环境变量中。4.3 安装必备插件与同步设置VSCode的强大在于插件。安装完成后我建议首先安装以下几个提升效率和舒适度的插件Chinese (Simplified) Language Pack for Visual Studio Code官方中文语言包。Settings Sync如果你在其他机器上也用VSCode可以用这个插件通过Github Gist同步你的所有设置、插件和快捷键。Remote - SSH / Remote - Containers如果你需要连接远程服务器或在容器内开发这套远程开发插件是神器。你的语言相关插件如Python、Java、Go、Rust等语言的扩展包。安装插件只需点击左侧活动栏的扩展图标搜索并安装即可。对于团队环境可以考虑通过code --install-extension extension-id命令来批量安装。5. 疑难杂症排查与解决方案实录即使按照标准流程操作也可能遇到一些意外情况。这里记录几个我遇到过的典型问题及其解决方法。5.1 问题执行sudo apt update时出现“GPG错误”或“签名无效”错误信息示例E: 仓库 “https://packages.microsoft.com/repos/code stable InRelease” 没有数字签名。 N: 无法安全地用该源进行更新所以默认禁用该源。或者W: GPG 错误https://packages.microsoft.com/repos/code stable InRelease: 下列签名无效EXPKEYSIG xxxxxxxx Microsoft (Release signing) gpgsecuritymicrosoft.com原因与解决 这通常是因为GPG密钥过期或导入不正确。解决方法就是重新导入一次微软的GPG密钥并确保源列表中的signed-by路径正确。移除可能存在的旧密钥文件如果存在sudo rm /usr/share/keyrings/vscode.gpg sudo rm /etc/apt/trusted.gpg.d/microsoft.gpg # 一些旧教程可能会导入到这里重新执行本文3.1和3.2步骤完整地导入密钥和添加源。再次运行sudo apt update。5.2 问题通过Snap安装后VSCode无法访问用户主目录外的文件现象在VSCode的文件打开对话框中看不到/home以外的目录如/mnt,/media下的挂载盘。原因这是Snap严格的沙盒权限限制。Snap应用默认只能访问用户主目录和可移动介质。解决需要手动连接相应的Snap接口interface来授予权限。# 授予访问所有挂载文件系统的权限较宽松 sudo snap connect code:removable-media # 或者授予访问特定目录的权限更安全但需要知道磁盘挂载点 sudo snap connect code:home执行后可能需要重启VSCode。如果问题依旧考虑换用APT安装方式从根本上避免沙盒限制。5.3 问题安装或更新时提示“依赖关系不满足”错误信息示例下列软件包有未满足的依赖关系 code : 依赖: libxxxx 但无法安装它原因与解决 这可能是系统本身的软件包依赖库版本太旧与VSCode新版本的要求冲突。Ubuntu 18.04的默认仓库软件版本相对较老。首先尝试更新系统所有软件包到最新sudo apt update sudo apt upgrade如果问题依旧可以尝试安装VSCode的旧版本不推荐或者考虑添加更现代的软件源如Ubuntu Toolchain PPA for newer libstdc等但这会引入系统复杂度。最稳妥的方案是评估是否可以将系统升级到Ubuntu 20.04 LTS或22.04 LTS它们的内置库版本更新对现代软件兼容性更好。对于Ubuntu 18.04微软的源通常会提供适配其基础库的VSCode版本因此此问题不常见一旦出现往往意味着系统本身需要升级。5.4 问题VSCode界面字体模糊或发虚现象在Ubuntu 18.04的GNOME桌面下VSCode的编辑器字体看起来没有抗锯齿边缘有锯齿感。原因这可能是由于Electron框架的字体渲染与系统设置不匹配导致的。解决在VSCode中按下CtrlShiftP打开命令面板输入并选择“Preferences: Open Settings (JSON)”。在用户设置文件中添加或修改以下配置{ editor.fontFamily: Ubuntu Mono, Droid Sans Mono, monospace, monospace, editor.fontLigatures: false, window.zoomLevel: 0, editor.fontWeight: normal }将Ubuntu Mono换成你系统中已安装且显示清晰的等宽字体如DejaVu Sans Mono,Source Code Pro等。可以先用fc-list : family命令查看已安装字体。调整GNOME的字体渲染设置。安装GNOME Tweaks工具sudo apt install gnome-tweaks。打开Tweaks在“字体”选项中尝试将“抗锯齿”设置为“标准灰度”“微调”设置为“无”或“轻微”。不同的组合对渲染效果影响很大可以多尝试几次重启VSCode查看效果。6. 不同安装方式的深度对比与管理维护为了让你更清晰地做出选择我将三种安装方式的核心差异和管理命令整理成下表特性/方式直接下载.deb安装Snap安装添加官方APT源安装 (推荐)安装命令图形界面双击 /sudo dpkg -i file.debsudo snap install --classic codesudo apt install code更新方式手动下载新包重复安装自动更新 (可禁用:sudo snap refresh --hold code)sudo apt update sudo apt upgrade更新可控性完全手动控制自动可暂缓但稍复杂完全手动控制与系统更新同步软件源无独立包Snap StoreMicrosoft官方APT仓库系统集成度一般较高 (沙盒内)最高(作为系统原生包管理)文件系统访问正常受限 (需手动连接接口)正常输入法兼容性通常较好通常较好可能需配置 (见4.1节)卸载命令sudo apt remove code(如果已纳入管理)sudo snap remove codesudo apt remove code残留清理需手动删除下载的.deb文件自动sudo apt autoremove(清理依赖)适用场景一次性、临时试用追求自动更新、不介意沙盒限制的用户长期使用、生产环境、团队统一部署长期维护建议 对于选择APT源安装的用户维护非常简单定期更新只需在定期执行系统更新时一并处理sudo apt update sudo apt upgrade。VSCode会随其他系统软件一起更新。版本回退如果需要降级到旧版本可以使用sudo apt install codeversion命令但需要先通过apt-cache policy code查看可用的版本号。彻底卸载执行sudo apt remove code卸载软件本身再执行sudo apt autoremove清理不再需要的依赖包。如果想移除软件源删除源列表文件即可sudo rm /etc/apt/sources.list.d/vscode.list也可以选择移除密钥文件sudo rm /usr/share/keyrings/vscode.gpg。选择Snap安装的用户需要注意Snap的更新通道概念。stable是稳定版还有insiders每日构建版。可以通过sudo snap switch code --channelinsiders切换到内测通道再通过sudo snap refresh code更新。
返回列表