☰
Linux安装VS Code全攻略:从软件源到远程开发,选对路线不踩坑
2026/10/22 2:58:48 网站建设 项目流程

最近帮一位刚转Linux的朋友排查装不上VS Code的问题,发现他下载了.deb安装包后双击没反应,又跑去折腾源码编译,折腾了几个小时还报错。这类场景在Linux新手圈子里太常见了:Windows下装软件就是“下载exe双击”,到了Linux,同一款软件可能有四五种安装方式,选错路线会把一件简单的事硬生生拖成事故现场。所以我想把这几年在Linux系统下安装Visual Studio Code的经验完整梳理一遍,覆盖主流发行版的安装路线、选型思路、服务器无图形界面场景,以及装完以后一定能用上的排错技巧。不管你是刚开始接触Linux,还是要在远程服务器上远程开发,照着这篇文章的路线走,基本不会翻车。

1. 装之前先想清楚:为什么同一款软件在Linux上有这么多装法

1.1 从“双击没反应”说起

先解释一下朋友为什么双击没反应。Linux下有很多个发行版,每个发行版有各自的包管理器,软件安装包也分成不同格式:Debian系用.deb,RHEL系用.rpm,Arch系用pacman的包格式,此外还有Snap、Flatpak、tar.gz压缩包这些跨发行版格式。你在Ubuntu上双击一个.deb文件,图形化安装工具也许能弹出窗口,但它背后会检查一大堆依赖关系、权限策略和桌面集成,任何一个环节不满足,安装就静默失败,界面也看不到报错原因。

这也是为什么Linux老手总劝新手“用命令行装软件”:命令行会把错误信息毫不留情地打出来,依赖缺了什么、密钥有没有问题、仓库地址是否写错,一眼就能看到。用图形化工具反而像隔着一层雾,出了问题连排查方向都没有。

1.2 官方版、开源社区版、Web服务端版怎么选

很多人不知道VS Code其实有两个“兄弟”。你从官网下载下来、平时在桌面系统里用的那个是官方正式版,功能最全,更新也最快;还有一个由社区维护、开源程度更彻底、剔除了品牌标识和遥测数据收集的版本,适合对软件自由度要求更高的用户。第三个是能跑在服务器上、让用户通过浏览器访问的Web版VS Code,它不需要图形桌面,很适合无界面的云服务器场景。

普通桌面用户直接装官方正式版就够了,不需要纠结;如果你对数据隐私和软件纯净度有比较高的要求,可以选社区开源版,日常写代码的体验几乎一样;如果你的机器没有桌面环境,或者你想在任何设备上用浏览器写代码,才需要考虑Web服务端版本。三者的关系可以简单理解成:官方版是“全家桶”,社区开源版是“精简纯净版”,Web版是“远程服务器专用形态”。

1.3 先把安装路线图刻在脑子里

不同发行版应该优先采用的路线大致如下:

发行版系列首选方案备选方案
Ubuntu / Debian官方软件源(apt)官方deb包、Snap
Fedora / CentOS / RHEL官方软件源(dnf/yum)官方rpm包
Arch / ManjaroAUR社区包手动下载tar.gz
其他小众发行版官方tar.gz解压Flatpak

判断标准很简单:优先选择支持自动更新、能被包管理器统一管理的方案,其次才考虑临时下载安装包。比如Ubuntu用户最理想的不是去官网下deb,而是把官方软件源加进apt源列表里,以后每次升级系统包的时候,VS Code也会跟着一起更新,非常省心。

2. 安装方式选型:不是所有教程都适合你的发行版

2.1 官方deb/rpm包:安装快,但有一个更新死角

最常见的教程会引导你去官网下载.deb或.rpm安装包。官网首页通常提供一个很大的“Download”按钮,对你的发行版自动匹配格式,下载后用系统工具双击或者sudo命令安装即可。单次安装很快,一两条命令就能完成,但最大的问题是更新死角:你这次装的是1.80版本,三个月后出了1.90,系统不会主动通知你,你只能偶尔想到的时候再去官网重新下载。除非你只是临时体验一下,否则我建议还是花几分钟配置软件源,一次性解决日后升级问题。

2.2 Snap与Flatpak:沙箱机制带来的双刃剑

