在Linux系统下(CentOS7)编译vscode

环境准备

编译最小要求
4GB RAM

安装GCC

gcc4.x版本不符合编译的要求,需要编译器支持c++17。
因此,需要安装gcc更高的版本。我们安装了

 yum  -y install  devtoolset-10-gcc devtoolset-10-gcc-c++ 

通过上述安装方法,不同版本的gcc可以共存,在切换gcc版本的时候,通过下面的命令就可以切换。(在当前的bash窗口中有效)

scl enable devtoolset-10 bash

安装Nodejs

过程略

安装Python3

安装过程略
问题,安装完python3,通过ln命令使python命令执行python3的处理,但是会影响到yum。因为yum是使用python2进行工作的。
需要修改yum的脚本,将

#! /usr/bin/python

改为

#! /usr/bin/python2

Yarn 安装依赖包

在通过yarn安装依赖包的时候,有如下报错

Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing `x11.pc'
to the PKG_CONFIG_PATH environment variable
No package 'x11' found
Package xkbfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xkbfile' found
Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing `x11.pc'
to the PKG_CONFIG_PATH environment variable
No package 'x11' found
Package xkbfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xkbfile' found
gyp: Call to '${PKG_CONFIG:-pkg-config} x11 xkbfile --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gypgyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:325:16)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
gyp ERR! System Linux 4.10.4-1.el7.elrepo.x86_64
gyp ERR! command "/usr/bin/node" "/usr/local/bin/node-gyp" "configure"
gyp ERR! cwd /root/vscode/node_modules/native-keymap
gyp ERR! node -v v16.18.1
gyp ERR! node-gyp -v v9.3.1
gyp ERR! not ok 

分析上述报错内容,发现是x11和xkbfile这两个库没有安装,它是在native-keymap包中被使用的本地化的库。
通过下面的代码,安装gcc的依赖包。

yum install libX11-devel.x86_64 libxkbfile-devel.x86_64 libsecret-devel 

编译服务器版本

vscode通过gulp编译,可以执行的编译任务如下:

