
1. 写在前面为什么要在Linux上折腾VS Code如果你是个经常和服务器、远程环境、嵌入式设备打交道的开发者迟早会面临一个现实问题生产环境基本都是Linux而你常年工作在Windows或者macOS上。代码在本地跑得好好的一上服务器就各种兼容性问题光是环境变量和依赖就够喝一壶的。与其在虚拟机里绕来绕去不如直接把日常开发环境搬到Linux上逼着自己去习惯这套生态时间长了你在命令行下的效率反而会比图形界面时代高出一大截。而在Linux上挑选编辑器这件事我自己确实走过不少弯路。试过Vim全家桶、Emacs、甚至折腾过一段时间的Sublime Text最后真正让我稳定留下来的还是Visual Studio Code。原因很简单它开着箱子就能用开箱即用的语法高亮、调试器、终端集成、Git集成全都给你配好了插件生态更是强得离谱几乎你能想到的开发场景都能找到一个现成的扩展。而且微软对Linux平台的支持这几年做得相当扎实官方仓库、deb包、rpm包、tar.gz压缩包、Snap、Flatpak方式多得让人眼花缭乱。这篇文章既聊给第一次在Linux上装VS Code的新手听也聊给那些已经装过但总是遇到奇怪问题的老手听。我把自己在Ubuntu、Debian、Fedora、Arch、openSUSE这些主流发行版上踩过的坑、走过的弯路、总结出的稳定方案一次性整理出来做成一份可以直接照着操作的完整记录。如果你正在纠结到底该选哪种安装方式或者装完之后遇到了打不开、中文界面出不来、插件装不上这类问题那这篇内容应该能帮你省下不少时间。注意文中所有操作我都尽量用通用命令来表达部分安装步骤会区分Debian系Ubuntu、Debian、Linux Mint和Red Hat系Fedora、CentOS、RHEL、openSUSE你只需要根据自己的发行版对号入座就行。2. 安装前必须想清楚的三个问题发行版、架构、依赖2.1 先确认你用的是什么发行版和包管理器很多人在Linux上装软件失败根本原因不是命令错了而是压根没搞清楚自己系统的底子是什么。Linux发行版表面上五花八门本质上按包管理器划分就那几大家族。Debian系用aptRed Hat系用dnf/yumArch系用pacmanopenSUSE用zypper。不同的包管理器对应不同的软件包格式deb包只能在Debian系系统上装rpm包只能在Red Hat系和openSUSE上装拿错格式直接就是安装失败。判断发行版最简单的方式是执行这条命令cat /etc/os-release输出结果里会有ID和ID_LIKE字段。比如Ubuntu的ID是ubuntuLinux Mint会显示ID_LIKEubuntuFedora显示IDfedora这样你就能确定自己该走哪条安装路线。还有一个高频误操作是用错了命令。比如有人在Debian系统上尝试用dnf安装或者反过来这些都是白费功夫。在动手之前用几秒钟看一眼os-release能省下后面一大堆排查时间。我自己就曾经在一个精简版Debian服务器上直接下载deb包强行安装结果因为libc版本太低一连串依赖报错最后不得不老老实实换源编译教训非常深刻。2.2 确认系统架构是amd64还是arm64VS Code的官方安装包按CPU架构区分最常见的是amd64也就是x86_64绝大多数台式机和笔记本都是这个、arm64Apple Silicon Mac的Linux虚拟机、树莓派、部分ARM服务器还有armhf树莓派32位系统。装错架构的包系统会直接提示“无法安装”或者在启动时报exec format error。查看架构的命令uname -m输出x86_64就用amd64的包输出aarch64就用arm64的包。这个信息在你手动下载tar.gz压缩包或者deb包的时候尤其重要。微软官方下载页面提供的包很全面但默认展示的一般是amd64版本如果你在ARM设备上下载了错误版本折腾一圈才发现是架构问题那就太浪费时间了。另外提醒一句如果你用的是树莓派的官方系统并开启了64位模式还是老老实实装arm64版本兼容性和性能都有保障。如果你跑的是32位系统armhf包也能用但VS Code的新版本对32位环境支持越来越不友好有条件还是升级到64位系统更省心。2.3 弱网环境下的预配置先解决下载源的问题在国内服务器上安装VS Code有一个绕不开的问题就是网络。官方仓库和下载服务器如果访问慢轻则下载速度几十KB重则直接超时失败。所以安装前如果发现下载慢建议先配置镜像源。这个话题比较敏感我就不展开说了基础的思路是如果是Debian系可以用清华源、中科大源等国内镜像站提供的内容。如果是Red Hat系也可以找到对应的镜像源配置方法。下载deb/rpm包时耐心等一会儿通常还是能拉下来的。这部分属于经验之谈具体怎么配源每个发行版都不一样而且源地址会有变化建议直接搜索“你的发行版版本 软件源镜像配置”按最新教程操作即可。反正我现在的习惯是每次全新安装Linux后第一件事就是先配置好基础软件源然后再谈装VS Code的事情。3. 五种主流安装方式逐一测评官方源、手动包、压缩包、Snap、FlatpakVS Code在Linux上安装方式多得让人选择困难但每种方式都有它的适用场景和坑点。我全部实测过一轮下面直接给你结论和操作过程。3.1 官方源安装Debian系和Red Hat系最推荐的方式如果你用的是Ubuntu或者Debian官方源安装是我最推荐的方式。微软官方自己维护了apt软件源安装一次后以后每次系统更新时VS Code也会跟着自动更新省事程度拉满。在Ubuntu/Debian上安装步骤分两步# 1. 安装HTTPS传输支持和证书工具 sudo apt update sudo apt install -y wget gpg apt-transport-https # 2. 导入微软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 # 3. 添加源列表 echo deb [archamd64,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 # 4. 更新索引并安装 sudo apt update sudo apt install -y code注意这里我用了keyrings方式的源格式这是新版apt推荐的做法。很多老教程还在用apt-key add命令那条命令在Ubuntu 22.04之后的版本里已经过时并会报warning新系统上不建议再用了。Fedora系安装方式类似用rpm源sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c echo -e [code]\nnameVisual Studio Code\nbaseurlhttps://packages.microsoft.com/yumrepos/vscode\nenabled1\ngpgcheck1\ngpgkeyhttps://packages.microsoft.com/keys/microsoft.asc /etc/yum.repos.d/vscode.repo dnf check-update sudo dnf install -y code官方源安装最大的优点是自动更新机制。很多新手装完软件后从来不主动升级长年累月用着一个满是Bug的旧版本然后在调试插件时莫名其妙出问题。用官方源安装你的VS Code始终跟着微软的发布节奏走长期体验反而最稳定。实操提示如果你在apt update阶段出现无法验证签名或找不到仓库的报错检查一下第三步里arch字段是否跟你系统架构一致。比如在arm64设备上只保留arm64即可多写了不存在的架构反而可能触发警告。3.2 手动下载deb/rpm包适合不想动源列表的快速方案官方源虽然方便但也不是没有缺点。比如你用的发行版比较小众或者你所在的企业网络环境禁用了某些外部仓库这时候直接下载安装包手动安装就成了唯一选择。Debian系手动安装命令# 假设你把安装包下载到了~/Downloads目录 cd ~/Downloads sudo dpkg -i 下载的安装包文件名.debRed Hat系sudo dnf install 下载的安装包文件名.rpm手动安装有个很大的坑dpkg不会自动拉取依赖。如果系统缺少某些共享库安装过程会直接报错。比如我在一个极简版Ubuntu Server上就遇到过缺少libnss3和libatk-bridge2.0-0的情况解决办法是再执行一次修复命令sudo apt install -f这个命令会自动补齐缺失的依赖之后再确认安装是否成功dpkg -l | grep code检查到状态为ii就代表安装成功。需要注意的是手动安装之后没有自动更新机制。想让VS Code保持最新你得定期去官网下载新版覆盖安装或者后续手动配源。适合临时用一下或者经常离线安装的场景如果打算长期使用我还是建议回到3.1节把源配好。3.3 tar.gz免安装版绿色便携、适合离线环境有些开发者喜欢下载tar.gz解压即用的版本这个思路很像Windows上的绿色软件。你只需要去官网下载tar.gz包然后解压到某个目录sudo tar -xvzf 下载的压缩包.tar.gz -C /opt然后把解压出来的bin目录软链接到/usr/local/bin这样在终端的任何位置输入code就能启动sudo ln -s /opt/code/bin/code /usr/local/bin/code启动方式很单纯路径也灵活重装系统时直接把整个目录拷走就能恢复使用。但它的缺点也很明显没有桌面图标所有右键菜单集成、协议关联都需要自己手动配置升级时需要自己维护不像安装版那么省心。如果你只是想在移动硬盘里塞一个编辑器或者离线环境里临时用一下tar.gz是可选的。长期当主力使用我更推荐走正式安装流程。3.4 Snap安装一条命令但有三处让人想吐槽的地方Snap是Ubuntu厂商力推的通用包格式安装命令简单到令人发指sudo snap install code --classic这是入门成本最低的方式但对老用户来说有三个方面让人不太舒服。第一个是启动速度Snap包冷启动路径较长在机械硬盘上首次启动可能要等几秒甚至十几秒第二个是终端和图形环境的权限隔离问题Snap版本的VS Code在打开某些外部程序或访问部分系统路径时可能会被限制这对需要调用系统工具链的开发者有点头疼第三个是更新时机Snap默认自动更新有时候正在写代码突然提示更新又得重启编辑器体验偶尔会有点突兀。如果你是新人只是想快速体验VS CodeSnap完全可以。但如果你打算在Linux上做正经开发我建议尽量避开Snap版老老实实用官方apt/rpm源。3.5 Flatpak安装万能兼容但插件权限是一道坎Flatpak是另一个通用包方案在Fedora等发行版上很流行flatpak install flathub com.visualstudio.code它的沙箱做得比Snap更好但也正是这个沙箱机制在开发场景里成了一把双刃剑。VS Code的终端如果跑在沙箱里访问宿主机文件系统的权限会被限制。比如你想在编辑器内置终端里操作挂载在/media目录下的移动硬盘可能直接Permission denied。插件也一样需要额外踩点才能正常访问外部路径。平时只是写写脚本、看看代码还好一旦涉及复杂项目、Docker、交叉编译这些重度系统操作Flatpak版本就会给你找麻烦。所以我的建议是除非你的发行版只有Flatpak这一种途径否则优先放弃这个选项。3.6 安装方式横向对比速查表安装方式命令复杂度自动更新桌面集成系统权限推荐场景官方apt/rpm源中等是完整原生长期主力开发手动deb/rpm包简单否完整原生离线或临时安装tar.gz压缩包简单否需手动配置原生绿色便携、老旧系统Snap最简单是一般受限新手快速体验Flatpak简单是一般受限无更好选项时的替补我个人实测下来长期使用的稳定性排名是官方源 手动包 tar.gz Snap Flatpak。4. 安装完成后的三件套终端命令、界面汉化、基础配置4.1 终端能不能启动code是安装成功的分水岭很多人在Linux上安装VS Code后双击图标未必能顺利打开尤其是在桌面环境异常或缺少某些组件时。这时候我们习惯直接从终端启动这样能看到日志输出排查问题效率极高。安装完成后先验证一下code --version如果终端能正确输出版本号说明安装到位。如果提示找不到命令检查一下安装方式是哪种。官方apt源安装会自动配置好/usr/bin/code软链接tar.gz方式需要你手动建链接Snap一般也能在/usr/bin里找到桥接文件。另一个值得养成的习惯是用终端启动VS Code。在项目目录下直接输入code .会直接打开当前目录作为工作区省去先打开编辑器再选目录的过程。配合Vim或者终端分屏使用整个开发流程会非常顺畅。注意用code .之前先确认你要打开的是不是项目根目录。如果误在home目录执行了编辑器会加载一大堆无关文件索引起来又慢又卡。4.2 中文界面配置按一次快捷键就能搞定Linux版的VS Code默认是英文界面对英文不友好的开发者来说第一步肯定是汉化。其实不需要改任何配置文件只要在扩展商店里搜Chinese安装“中文简体语言包”扩展然后按住CtrlShiftP调出命令面板输入Configure Display Language并选择zh-cn最后重启编辑器即可。这里提醒一个常被忽略的点语言包只影响界面文字不会影响代码、终端和调试输出。如果终端里运行的程序是英文日志那还是英文这跟编辑器本身没关系别误会成汉化没生效。4.3 关掉那几个让人分心的默认行为全新安装的VS Code有几项默认设置我每次都会第一时间改掉。第一项是“minimap”右侧那个缩略代码地图小屏幕上真的占地方而且注意力容易被无意义代码块吸引。打开设置搜索minimap取消勾选即可。第二项是“telemetry”也就是遥测数据上报出于隐私考虑我一般会关闭。第三项是“update.mode”相关设置如果你用的是tar.gz版本可以关闭自动检查更新避免时不时弹出烦人的升级提示。在Linux上还有一项需要额外留意的设置是字体渲染。如果你的系统默认字体没有安装中文字体代码里的中文注释可能显示成方块。建议在终端先装一个常规中文字体比如sudo apt install fonts-noto-cjk然后在编辑器设置里调整font-family为Noto Sans CJK SC这样中英文混排的代码注释看起来就协调多了。5. 装好之后最实用的一套配置方案终端、Git、Python/C开发环境5.1 集成终端让编辑器脱离图形界面也能干活VS Code在Linux下的最大优势之一就是集成终端。它的默认快捷键是Ctrl打开后就是一个真实的bash或zsh进程能直接调用系统里的所有命令。这个终端不是模拟出来的玩具支持各种命令、颜色、快捷键、补全。建议在settings.json里做几个终端优化{ terminal.integrated.defaultProfile.linux: bash, terminal.integrated.fontSize: 13, terminal.integrated.enableMultiLinePasteWarning: never }第三个配置项很实用Linux下经常要往终端里粘贴多行命令默认会弹出一个警告框关掉它让操作连续不被打断。5.2 Git集成可视化查看提交记录小白也能看懂Linux上用到Git的频率远高于Windows而VS Code内置的Git面板做得非常顺手。修改的文件列表、暂存区、提交历史、分支切换全部可以在左侧“源代码管理”图形化操作比命令行的直观性高出一个维度。首次使用前记得先配置Git用户信息git config --global user.name 你的名字 git config --global user.email 你的邮箱不然在VS Code里提交代码时会收到“请先配置user.name和user.email”的提示。这个坑多数新手都会踩一次提前配置能省下不少疑惑。5.3 Python与C/C开发环境三个必装扩展如果你主要用Linux写Python推荐安装Python扩展由微软官方提供它整合了代码补全、调试、代码格式化、虚拟环境选择等功能。安装后在命令面板里输入Python: Select Interpreter选择你项目对应的Python环境这样才能让代码补全和调试器正确工作。如果你是做C/C开发的安装C/C扩展后记得配置tasks.json和launch.json。一个简单的tasks.json模板{ version: 2.0.0, tasks: [ { label: build, type: shell, command: g -g main.cpp -o main, group: {kind: build, isDefault: true} } ] }配置完成后按CtrlShiftB就能一键编译再配合F5启动调试。不过要给个忠告别一股脑地装三五十个扩展。扩展装得越多VS Code启动越慢内存占用越高。我这几年实践下来常用的不超过十五个其余都是即用即装用完就卸载。6. 开始动手Windows用户迁移到Linux后必须掌握的差异点6.1 换行符CRLF和LF的那点“隐形”差异Windows下保存的文件默认是CRLF换行符Linux下是LF。如果你带着Windows项目的代码仓库直接到Linux下开发Git会自动做转换但偶尔会出现整个文件显示为已修改、或者编译时莫名其妙的错误。在Linux下建议统一走LF路线。可以在项目根目录放一个.gitattributes文件* textauto eollf这能让Git在提交和检出时正确转换换行符从根源上避免混用。如果你接手的是别人的Windows项目也可以直接用VS Code右下角的“选择行尾序列”按钮切换到LF后重新保存一遍问题就能快速解决。6.2 路径分隔符和环境变量Windows的路径是反斜杠\Linux是正斜杠/。在编译、调试配置里写路径时要注意Linux下一般用正斜杠。环境变量方面Windows的PATH变量用分号分隔Linux用冒号这个差异要时刻想着别把Windows的写法原封不动带到Linux的配置里。在VS Code的launch.json里如果你使用了${workspaceFolder}这个变量它在不同平台上会自动适配路径格式能省掉一部分麻烦。但在tasks.json里手动写的路径务必自己检查一遍。6.3 权限系统为什么我打开文件只能读不能写很多从Windows迁移过来的开发者在Linux下打开一个文件后会疑惑为什么VS Code显示文件是只读的保存时提示没有权限这不是VS Code的问题而是Linux文件权限机制的正常体现。用命令行改一下权限chmod w 文件名或者干脆用sudo编辑。更规范的姿势是把自己加入文件所有者的用户组用ls -l查看文件归属然后用chown调整所有者。这个知识点短时间可能不习惯但用久了会发现它比Windows那种“弹窗确认提权”的方式更清晰。7. 实战中一定会碰上的九大问题与排查清单7.1 启动没有任何反应怎么办这是一个高频问题。在终端输入code如果终端卡住没反应或者状态栏闪了一下又消失多半是缺少图形库组件。Debian系上面手动装包时最常缺的几个依赖如下sudo apt install -y libnss3 libatk-bridge2.0-0 libgtk-3-0 libasound2 libgbm1Group安装完后再试code --verbose启动看输出的日志定位具体缺失项。如果你用的是精简版服务器甚至无桌面环境的容器还需要确保装了X11或Wayland相关的图形环境否则VS Code根本没有运行前提。7.2 提示“无法加载共享库 libxcb.so.1”Red Hat系和部分旧发行版上安装rpm包后启动时报这个错说明系统的X11兼容库版本过旧。Fedora系执行sudo dnf install xcb-util xcb-util-keysyms xcb-util-wm装完重试一般都能解决。这类问题本质上是VS Code使用的Electron框架对X11组件有硬性依赖缺一个就会起不来。7.3 打开中文路径的文件时变成乱码VS Code默认以UTF-8打开文件如果文件本身是GBK编码但被强制按UTF-8解码中文就全乱码了。在右下角点击当前编码信息选择“通过编码重新打开”然后改为GBK/GB18030即可。更通用的做法是把项目里的所有源代码统一转成UTF-8长期来看能避免大量困扰。7.4 插件搜索缓慢或安装失败插件商店联网如果异常通常表现为扩展面板转圈搜索不到结果。在经历了多次配置不同的Linux环境后我的解决办法是手动下载VSIX文件离线安装去扩展作者的GitHub仓库或市场页面下载vsix然后在扩展面板选择“从VSIX安装”。离线安装偶尔会因版本依赖报错解决办法是下载匹配当前VS Code版本的插件版本别拿最新版硬装旧环境。7.5 每次启动都重复请求密钥环Ubuntu系未配置桌面密钥环时VS Code启动会反复弹“解锁登录密钥环”对话框。原因是Electron应用要保存密码但系统默认密钥环未解锁。解决办法是安装并配置好gnome-keyringsudo apt install gnome-keyring然后重启会话并在设置里把secretStorage: gnome-libsecret相关配置做好这个问题的出现频率就会大幅下降。7.6 内存占用过高、风扇狂转VS Code是基于Electron的本质上是Chromium内核吃内存是常态。如果你的内存只有8G再开一堆大型扩展卡顿和风扇狂转就会出现。建议关闭没用的工作区窗口卸载长期不用的扩展必要时用VMware或Docker把大型项目隔离到远程开发容器里跑本地只保留轻量编辑。也可以给VS Code传一个参数来禁用GPU加速有时能解决花屏或卡顿code --disable-gpu长期用下来我自己从不给VS Code叠加太多花哨扩展内存占用基本能控制在几百兆到1G左右这个量级在接受范围内。7.7 安装了语言包但界面还是英文头号原因是你选了语言包扩展但没重启。第二个原因是设置里存在locale相关的覆盖项比如用户设置里被写入locale: en-us。这种隐性覆盖优先级高于语言包所以即使你装了中文包界面依然是英文。把locale改成zh-cn或者直接删掉这行即可。7.8 终端里可以运行但桌面图标打不开这种诡异情况多半是桌面快捷方式的启动路径有问题。如果是从官方源安装的图标应该配置好了如果是手动用tar.gz解压安装并手工配置的检查/usr/share/applications/code.desktop里的Exec路径是否指向真实的可执行文件。改完记得sudo update-desktop-database刷新桌面数据库让桌面环境重新识别图标。7.9 每次代码提示都慢半拍代码提示速度慢根源多半在语言服务器和索引器。如果项目是大型C仓库c_cpp_properties.json里的includePath没配好Clangd和MSVC索引可能会重复扫错目录。对于Python项目确认解释器指向的是项目专属的虚拟环境而不是全局环境全局环境里塞了太多第三方库索引起来当然吃力。再不行就检查是不是杀毒软件或安全扫描工具把插件目录加进了实时扫描名单这类系统工具在Linux桌面上虽然少见但存在。8. 踩坑经验汇总有些坑你完全没必要亲自踩上面列的是实际遇到过的问题下面这些是更底层的血泪经验。第一不要在系统里同时装两种以上的VS Code版本。官方源装的code和Snap版的code可能会互相覆盖启动脚本导致输入code命令时打开的版本跟桌面图标打开的不一致排查起来非常让人崩溃。只保留一种安装渠道。我已经不止一次看到有人同时装了Snap版和deb包然后告诉我“VS Code升级不了”。第二别轻易把VS Code的用户配置目录整个拷贝到另一台机器上。此目录存放了所有扩展、缓存和窗口状态在不同版本或不同发行版之间迁移时经常出现插件兼容性问题和缓存损坏。我一般只同步settings.json和keybindings.json扩展列表重新安装即可。第三用管理员权限日常打开VS Code是最坏的习惯之一。有些人在Linux下为了保存系统文件方便直接sudo code这会改变整个用户目录的所有权归属以后正常运行连配置都写不进去。需要编辑系统级文件时老老实实用sudo配合普通文本编辑器别拿整个编辑器去冒险。第四服务器上没有桌面环境不代表不能用VS Code。你可以通过远程开发扩展连接远程服务器本地打开文件夹就像在服务器上工作一样。这个技能在维护多台服务器时非常实用强烈建议花半小时研究一下SSH Remote插件。9. 最后再分享一个我自己的习惯我现在在新机器上装完Linux后跟着的一套流程已经固定了先更新系统源然后安装基础依赖接着配置微软官方源安装VS Code之后装好Noto字体、Git、Python工具链最后放一个经过长期打磨的settings.json进去整个流程跑完不超过十五分钟。这个编辑器在Linux生态里越来越像当年“编辑器之神”那样的存在——它当然不是万能的但配合正确的使用方式它几乎能覆盖日常百分之八十的开发需求。有一点我从没后悔过把主力开发环境从Windows搬到Linux。刚开始确实别扭光是终端命令和权限就淘汰了我不少旧习惯但坚持下来之后对系统机制的理解、排查问题的思路、以及在服务器上部署代码的能力都有了质的提升。而VS Code恰好是这条迁移之路上一块关键的垫脚石。希望这篇基于实操经验的记录能让你在Linux上安装和用好VS Code这件事少走一些弯路。