kaffa's blog

在 Linux 上安装 VSCode 遇到的问题和解决思路

为什么在 Linux 上安装 VSCode?

近期计划使用搭建 telegram bot,了解原理后,发现是基本的 http 开发。

计划使用轻量级 Web 框架,就项目需求来说,选择 Python 微框架 或 Go 语言比较适宜,加上前不久了解到类似 Flask 的框架 Vibora,其官方介绍中的性能基准测试结果惊人难以置信,于是选择尝试,饶有兴致运行官方 hello world

from vibora import Vibora, Response

app = Vibora()

@app.route('/')
async def home():
    return Response(b'Hello world')

if __name__ == '__main__':
    app.run(debug=True)

却发现无法在 Windows 下运行,提示:

Traceback (most recent call last):
File "test_vibora.py", line 1, in <module>
    from vibora import Vibora, JsonResponse
File "C:\Python36\lib\site-packages\vibora\__init__.py", line 7, in <module>
    from .server import *
File "C:\Python36\lib\site-packages\vibora\server.py", line 5, in <module>
    from signal import pause
ImportError: cannot import name 'pause'

查看源代码,是因为 vibora 使用了 Linux signal 的原因,看来,虽然其文档中称支持 Windows 是其目标,但目前还不支持。

由于服务器是 CentOS,于是选择在本地虚机装上桌面,直接采用 VSCode 或 PyCharm 进行开发调试。

遇到的问题

按照微软官方 VSCode 的 Linux 安装帮助,本应该四个命令就可以搞定:

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'
yum check-update
sudo yum install code

可是在执行最后一个命令时,出现了一系列的 404 错误,安装终止了,提示:

Error downloading packages:  libXScrnSaver-1.2.2-6.1.el7.x86_64

看样子是因为VSCode所依赖的某个软件包,提示资源不存在,yum 命令没能下载成功。

解决思路

笼统的说,之前写过一篇 解决编程领域难题的有效方法,提到 StackOverflow,但此问题并不能很直接搜索到解决思路,所以只能自己思考。

按照 yum 的提示去对应 CentOS 7 目录才发现,原来是 CentOS 7.5.1804 到 Main Line 版本了。

于是这个包依赖问题可以从 CentOS 7.4.1708 readme 得到解答,即 升级 CentOS 7.4 到 CentOS 7.5

升级完成后,再次运行 sudo yum install code,即成功。

感谢阅读。