[08:49:21] Tasks for ~/vscode/gulpfile.js
[08:49:21] ├── extract-editor-src
[08:49:21] ├── editor-distro
[08:49:21] ├── editor-esm-bundle
[08:49:21] ├── monacodts
[08:49:21] ├── transpile-extension:authentication-proxy
[08:49:21] ├── compile-extension:authentication-proxy
[08:49:21] ├── watch-extension:authentication-proxy
[08:49:21] ├── transpile-extension:configuration-editing-build
[08:49:21] ├── compile-extension:configuration-editing-build
[08:49:21] ├── watch-extension:configuration-editing-build
[08:49:21] ├── transpile-extension:configuration-editing
[08:49:21] ├── compile-extension:configuration-editing
[08:49:21] ├── watch-extension:configuration-editing
[08:49:21] ├── transpile-extension:css-language-features-client
[08:49:21] ├── compile-extension:css-language-features-client
[08:49:21] ├── watch-extension:css-language-features-client
[08:49:21] ├── transpile-extension:css-language-features-server
[08:49:21] ├── compile-extension:css-language-features-server
[08:49:21] ├── watch-extension:css-language-features-server
[08:49:21] ├── transpile-extension:debug-auto-launch
[08:49:21] ├── compile-extension:debug-auto-launch
[08:49:21] ├── watch-extension:debug-auto-launch
[08:49:21] ├── transpile-extension:debug-server-ready
[08:49:21] ├── compile-extension:debug-server-ready
[08:49:21] ├── watch-extension:debug-server-ready
[08:49:21] ├── transpile-extension:emmet
[08:49:21] ├── compile-extension:emmet
[08:49:21] ├── watch-extension:emmet
[08:49:21] ├── transpile-extension:extension-editing
[08:49:21] ├── compile-extension:extension-editing
[08:49:21] ├── watch-extension:extension-editing
[08:49:21] ├── transpile-extension:git
[08:49:21] ├── compile-extension:git
[08:49:21] ├── watch-extension:git
[08:49:21] ├── transpile-extension:git-base
[08:49:21] ├── compile-extension:git-base
[08:49:21] ├── watch-extension:git-base
[08:49:21] ├── transpile-extension:github-authentication
[08:49:21] ├── compile-extension:github-authentication
[08:49:21] ├── watch-extension:github-authentication
[08:49:21] ├── transpile-extension:github
[08:49:21] ├── compile-extension:github
[08:49:21] ├── watch-extension:github
[08:49:21] ├── transpile-extension:grunt
[08:49:21] ├── compile-extension:grunt
[08:49:21] ├── watch-extension:grunt
[08:49:21] ├── transpile-extension:gulp
[08:49:21] ├── compile-extension:gulp
[08:49:21] ├── watch-extension:gulp
[08:49:21] ├── transpile-extension:html-language-features-client
[08:49:21] ├── compile-extension:html-language-features-client
[08:49:21] ├── watch-extension:html-language-features-client
[08:49:21] ├── transpile-extension:html-language-features-server
[08:49:21] ├── compile-extension:html-language-features-server
[08:49:21] ├── watch-extension:html-language-features-server
[08:49:21] ├── transpile-extension:ipynb
[08:49:21] ├── compile-extension:ipynb
[08:49:21] ├── watch-extension:ipynb
[08:49:21] ├── transpile-extension:jake
[08:49:21] ├── compile-extension:jake
[08:49:21] ├── watch-extension:jake
[08:49:21] ├── transpile-extension:json-language-features-client
[08:49:21] ├── compile-extension:json-language-features-client
[08:49:21] ├── watch-extension:json-language-features-client
[08:49:21] ├── transpile-extension:json-language-features-server
[08:49:21] ├── compile-extension:json-language-features-server
[08:49:21] ├── watch-extension:json-language-features-server
[08:49:21] ├── transpile-extension:markdown-language-features-preview-src
[08:49:21] ├── compile-extension:markdown-language-features-preview-src
[08:49:21] ├── watch-extension:markdown-language-features-preview-src
[08:49:21] ├── transpile-extension:markdown-language-features-server
[08:49:21] ├── compile-extension:markdown-language-features-server
[08:49:21] ├── watch-extension:markdown-language-features-server
[08:49:21] ├── transpile-extension:markdown-language-features
[08:49:21] ├── compile-extension:markdown-language-features
[08:49:21] ├── watch-extension:markdown-language-features
[08:49:21] ├── transpile-extension:markdown-math
[08:49:21] ├── compile-extension:markdown-math
[08:49:21] ├── watch-extension:markdown-math
[08:49:21] ├── transpile-extension:media-preview
[08:49:21] ├── compile-extension:media-preview
[08:49:21] ├── watch-extension:media-preview
[08:49:21] ├── transpile-extension:merge-conflict
[08:49:21] ├── compile-extension:merge-conflict
[08:49:21] ├── watch-extension:merge-conflict
[08:49:21] ├── transpile-extension:microsoft-authentication
[08:49:21] ├── compile-extension:microsoft-authentication
[08:49:21] ├── watch-extension:microsoft-authentication
[08:49:21] ├── transpile-extension:notebook-renderers
[08:49:21] ├── compile-extension:notebook-renderers
[08:49:21] ├── watch-extension:notebook-renderers
[08:49:21] ├── transpile-extension:npm
[08:49:21] ├── compile-extension:npm
[08:49:21] ├── watch-extension:npm
[08:49:21] ├── transpile-extension:php-language-features
[08:49:21] ├── compile-extension:php-language-features
[08:49:21] ├── watch-extension:php-language-features
[08:49:21] ├── transpile-extension:search-result
[08:49:21] ├── compile-extension:search-result
[08:49:21] ├── watch-extension:search-result
[08:49:21] ├── transpile-extension:references-view
[08:49:21] ├── compile-extension:references-view
[08:49:21] ├── watch-extension:references-view
[08:49:21] ├── transpile-extension:simple-browser
[08:49:21] ├── compile-extension:simple-browser
[08:49:21] ├── watch-extension:simple-browser
[08:49:21] ├── transpile-extension:typescript-language-features-test-workspace
[08:49:21] ├── compile-extension:typescript-language-features-test-workspace
[08:49:21] ├── watch-extension:typescript-language-features-test-workspace
[08:49:21] ├── transpile-extension:typescript-language-features-web
[08:49:21] ├── compile-extension:typescript-language-features-web
[08:49:21] ├── watch-extension:typescript-language-features-web
[08:49:21] ├── transpile-extension:typescript-language-features
[08:49:21] ├── compile-extension:typescript-language-features
[08:49:21] ├── watch-extension:typescript-language-features
[08:49:21] ├── transpile-extension:vscode-api-tests
[08:49:21] ├── compile-extension:vscode-api-tests
[08:49:21] ├── watch-extension:vscode-api-tests
[08:49:21] ├── transpile-extension:vscode-colorize-tests
[08:49:21] ├── compile-extension:vscode-colorize-tests
[08:49:21] ├── watch-extension:vscode-colorize-tests
[08:49:21] ├── transpile-extension:vscode-test-resolver
[08:49:21] ├── compile-extension:vscode-test-resolver
[08:49:21] ├── watch-extension:vscode-test-resolver
[08:49:21] ├── transpile-extensions
[08:49:21] ├── compile-extensions
[08:49:21] ├── watch-extensions
[08:49:21] ├── compile-extensions-build-legacy
[08:49:21] ├── compile-extension-media
[08:49:21] ├── watch-extension-media
[08:49:21] ├── compile-extension-media-build
[08:49:21] ├── compile-extensions-build
[08:49:21] ├── extensions-ci
[08:49:21] ├── compile-web
[08:49:21] ├── watch-web
[08:49:21] ├── compile-api-proposal-names
[08:49:21] ├── watch-api-proposal-names
[08:49:21] ├── transpile-client-swc
[08:49:21] ├── transpile-client
[08:49:21] ├── compile-client
[08:49:21] ├── watch-client
[08:49:21] ├── compile
[08:49:21] ├── watch
[08:49:21] ├── default
[08:49:21] ├── compile-build
[08:49:21] ├── check-package-json
[08:49:21] ├── hygiene
[08:49:21] ├── minify-vscode-web
[08:49:21] ├── compile-web-extensions-build
[08:49:21] ├── vscode-web-ci
[08:49:21] ├── vscode-web
[08:49:21] ├── vscode-web-min-ci
[08:49:21] ├── vscode-web-min
[08:49:21] ├── node-win32-ia32
[08:49:21] ├── node-win32-x64
[08:49:21] ├── node-darwin-x64
[08:49:21] ├── node-darwin-arm64
[08:49:21] ├── node-linux-ia32
[08:49:21] ├── node-linux-x64
[08:49:21] ├── node-linux-armhf
[08:49:21] ├── node-linux-arm64
[08:49:21] ├── node-alpine-arm64
[08:49:21] ├── node-linux-alpine
[08:49:21] ├── node
[08:49:21] ├── minify-vscode-reh
[08:49:21] ├── vscode-reh-win32-ia32-ci
[08:49:21] ├── vscode-reh-win32-ia32
[08:49:21] ├── vscode-reh-win32-ia32-min-ci
[08:49:21] ├── vscode-reh-win32-ia32-min
[08:49:21] ├── vscode-reh-win32-x64-ci
[08:49:21] ├── vscode-reh-win32-x64
[08:49:21] ├── vscode-reh-win32-x64-min-ci
[08:49:21] ├── vscode-reh-win32-x64-min
[08:49:21] ├── vscode-reh-darwin-x64-ci
[08:49:21] ├── vscode-reh-darwin-x64
[08:49:21] ├── vscode-reh-darwin-x64-min-ci
[08:49:21] ├── vscode-reh-darwin-x64-min
[08:49:21] ├── vscode-reh-darwin-arm64-ci
[08:49:21] ├── vscode-reh-darwin-arm64
[08:49:21] ├── vscode-reh-darwin-arm64-min-ci
[08:49:21] ├── vscode-reh-darwin-arm64-min
[08:49:21] ├── vscode-reh-linux-ia32-ci
[08:49:21] ├── vscode-reh-linux-ia32
[08:49:21] ├── vscode-reh-linux-ia32-min-ci
[08:49:21] ├── vscode-reh-linux-ia32-min
[08:49:21] ├── vscode-reh-linux-x64-ci
[08:49:21] ├── vscode-reh-linux-x64
[08:49:21] ├── vscode-reh-linux-x64-min-ci
[08:49:21] ├── vscode-reh-linux-x64-min
[08:49:21] ├── vscode-reh-linux-armhf-ci
[08:49:21] ├── vscode-reh-linux-armhf
[08:49:21] ├── vscode-reh-linux-armhf-min-ci
[08:49:21] ├── vscode-reh-linux-armhf-min
[08:49:21] ├── vscode-reh-linux-arm64-ci
[08:49:21] ├── vscode-reh-linux-arm64
[08:49:21] ├── vscode-reh-linux-arm64-min-ci
[08:49:21] ├── vscode-reh-linux-arm64-min
[08:49:21] ├── vscode-reh-alpine-arm64-ci
[08:49:21] ├── vscode-reh-alpine-arm64
[08:49:21] ├── vscode-reh-alpine-arm64-min-ci
[08:49:21] ├── vscode-reh-alpine-arm64-min
[08:49:21] ├── vscode-reh-linux-alpine-ci
[08:49:21] ├── vscode-reh-linux-alpine
[08:49:21] ├── vscode-reh-linux-alpine-min-ci
[08:49:21] ├── vscode-reh-linux-alpine-min
[08:49:21] ├── minify-vscode-reh-web
[08:49:21] ├── vscode-reh-web-win32-ia32-ci
[08:49:21] ├── vscode-reh-web-win32-ia32
[08:49:21] ├── vscode-reh-web-win32-ia32-min-ci
[08:49:21] ├── vscode-reh-web-win32-ia32-min
[08:49:21] ├── vscode-reh-web-win32-x64-ci
[08:49:21] ├── vscode-reh-web-win32-x64
[08:49:21] ├── vscode-reh-web-win32-x64-min-ci
[08:49:21] ├── vscode-reh-web-win32-x64-min
[08:49:21] ├── vscode-reh-web-darwin-x64-ci
[08:49:21] ├── vscode-reh-web-darwin-x64
[08:49:21] ├── vscode-reh-web-darwin-x64-min-ci
[08:49:21] ├── vscode-reh-web-darwin-x64-min
[08:49:21] ├── vscode-reh-web-darwin-arm64-ci
[08:49:21] ├── vscode-reh-web-darwin-arm64
[08:49:21] ├── vscode-reh-web-darwin-arm64-min-ci
[08:49:21] ├── vscode-reh-web-darwin-arm64-min
[08:49:21] ├── vscode-reh-web-linux-ia32-ci
[08:49:21] ├── vscode-reh-web-linux-ia32
[08:49:21] ├── vscode-reh-web-linux-ia32-min-ci
[08:49:21] ├── vscode-reh-web-linux-ia32-min
[08:49:21] ├── vscode-reh-web-linux-x64-ci
[08:49:21] ├── vscode-reh-web-linux-x64
[08:49:21] ├── vscode-reh-web-linux-x64-min-ci
[08:49:21] ├── vscode-reh-web-linux-x64-min
[08:49:21] ├── vscode-reh-web-linux-armhf-ci
[08:49:21] ├── vscode-reh-web-linux-armhf
[08:49:21] ├── vscode-reh-web-linux-armhf-min-ci
[08:49:21] ├── vscode-reh-web-linux-armhf-min
[08:49:21] ├── vscode-reh-web-linux-arm64-ci
[08:49:21] ├── vscode-reh-web-linux-arm64
[08:49:21] ├── vscode-reh-web-linux-arm64-min-ci
[08:49:21] ├── vscode-reh-web-linux-arm64-min
[08:49:21] ├── vscode-reh-web-alpine-arm64-ci
[08:49:21] ├── vscode-reh-web-alpine-arm64
[08:49:21] ├── vscode-reh-web-alpine-arm64-min-ci
[08:49:21] ├── vscode-reh-web-alpine-arm64-min
[08:49:21] ├── vscode-reh-web-linux-alpine-ci
[08:49:21] ├── vscode-reh-web-linux-alpine
[08:49:21] ├── vscode-reh-web-linux-alpine-min-ci
[08:49:21] ├── vscode-reh-web-linux-alpine-min
[08:49:21] ├── vscode-symbols-win32-ia32
[08:49:21] ├── vscode-symbols-win32-x64
[08:49:21] ├── vscode-symbols-win32-arm64
[08:49:21] ├── vscode-symbols-darwin
[08:49:21] ├── vscode-symbols-linux-ia32
[08:49:21] ├── vscode-symbols-linux-x64
[08:49:21] ├── vscode-symbols-linux-armhf
[08:49:21] ├── vscode-symbols-linux-arm64
[08:49:21] ├── optimize-vscode
[08:49:21] ├── minify-vscode
[08:49:21] ├── core-ci
[08:49:21] ├── vscode-win32-ia32-ci
[08:49:21] ├── vscode-win32-ia32
[08:49:21] ├── vscode-win32-ia32-min-ci
[08:49:21] ├── vscode-win32-ia32-min
[08:49:21] ├── vscode-win32-x64-ci
[08:49:21] ├── vscode-win32-x64
[08:49:21] ├── vscode-win32-x64-min-ci
[08:49:21] ├── vscode-win32-x64-min
[08:49:21] ├── vscode-win32-arm64-ci
[08:49:21] ├── vscode-win32-arm64
[08:49:21] ├── vscode-win32-arm64-min-ci
[08:49:21] ├── vscode-win32-arm64-min
[08:49:21] ├── vscode-darwin-x64-ci
[08:49:21] ├── vscode-darwin-x64
[08:49:21] ├── vscode-darwin-x64-min-ci
[08:49:21] ├── vscode-darwin-x64-min
[08:49:21] ├── vscode-darwin-arm64-ci
[08:49:21] ├── vscode-darwin-arm64
[08:49:21] ├── vscode-darwin-arm64-min-ci
[08:49:21] ├── vscode-darwin-arm64-min
[08:49:21] ├── vscode-linux-ia32-ci
[08:49:21] ├── vscode-linux-ia32
[08:49:21] ├── vscode-linux-ia32-min-ci
[08:49:21] ├── vscode-linux-ia32-min
[08:49:21] ├── vscode-linux-x64-ci
[08:49:21] ├── vscode-linux-x64
[08:49:21] ├── vscode-linux-x64-min-ci
[08:49:21] ├── vscode-linux-x64-min
[08:49:21] ├── vscode
[08:49:21] ├── vscode-min
[08:49:21] ├── vscode-linux-armhf-ci
[08:49:21] ├── vscode-linux-armhf
[08:49:21] ├── vscode-linux-armhf-min-ci
[08:49:21] ├── vscode-linux-armhf-min
[08:49:21] ├── vscode-linux-arm64-ci
[08:49:21] ├── vscode-linux-arm64
[08:49:21] ├── vscode-linux-arm64-min-ci
[08:49:21] ├── vscode-linux-arm64-min
[08:49:21] ├── vscode-translations-export
[08:49:21] ├── vscode-translations-import
[08:49:21] ├── vscode-linux-x64-build-deb
[08:49:21] ├── vscode-linux-x64-build-rpm
[08:49:21] ├── vscode-linux-x64-prepare-snap
[08:49:21] ├── vscode-linux-x64-build-snap
[08:49:21] ├── vscode-linux-armhf-build-deb
[08:49:21] ├── vscode-linux-armhf-build-rpm
[08:49:21] ├── vscode-linux-armhf-prepare-snap
[08:49:21] ├── vscode-linux-armhf-build-snap
[08:49:21] ├── vscode-linux-arm64-build-deb
[08:49:21] ├── vscode-linux-arm64-build-rpm
[08:49:21] ├── vscode-linux-arm64-prepare-snap
[08:49:21] ├── vscode-linux-arm64-build-snap
[08:49:21] ├── vscode-win32-ia32-system-setup
[08:49:21] ├── vscode-win32-x64-system-setup
[08:49:21] ├── vscode-win32-arm64-system-setup
[08:49:21] ├── vscode-win32-ia32-user-setup
[08:49:21] ├── vscode-win32-x64-user-setup
[08:49:21] ├── vscode-win32-arm64-user-setup
[08:49:21] ├── vscode-win32-ia32-archive
[08:49:21] ├── vscode-win32-x64-archive
[08:49:21] ├── vscode-win32-arm64-archive
[08:49:21] ├── vscode-win32-ia32-inno-updater
[08:49:21] ├── vscode-win32-x64-inno-updater
[08:49:21] └── vscode-win32-arm64-inno-updater
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值