Ubuntu用户会在软件商店里看到VS Code,它背后用的往往就是Snap格式。Snap的好处是跨发行版通用,安装命令只有一条,而且自动更新;代价是首次启动通常比较慢,因为要加载沙箱运行时,而且某些依赖系统路径、需要访问用户目录的工具,可能被沙箱限制搞得行为异常。以官方包为例,Snap安装时需要加--classic参数,表示允许它脱离严格沙箱,否则部分功能可能无法正常工作。

Flatpak是另一套类似的跨发行版方案,在不少Fedora发行版上体验比Snap好,但本质上也有沙箱隔离和运行时体积偏大的问题。它们适合一个用户在多台不同发行版的机器上保持统一使用习惯,但对于追求稳定、和系统深度集成的桌面用户来说,还是发行版原生包管理方案更舒服。

2.3 tar.gz压缩包与源码编译:最后的手段

如果发行版太老或太新,没有现成软件源,官方还提供通用tar.gz压缩包,解压就能用。我通常会把压缩包解压到/usr/share/code或者/opt目录,再把/usr/share/code/bin/code做软链到/usr/local/bin/code,这样就能在任何位置通过code命令启动。缺点是没有自动更新,也没法通过包管理器卸载,桌面图标也可能需要自己创建。

源码编译这条路我几乎从不推荐。VS Code基于Electron框架,它的源码构建流程复杂,需要提前拉取大量前端依赖,编译时间动辄几小时,还容易因为环境差异失败,这对普通用户完全没有必要。看到那种“教你从源码编译VS Code”的教程,除非你是对构建流程本身感兴趣,否则可以直接关掉。

安装方式优点缺点适合场景
官方deb/rpm包一步到位、简单直观更新需手动处理临时体验、无包管理器环境
官方软件源自动更新、依赖自动处理初始化配置稍多长期使用的桌面用户
Snap / Flatpak跨发行版通用、自动更新启动慢、沙箱限制多发行版环境、软件商店
tar.gz压缩包解压即用、通用性强无更新、缺桌面集成小众发行版、绿色便携
源码编译自定义程度理论最高耗时长、易失败极少数研究构建流程的人

3. Ubuntu/Debian系完整走一遍:官方软件源安装与验证

3.1 准备工作:把依赖和密钥工具备齐

先把系统索引更新一遍,同时安装后面会用到的几个基础工具,其中wget用来下载密钥文件,gpg用来处理GPG签名,apt-transport-https让apt能够通过HTTPS协议读取软件源。在较新版本的Ubuntu上apt-transport-https可能已经不再需要,但它体积很小,安装无害。

sudo apt update sudo apt install -y wget gpg apt-transport-https

这一步卡住的人不多,但要注意:如果apt update本身就提示某些源地址连不上,先检查网络连通性和DNS解析是否正常,别急着往下走,否则后面所有依赖安装都会在同一个地方反复报错。

3.2 添加GPG密钥与软件源,并解释每一步在干嘛

接下来要把官方仓库的GPG公钥下载下来并转成apt认识的二进制格式。这段操作看起来有点绕,但逻辑其实很清晰:apt在安装第三方源里的软件时,会先验证软件包的GPG签名,确认它确实来自官方渠道,而不是某个中间人伪造的包;所以我们要把公钥放进系统固定目录/etc/apt/keyrings下,再在软件源地址里用signed-by这一项告诉apt“验证这个源的时候,请用这把公钥”。

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

第一行里的gpg --dearmor作用是把文本格式的公钥转换成二进制GPG格式,第二行把转换后的文件安装到指定目录,并设置所有者和权限。install -D会自动创建不存在的父目录目录,比先mkdir再mv少几步。

接着写入软件源定义。我建议直接用一条echo加tee的命令把内容写进/etc/apt/sources.list.d/vscode.list,这里是apt存放额外软件源的位置,添加一个针对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

这行里的arch=amd64,arm64,armhf表示这个源只对这三种CPU架构生效,避免在无关架构上出现“无法解析软件包”的提示。整理完源之后,顺手把下载到当前目录的密钥临时文件删掉,然后再执行sudo apt update,让apt重新读取配置。

3.3 安装、查看版本、从命令行启动

源配置好以后,安装就变得非常简单了,直接安装名为code的软件包即可。之后任何时候想升级,只需要执行sudo apt update && sudo apt upgrade,它会和系统里其他软件一起升级。

sudo apt update sudo apt install -y code

装完先验证一下:

code --version which code

如果能正常输出版本号和路径,说明安装成功。此时直接输入code就能启动编辑器,桌面应用菜单里也应该能看到VS Code的图标,如果没有,多半是桌面环境没有重新加载菜单,注销重新登录一次即可。

