在 Ubuntu 上构建 vscode 时找不到包“xkbfile”

Bho*_*sut 10 ubuntu visual-studio-code

我正在 Ubuntu 18.04.2 LTS 上从源代码构建 VS Code。在跑步的时候

yarn run watch
Run Code Online (Sandbox Code Playgroud)

按照https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run 上的指示并得到以下错误。

Error: Cannot find module 'gulp-watch'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/title/workspace/vscode/build/lib/watch/index.js:23:68)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
error Command failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

因此,我尝试通过执行安装 gulp-watchyarn add gulp-watch --no-save并出现以下错误

error /home/title/workspace/vscode/node_modules/native-keymap: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments: 
Directory: /home/title/workspace/vscode/node_modules/native-keymap
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@3.6.2
gyp info using node@8.10.0 | linux | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/share/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/title/workspace/vscode/node_modules/native-keymap/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/share/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/title/.node-gyp/iojs-3.1.8/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/title/.node-gyp/iojs-3.1.8',
gyp info spawn args   '-Dnode_gyp_dir=/usr/share/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/title/.node-gyp/iojs-3.1.8/<(target_arch)/iojs.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/title/workspace/vscode/node_modules/native-keymap',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
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 x11 xkbfile --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:340:16)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.15.0-47-generic
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /home/title/workspace/vscode/node_modules/native-keymap
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是No package 'xkbfile' found消息,但没有发现与 xkbfile 有太大关系。

我如何通过这个?

谢谢

Bho*_*sut 18

根据https://github.com/Microsoft/node-native-keymap,我必须通过执行来安装 node-native-keymap 的依赖项

sudo apt-get install -y g++ gcc make python2.7 pkg-config libx11-dev libxkbfile-dev libsecret-1-dev
Run Code Online (Sandbox Code Playgroud)

  • 我还需要这个:`sudo apt-get install libsecret-1-dev`来构建 vscode (4认同)
  • 你是对的!对于 Debian9/Ubuntu 依赖项是 ```sudo apt-get install -y g++ gcc make python2.7 pkg-config libx11-dev libxkbfile-dev``` (2认同)