在Linux机器上禁用VSCode自动更新

3

这里提供的建议在此处禁用VSCode的自动更新仅适用于MacOS和Windows。今天,我使用的Linux机器自动更新到了版本1.60.0。

尽管建议不适用于我的情况,但我仍然遇到了问题。

"update.mode": "none"

在用户的settings.json文件中。

这个问题之前在SO上被问到过。请参阅如何禁用VS Code更新自身?, 但是它似乎在Linux上不起作用。

这篇专门针对Linux的VSCode文档中指出:

如果VS Code存储库已正确安装,则系统包管理器应以与系统上其他软件包相同的方式处理自动更新。

那么,如何在Linux上禁用自动更新?上述引用是否意味着在Linux上要么所有软件包都自动更新,要么所有软件包都不自动更新?我使用的是Ubuntu 20.10。


我最初是通过默认的“Ubuntu软件”在这台机器上安装了VSCode。当我打开同一个应用程序并搜索VSCode时,旁边有一个绿色的勾号表示VSCode已安装。那里没有右键单击以禁用自动更新等选项。 - Tryer
啊,好的。我会看看他们的安装程序,如果没有人比我更快找到的话。 - Clayton Engle
除非您将VScode安装到/home/you目录中的某个位置,否则Linux系统不应该能够更新,除非更新过程以UID == 0EUID == 0(例如root)运行。我的做法是在检查了github并决定要更新之前,简单地不更新代码存储库。我使用C/C++的.vsix离线安装程序来安装扩展,因此在明确授予VScode根权限或选择下载更新的C/C++扩展之前,没有任何东西可以更新。(这是一个值得考虑的解决方法) - David C. Rankin
@DavidC.Rankin 请查看我在我的机器上得到的图像 https://imgur.com/f9gDnsp。看起来VSCode是一个快照包安装。我的VSCode安装是通过“Ubuntu软件”完全默认设置,没有涉及更改任何默认设置。 - Tryer
你也可以尝试使用AskUbuntu - David C. Rankin
显示剩余3条评论
2个回答

0

即使在设置中禁用了更新,VS Code在Linux上仍然更新的原因是应用程序没有处理更新。 在Linux中,软件包管理器进行处理。 至少在Linux Mint(和Debian、Ubuntu)中,更新是通过apt执行的。 其他Linux发行版具有不同的软件包管理器,例如基于RedHat的系统使用Yum。

禁用VS Code更新的方法是删除安装VS Code时创建的存储库检查。 在Linux Mint中,位置为:

/etc/apt/sources.list.d/vscode.list

这个文件列出了一个仓库:

deb [arch=amd64,arm64,armhf] http://packages.microsoft.com/repos/code stable main

要停止更新,只需在 'deb' 前面添加一个井号(#)来注释掉这行。

正确的做法可能是使用 apt 来删除仓库,但我更愿意保留列表文件和仓库以便在将来需要时能够简单地替换。要重新开始更新,只需移除井号并保存文件。

即使在软件包管理器中禁用了更新,在 VS Code 中仍然可以进行更新。手动更新 VS Code,请从“关于”菜单中选择“检查更新”,如果有更新可用,则下载并安装。

如果您在设置中将更新设置为“无”,则菜单中不会显示“检查更新”。您可以通过将更新设置更改为“手动”来恢复此菜单项。


0

好的,Google建议:

  • 打开Unity Dash(16.04)或App Launcher(18.04+)
  • 搜索“软件和更新”
  • 选择“更新”选项卡。
  • 将“自动检查更新”从“每天”更改为“从不”。

我在办公室没有Ubuntu,否则我会测试。如果你还没有尝试过,我回家后会确保测试。


1
这两个应用程序都不在Ubuntu 20.10上。现在有一个“软件和更新”--请参见链接https://imgur.com/f9gDnsp。似乎通过“Ubuntu软件”安装VSCode会使它成为一个快照包,从而导致自动更新。现在的问题是,我如何选择性地禁用某些快照包的自动更新。感谢您的建议。 - Tryer
是的,那超出了我的领域。祝你好运。我在地下室有一台Ubuntu云服务器,正在尝试在合同之间学习它,但它经常崩溃,所以我进展不大哈哈。 - Clayton Engle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接