注意:在旧版Ubuntu 18.04上,如果安装时提示找不到code包,优先检查软件源里发布的架构是否写对了,产品和系统架构不匹配是最常见的原因。

4. RHEL系与Arch系补充:命令不同,套路相同

4.1 CentOS/RHEL/Fedora:rpm软件源配置

RHEL系的配置思路和Debian系几乎一模一样,只是包管理器换成dnf或yum。首先导入官方GPG密钥,然后创建一个.repo文件,这个文件的作用相当于Debian系的sources.list,它向包管理器声明了这个软件源的地址和密钥。

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' sudo dnf check-update sudo dnf install -y code

CentOS 7或者比较老的RHEL系统上,需要把dnf换成yum,其余内容不变。gpgcheck=1这一项务必保留,它强制包管理器校验签名,一旦关闭,等于放弃了最基本的软件包信任链,埋下安全隐患。

4.2 Arch系:AUR最省心,但要留意构建风险

Arch用户装VS Code最常用的方式是通过AUR仓库,因为它没有把闭源的官方二进制包放进官方软件源,而是由社区成员维护一个安装脚本,脚本会自动从官方下载成品二进制并打包。装好AUR辅助工具后,一行命令即可:

sudo pacman -Syu yay -S visual-studio-code-bin

如果你是第一次用AUR,建议先更新系统再安装,避免因为系统组件版本太旧导致依赖冲突。使用AUR的过程中,要对安装脚本保持一点警觉,因为AUR包默认信任维护者提供的构建脚本,安装前最好扫一眼脚本内容,确认没有异常操作。绝大多数热门软件的AUR包都经过大量用户验证,但“看一眼”这个习惯值得长期保持。

4.3 老机器闪退与启动失败:硬件加速和沙箱问题

在部分老机器、虚拟机或精简容器环境里,VS Code可能启动后立刻闪退,或者界面一直白屏。这种情况九成和显卡驱动、硬件加速有关。Chromium系应用默认会启用GPU硬件加速,如果虚拟机环境没有对应的GPU虚拟化驱动,渲染进程就会崩溃,其中最直接的临时方案是用软件渲染启动:

code --disable-gpu

如果加了这条参数就能正常打开,说明问题确实出在硬件加速上。另外一类常见问题是启动时报“SUID sandbox”错误,这通常发生在容器或受限内核环境中,因为Chromium的沙箱机制需要创建用户命名空间,而某些容器默认关闭了这个能力。可以通过修改内核参数尝试解决:

sudo sysctl kernel.unprivileged_userns_clone=1

实在不行还可以用code --no-sandbox临时绕过,但这会关闭沙箱安全隔离,只建议在隔离环境里临时使用,平时不要一直这样跑。

5. 没有图形界面的服务器怎么办:远程开发双方案

5.1 有浏览器就够了:Web服务端版本

很多开发者手头有一台云服务器,平时没有桌面环境,但也想用VS Code写代码。最简单的方案是在服务器上装一个带Web界面的VS Code版本,它会启动一个本地HTTP服务,通过浏览器访问。安装方式一般是下载对应平台的二进制压缩包,解压后在命令行运行启动脚本,默认监听某个端口。

这个方案对服务器性能要求不高,浏览器几乎无处不在,临时改个配置、看个日志很方便。缺点也很明显:基于Web的编辑器在体验上和原生客户端有差距,快捷键响应、终端交互都有一定延迟,而且如果直接监听在公网端口上,任何人都可以访问你的编辑器界面,安全隐患非常大。

5.2 本地编辑、远端运行:Remote-SSH才是主力方案

我更推荐的做法是本地装原生VS Code,通过SSH远程开发插件连接服务器。这个方案里,编辑器界面、插件、快捷键全部在本地运行,享受的是完整的桌面体验;项目文件、代码编译、终端命令实际在服务器上执行。本地机器只需要安装插件并配置好SSH连接信息,远程服务器反而不需要装VS Code,只要开启SSH服务即可。

先在本地编辑器的SSH配置文件里添加主机信息,也可以直接在配置文件里写:

Host myserver HostName 192.0.2.10 User devuser Port 22 IdentityFile ~/.ssh/id_ed25519

配置完成后,打开远程目录,第一次连接会要求确认登录方式。如果你想摆脱每次输密码的麻烦,可以把本地公钥拷贝到服务器上:

