【问题标题】:How can I compile/install VScode on ARM Linux?如何在 ARM Linux 上编译/安装 VScode?
【发布时间】:2016-10-19 13:08:33
【问题描述】:

我正在尝试从 git repo 编译 VScode 1.2 分支。该平台是 Ubuntu 可信赖的,在 Chomebook 上的面包块中运行。 CPU 是 Nvidia Tegra K1,32 位 ARMv7。

为什么不能在 ARM 上编译?看起来它主要是用 Node.JS 和 Python 编写的,我在 ARM 上都有这两种,它们都与 CPU 无关。

=================================

philo@localhost ~/v/scripts> tail -15 npm-debug.log
6702 info installOne typechecker@2.0.8
6703 info installOne fsevents@0.3.8
6704 error notsup Unsupported
6704 error notsup Not compatible with your operating system or architecture: fsevents@0.3.8
6704 error notsup Valid OS:    darwin
6704 error notsup Valid Arch:  any
6704 error notsup Actual OS:   linux
6704 error notsup Actual Arch: arm
6705 error System Linux 3.10.18
6706 error command "/usr/bin/nodejs" "/usr/bin/npm" "install"
6707 error cwd /home/philo/vscode/scripts
6708 error node -v v0.10.25
6709 error npm -v 1.3.10
6710 error code EBADPLATFORM
6711 verbose exit [ 1, true ]

我已根据以下建议编辑了 fsevent。我也不得不ln -s /usr/bin/nodejs /usr/bin/node 但是,我仍然没有得到一个有效的构建:

npm WARN cannot run in wd code-oss-dev@1.2.1 node build/npm/postinstall.js (wd=/home/philo/vscode-release-1.2)

当我尝试运行它时:

philo@localhost ~/vscode-release-1.2> ./scripts/code.sh 

TypeError: Object function Object() { [native code] } has no method 'assign'
    at Object.create (/home/philo/vscode-release-1.2/node_modules/gulp-tsb/lib/index.js:28:16)
    at createCompile (/home/philo/vscode-release-1.2/gulpfile.js:47:15)
    at compileTask (/home/philo/vscode-release-1.2/gulpfile.js:80:16)
    at Object.<anonymous> (/home/philo/vscode-release-1.2/gulpfile.js:106:47)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)

TypeError: Object function Object() { [native code] } has no method 'assign'
    at Object.create (/home/philo/vscode-release-1.2/node_modules/gulp-tsb/lib/index.js:28:16)
    at createCompile (/home/philo/vscode-release-1.2/gulpfile.js:47:15)
    at compileTask (/home/philo/vscode-release-1.2/gulpfile.js:80:16)
    at Object.<anonymous> (/home/philo/vscode-release-1.2/gulpfile.js:106:47)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
./scripts/code.sh: line 32: /home/philo/vscode-release-1.2/.build/electron/electron: No such file or directory

【问题讨论】:

  • 您是否尝试安装 OS X 版本 (Valid OS: darwin)?有效的架构是any,所以arm 应该不是问题。
  • 你见过this吗?
  • 您使用的是什么版本的节点?运行node -v输出node的版本。
  • philo@localhost ~> nodejs -v v0.10.25

标签: python node.js compilation visual-studio-code armv7


【解决方案1】:

在 CentOS 6 (x64) 上遇到了同样的问题:

./scripts/npm.sh install --arch=x64

它将此 OS X 特定模块视为非可选依赖项。我唯一看到的是,依赖关系在 npm-shrinkwrap.json2016-04-19 commit 中被展平。不确定这是否是一个错误。

由于我不是为 OS X 编译,从 npm-shrinkwrap.json 中删除 fsevent 条目允许我继续。在内部,如果 fsevent 不存在,它似乎会依赖文件轮询。

【讨论】:

  • 感谢您的帮助。我仍然需要ln -s /usr/bin/nodejs /usr/bin/node。由于 gyp 正在调用 node,而不是 nodejs。我没有看到在哪里修复它,但链接 cludge 成功了。