ssh-copy-id -i ~/.ssh/id_ed25519.pub devuser@192.0.2.10

这个方案的体验最接近本地开发,而且因为代码在服务器上,断网也只是影响本地编辑窗口,服务器上的进程完全不受影响。

5.3 服务器版安全基线

无论如何远程连接,服务器端都不要裸奔。SSH服务务必开启密钥认证、关闭密码登录;Web服务端的编辑器如果确实要用,至少把它绑定在本机回环地址上,不要直接暴露公网;如果必须跨网络访问,先确认你所在环境允许使用的安全通道方式,不要自己随便开放端口。远程开发图的是方便,但安全基线不能丢,否则代码和服务器数据暴露的风险远大于那点便利。

6. 装完以后的高频坑:权限、扩展与编码

6.1 不要用sudo启动编辑器,不要在错误路径上写权限

刚装完VS Code的人很容易遇到一个隐蔽的坑:因为某个文件没有权限,干脆用sudo code启动编辑器。这样确实能绕过权限问题,但会改变用户配置目录的归属,编辑器会把这些目录的拥有者改成root,之后再用普通用户启动,就会遇到配置无法保存、插件装不上、甚至直接打不开窗口的问题。

如果已经踩了这个坑,先用ls -ld ~/.vscode ~/.config/Code看一下目录归属,发现拥有者不是当前用户,就执行一次归属修复:

sudo chown -R $USER:$USER ~/.vscode ~/.config/Code

正确的做法是,普通用户自己编辑器的权限问题,应该去给对应文件或目录设置正确权限,或者调整该用户组和属主。

6.2 扩展装不上、下载停滞:先检查系统时间与DNS

安装完VS Code后,第一件事大概率是装各种扩展。有时候扩展一直转圈、提示下载失败,很多人的第一反应是网络问题,但实际上一大半都是系统时间不准导致的TLS握手失败。HTTPS证书验证依赖客户端时间在有效期范围内,如果服务器时间偏了,安全连接没法建立,而扩展市场走的正是HTTPS通道。

先同步系统时间:

sudo timedatectl set-ntp true

同步后再检查DNS解析是否正常,用getent hosts确认能否解析扩展市场域名。排查时按时间、DNS、防火墙这个顺序来,大多数“装不上扩展”的问题都能定位到这几个环节,千万不要一遇到下载缓慢就立刻重装系统,那是最没有必要的操作。

6.3 从Windows带过来的代码文件显示乱码

刚迁移到Linux的开发者,很可能会打开以前Windows环境下写的源码或文档,发现中文全成了乱码。原因是Windows常用编码是GBK/GB2312,而Linux默认使用UTF-8,编辑器没有正确识别文件原始编码时就会乱码。

解决方法是在设置文件里打开自动猜测编码:

{ "files.autoGuessEncoding": true }

开启后,编辑器会通过内容特征自动判断文件编码。如果某个文件仍然乱码,可以在编辑器右下角手动切换编码。另外,如果Linux系统本身没有安装中文字体,编辑器界面会显示方块而不是文字,Debian系可以安装Noto CJK字体:

sudo apt install fonts-noto-cjk

字体安装后重启编辑器即可正常渲染中文界面。

6.4 最值得先做的几项配置

装完别急着堆一堆花哨扩展,先把几个影响日常使用的基础设置做好:安装中文语言包,重启后界面就是中文;把默认终端设置成你习惯的Shell;打开“自动保存”,防止突然断电丢代码;在设置里开启“保存时自动格式化”,配合代码格式化工具,能省掉很多手工排版的精力。

我的建议是,前两周只装一到两个必要的语言扩展,比如Python或JavaScript相关的官方扩展包,保持编辑器干净一段时间,等你真正熟悉了这个环境,再去按需添加额外功能。很多人一上来装了二三十个扩展,结果根本分不清哪个影响了性能,出了问题也只能全卸重装。

最后说件我自己踩过的事情。有一次给某台系统版本偏老的主机装VS Code,我没细问就直接按我平时用的命令更新了源,结果对方缺少某个图形库文件,反反复复折腾了半个多小时才定位到原因。从那以后我养成了一个习惯:不管帮谁装,先问清楚发行版、版本号、有没有图形界面,再决定走哪条安装路线。安装本身不难,难的是选对路径并按图索骥。把上面的路线和排错思路记牢,以后换到任何发行版,你都能心里有底。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询