frappe / bench

CLI to manage Multi-tenant deployments for Frappe apps
https://frappeframework.com/docs/user/en/bench
GNU General Public License v3.0
1.4k stars 1.21k forks source link

install.py fails due to `bench init` with `--frappe-branch master` on 32-bit arch #618

Closed oxwivi closed 6 years ago

oxwivi commented 6 years ago

--frappe-branch master attempts to install chromedriver@2.37.0 which fails because Only Linux 64 bits supported.

This is the install.py error output:

TASK [bench : python2 bench init for production] *******************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["bench", "init", "/home/frappe/frappe-bench", "--frappe-branch", "master"], "delta": "0:50:41.241052", "end": "2018-03-27 11:48:22.467284", "failed": true, "msg": "non-zero return code", "rc": 1, "start": "2018-03-27 10:57:41.226232", "stderr": "INFO:bench.utils:virtualenv -q env -p /usr/bin/python\nINFO:bench.utils:./env/bin/pip -q install --upgrade pip\nINFO:bench.utils:./env/bin/pip -q install wheel\nINFO:bench.utils:./env/bin/pip -q install six\nINFO:bench.utils:./env/bin/pip -q install -e git+https://github.com/frappe/python-pdfkit.git#egg=pdfkit\nINFO:bench.app:getting app frappe\nINFO:bench.utils:git clone https://github.com/frappe/frappe.git --branch master  --origin upstream\nCloning into 'frappe'...\nINFO:bench.app:installing frappe\nINFO:bench.utils:/home/frappe/frappe-bench/env/bin/pip install -q  -e /home/frappe/frappe-bench/apps/frappe --no-cache-dir\nINFO:bench.utils:npm install\nnpm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0\nnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):\nnpm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {\"os\":\"darwin\",\"arch\":\"any\"} (current: {\"os\":\"linux\",\"arch\":\"arm\"})\nnpm WARN frappe@ No description\nnpm ERR! Linux 4.4.0-1085-raspi2\nnpm ERR! argv \"/usr/bin/node\" \"/usr/bin/npm\" \"install\"\nnpm ERR! node v6.13.1\nnpm ERR! npm  v3.10.10\nnpm ERR! code ELIFECYCLE\n\nnpm ERR! chromedriver@2.37.0 install: `node install.js`\nnpm ERR! Exit status 1\nnpm ERR! \nnpm ERR! Failed at the chromedriver@2.37.0 install script 'node install.js'.\nnpm ERR! Make sure you have the latest version of node.js and npm installed.\nnpm ERR! If you do, this is most likely a problem with the chromedriver package,\nnpm ERR! not with npm itself.\nnpm ERR! Tell the author that this fails on your system:\nnpm ERR!     node install.js\nnpm ERR! You can get information on how to open an issue for this project with:\nnpm ERR!     npm bugs chromedriver\nnpm ERR! Or if that isn't available, you can get their info via:\nnpm ERR!     npm owner ls chromedriver\nnpm ERR! There is likely additional logging output above.\n\nnpm ERR! Please include the following file with any support request:\nnpm ERR!     /home/frappe/frappe-bench/npm-debug.log\nTraceback (most recent call last):\n  File \"/usr/local/bin/bench\", line 11, in <module>\n    load_entry_point('bench', 'console_scripts', 'bench')()\n  File \"/home/frappe/.bench/bench/cli.py\", line 40, in cli\n    bench_command()\n  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 722, in __call__\n    return self.main(*args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 697, in main\n    rv = self.invoke(ctx)\n  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 1066, in invoke\n    return _process_result(sub_ctx.command.invoke(sub_ctx))\n  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 895, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 535, in invoke\n    return callback(*args, **kwargs)\n  File \"/home/frappe/.bench/bench/commands/make.py\", line 28, in init\n    python \t\t = python)\n  File \"/home/frappe/.bench/bench/utils.py\", line 82, in init\n    update_node_packages(bench_path=path)\n  File \"/home/frappe/.bench/bench/utils.py\", line 452, in update_node_packages\n    update_npm_packages(bench_path)\n  File \"/home/frappe/.bench/bench/utils.py\", line 499, in update_npm_packages\n    exec_cmd('npm install', cwd=bench_path)\n  File \"/home/frappe/.bench/bench/utils.py\", line 152, in exec_cmd\n    raise CommandFailedError(cmd)\nbench.utils.CommandFailedError: npm install", "stderr_lines": ["INFO:bench.utils:virtualenv -q env -p /usr/bin/python", "INFO:bench.utils:./env/bin/pip -q install --upgrade pip", "INFO:bench.utils:./env/bin/pip -q install wheel", "INFO:bench.utils:./env/bin/pip -q install six", "INFO:bench.utils:./env/bin/pip -q install -e git+https://github.com/frappe/python-pdfkit.git#egg=pdfkit", "INFO:bench.app:getting app frappe", "INFO:bench.utils:git clone https://github.com/frappe/frappe.git --branch master  --origin upstream", "Cloning into 'frappe'...", "INFO:bench.app:installing frappe", "INFO:bench.utils:/home/frappe/frappe-bench/env/bin/pip install -q  -e /home/frappe/frappe-bench/apps/frappe --no-cache-dir", "INFO:bench.utils:npm install", "npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0", "npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):", "npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {\"os\":\"darwin\",\"arch\":\"any\"} (current: {\"os\":\"linux\",\"arch\":\"arm\"})", "npm WARN frappe@ No description", "npm ERR! Linux 4.4.0-1085-raspi2", "npm ERR! argv \"/usr/bin/node\" \"/usr/bin/npm\" \"install\"", "npm ERR! node v6.13.1", "npm ERR! npm  v3.10.10", "npm ERR! code ELIFECYCLE", "", "npm ERR! chromedriver@2.37.0 install: `node install.js`", "npm ERR! Exit status 1", "npm ERR! ", "npm ERR! Failed at the chromedriver@2.37.0 install script 'node install.js'.", "npm ERR! Make sure you have the latest version of node.js and npm installed.", "npm ERR! If you do, this is most likely a problem with the chromedriver package,", "npm ERR! not with npm itself.", "npm ERR! Tell the author that this fails on your system:", "npm ERR!     node install.js", "npm ERR! You can get information on how to open an issue for this project with:", "npm ERR!     npm bugs chromedriver", "npm ERR! Or if that isn't available, you can get their info via:", "npm ERR!     npm owner ls chromedriver", "npm ERR! There is likely additional logging output above.", "", "npm ERR! Please include the following file with any support request:", "npm ERR!     /home/frappe/frappe-bench/npm-debug.log", "Traceback (most recent call last):", "  File \"/usr/local/bin/bench\", line 11, in <module>", "    load_entry_point('bench', 'console_scripts', 'bench')()", "  File \"/home/frappe/.bench/bench/cli.py\", line 40, in cli", "    bench_command()", "  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 722, in __call__", "    return self.main(*args, **kwargs)", "  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 697, in main", "    rv = self.invoke(ctx)", "  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 1066, in invoke", "    return _process_result(sub_ctx.command.invoke(sub_ctx))", "  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 895, in invoke", "    return ctx.invoke(self.callback, **ctx.params)", "  File \"/usr/local/lib/python2.7/dist-packages/click/core.py\", line 535, in invoke", "    return callback(*args, **kwargs)", "  File \"/home/frappe/.bench/bench/commands/make.py\", line 28, in init", "    python \t\t = python)", "  File \"/home/frappe/.bench/bench/utils.py\", line 82, in init", "    update_node_packages(bench_path=path)", "  File \"/home/frappe/.bench/bench/utils.py\", line 452, in update_node_packages", "    update_npm_packages(bench_path)", "  File \"/home/frappe/.bench/bench/utils.py\", line 499, in update_npm_packages", "    exec_cmd('npm install', cwd=bench_path)", "  File \"/home/frappe/.bench/bench/utils.py\", line 152, in exec_cmd", "    raise CommandFailedError(cmd)", "bench.utils.CommandFailedError: npm install"], "stdout": "Already using interpreter /usr/bin/python\n\n> uws@9.14.0 install /home/frappe/frappe-bench/node_modules/uws\n> node-gyp rebuild > build_log.txt 2>&1 || exit 0\n\n\n> chromedriver@2.37.0 install /home/frappe/frappe-bench/node_modules/chromedriver\n> node install.js\n\nOnly Linux 64 bits supported.\nfrappe@ /home/frappe/frappe-bench\n├─┬ babel-core@6.26.0 \n│ ├─┬ babel-code-frame@6.26.0 \n│ │ ├─┬ chalk@1.1.3 \n│ │ │ ├── ansi-styles@2.2.1 \n│ │ │ ├─┬ has-ansi@2.0.0 \n│ │ │ │ └── ansi-regex@2.1.1 \n│ │ │ ├── strip-ansi@3.0.1 \n│ │ │ └── supports-color@2.0.0 \n│ │ ├── esutils@2.0.2 \n│ │ └── js-tokens@3.0.2 \n│ ├─┬ babel-generator@6.26.1 \n│ │ ├─┬ detect-indent@4.0.0 \n│ │ │ └─┬ repeating@2.0.1 \n│ │ │   └─┬ is-finite@1.0.2 \n│ │ │     └── number-is-nan@1.0.1 \n│ │ ├── jsesc@1.3.0 \n│ │ └── trim-right@1.0.1 \n│ ├── babel-helpers@6.24.1 \n│ ├── babel-messages@6.23.0 \n│ ├─┬ babel-register@6.26.0 \n│ │ ├── core-js@2.5.3 \n│ │ ├─┬ home-or-tmp@2.0.0 \n│ │ │ ├── os-homedir@1.0.2 \n│ │ │ └── os-tmpdir@1.0.2 \n│ │ └── source-map-support@0.4.18 \n│ ├─┬ babel-runtime@6.26.0 \n│ │ └── regenerator-runtime@0.11.1 \n│ ├── babel-template@6.26.0 \n│ ├─┬ babel-traverse@6.26.0 \n│ │ └── globals@9.18.0 \n│ ├─┬ babel-types@6.26.0 \n│ │ └── to-fast-properties@1.0.3 \n│ ├── babylon@6.18.0 \n│ ├── convert-source-map@1.5.1 \n│ ├─┬ debug@2.6.9 \n│ │ └── ms@2.0.0 \n│ ├── json5@0.5.1 \n│ ├── lodash@4.17.5 \n│ ├─┬ minimatch@3.0.4 \n│ │ └─┬ brace-expansion@1.1.11 \n│ │   ├── balanced-match@1.0.0 \n│ │   └── concat-map@0.0.1 \n│ ├── path-is-absolute@1.0.1 \n│ ├── private@0.1.8 \n│ ├── slash@1.0.0 \n│ └── source-map@0.5.7 \n├─┬ babel-plugin-transform-object-rest-spread@6.26.0 \n│ └── babel-plugin-syntax-object-rest-spread@6.13.0 \n├─┬ babel-preset-env@1.6.1 \n│ ├── babel-plugin-check-es2015-constants@6.22.0 \n│ ├── babel-plugin-syntax-trailing-function-commas@6.22.0 \n│ ├─┬ babel-plugin-transform-async-to-generator@6.24.1 \n│ │ ├── babel-helper-remap-async-to-generator@6.24.1 \n│ │ └── babel-plugin-syntax-async-functions@6.13.0 \n│ ├── babel-plugin-transform-es2015-arrow-functions@6.22.0 \n│ ├── babel-plugin-transform-es2015-block-scoped-functions@6.22.0 \n│ ├── babel-plugin-transform-es2015-block-scoping@6.26.0 \n│ ├─┬ babel-plugin-transform-es2015-classes@6.24.1 \n│ │ ├── babel-helper-define-map@6.26.0 \n│ │ ├── babel-helper-function-name@6.24.1 \n│ │ ├── babel-helper-optimise-call-expression@6.24.1 \n│ │ └── babel-helper-replace-supers@6.24.1 \n│ ├── babel-plugin-transform-es2015-computed-properties@6.24.1 \n│ ├── babel-plugin-transform-es2015-destructuring@6.23.0 \n│ ├── babel-plugin-transform-es2015-duplicate-keys@6.24.1 \n│ ├── babel-plugin-transform-es2015-for-of@6.23.0 \n│ ├── babel-plugin-transform-es2015-function-name@6.24.1 \n│ ├── babel-plugin-transform-es2015-literals@6.22.0 \n│ ├── babel-plugin-transform-es2015-modules-amd@6.24.1 \n│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.26.0 \n│ │ └── babel-plugin-transform-strict-mode@6.24.1 \n│ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.24.1 \n│ │ └── babel-helper-hoist-variables@6.24.1 \n│ ├── babel-plugin-transform-es2015-modules-umd@6.24.1 \n│ ├── babel-plugin-transform-es2015-object-super@6.24.1 \n│ ├─┬ babel-plugin-transform-es2015-parameters@6.24.1 \n│ │ ├── babel-helper-call-delegate@6.24.1 \n│ │ └── babel-helper-get-function-arity@6.24.1 \n│ ├── babel-plugin-transform-es2015-shorthand-properties@6.24.1 \n│ ├── babel-plugin-transform-es2015-spread@6.22.0 \n│ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.24.1 \n│ │ └── babel-helper-regex@6.26.0 \n│ ├── babel-plugin-transform-es2015-template-literals@6.22.0 \n│ ├── babel-plugin-transform-es2015-typeof-symbol@6.23.0 \n│ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.24.1 \n│ │ └─┬ regexpu-core@2.0.0 \n│ │   ├── regenerate@1.3.3 \n│ │   ├── regjsgen@0.2.0 \n│ │   └─┬ regjsparser@0.1.5 \n│ │     └── jsesc@0.5.0 \n│ ├─┬ babel-plugin-transform-exponentiation-operator@6.24.1 \n│ │ ├─┬ babel-helper-builder-binary-assignment-operator-visitor@6.24.1 \n│ │ │ └── babel-helper-explode-assignable-expression@6.24.1 \n│ │ └── babel-plugin-syntax-exponentiation-operator@6.13.0 \n│ ├─┬ babel-plugin-transform-regenerator@6.26.0 \n│ │ └── regenerator-transform@0.10.1 \n│ ├─┬ browserslist@2.11.3 \n│ │ ├── caniuse-lite@1.0.30000820 \n│ │ └── electron-to-chromium@1.3.40 \n│ ├─┬ invariant@2.2.4 \n│ │ └── loose-envify@1.3.1 \n│ └── semver@5.5.0 \n├─┬ babel-preset-minify@0.2.0 \n│ ├─┬ babel-plugin-minify-builtins@0.2.0 \n│ │ └── babel-helper-evaluate-path@0.2.0 \n│ ├── babel-plugin-minify-constant-folding@0.2.0 \n│ ├─┬ babel-plugin-minify-dead-code-elimination@0.2.0 \n│ │ ├── babel-helper-mark-eval-scopes@0.2.0 \n│ │ ├── babel-helper-remove-or-void@0.2.0 \n│ │ └── lodash.some@4.6.0 \n│ ├─┬ babel-plugin-minify-flip-comparisons@0.2.0 \n│ │ └── babel-helper-is-void-0@0.2.0 \n│ ├─┬ babel-plugin-minify-guarded-expressions@0.2.0 \n│ │ └── babel-helper-flip-expressions@0.2.0 \n│ ├── babel-plugin-minify-infinity@0.2.0 \n│ ├── babel-plugin-minify-mangle-names@0.2.0 \n│ ├── babel-plugin-minify-numeric-literals@0.2.0 \n│ ├── babel-plugin-minify-replace@0.2.0 \n│ ├─┬ babel-plugin-minify-simplify@0.2.0 \n│ │ ├── babel-helper-is-nodes-equiv@0.0.1 \n│ │ └── babel-helper-to-multiple-sequence-expressions@0.2.0 \n│ ├── babel-plugin-minify-type-constructors@0.2.0 \n│ ├── babel-plugin-transform-inline-consecutive-adds@0.2.0 \n│ ├── babel-plugin-transform-member-expression-literals@6.9.0 \n│ ├── babel-plugin-transform-merge-sibling-variables@6.9.0 \n│ ├── babel-plugin-transform-minify-booleans@6.9.0 \n│ ├── babel-plugin-transform-property-literals@6.9.0 \n│ ├── babel-plugin-transform-regexp-constructors@0.2.0 \n│ ├── babel-plugin-transform-remove-console@6.9.0 \n│ ├── babel-plugin-transform-remove-debugger@6.9.0 \n│ ├── babel-plugin-transform-remove-undefined@0.2.0 \n│ ├── babel-plugin-transform-simplify-comparison-operators@6.9.0 \n│ ├── babel-plugin-transform-undefined-to-void@6.9.0 \n│ └── lodash.isplainobject@4.0.6 \n├─┬ chokidar@1.7.0 \n│ ├─┬ anymatch@1.3.2 \n│ │ ├─┬ micromatch@2.3.11 \n│ │ │ ├─┬ arr-diff@2.0.0 \n│ │ │ │ └── arr-flatten@1.1.0 \n│ │ │ ├── array-unique@0.2.1 \n│ │ │ ├─┬ braces@1.8.5 \n│ │ │ │ ├─┬ expand-range@1.8.2 \n│ │ │ │ │ └─┬ fill-range@2.2.3 \n│ │ │ │ │   ├── is-number@2.1.0 \n│ │ │ │ │   ├─┬ isobject@2.1.0 \n│ │ │ │ │   │ └── isarray@1.0.0 \n│ │ │ │ │   ├─┬ randomatic@1.1.7 \n│ │ │ │ │   │ ├─┬ is-number@3.0.0 \n│ │ │ │ │   │ │ └── kind-of@3.2.2 \n│ │ │ │ │   │ └── kind-of@4.0.0 \n│ │ │ │ │   └── repeat-string@1.6.1 \n│ │ │ │ ├── preserve@0.2.0 \n│ │ │ │ └── repeat-element@1.1.2 \n│ │ │ ├─┬ expand-brackets@0.1.5 \n│ │ │ │ └── is-posix-bracket@0.1.1 \n│ │ │ ├── extglob@0.3.2 \n│ │ │ ├── filename-regex@2.0.1 \n│ │ │ ├─┬ kind-of@3.2.2 \n│ │ │ │ └── is-buffer@1.1.6 \n│ │ │ ├─┬ object.omit@2.0.1 \n│ │ │ │ ├─┬ for-own@0.1.5 \n│ │ │ │ │ └── for-in@1.0.2 \n│ │ │ │ └── is-extendable@0.1.1 \n│ │ │ ├─┬ parse-glob@3.0.4 \n│ │ │ │ ├── glob-base@0.3.0 \n│ │ │ │ └── is-dotfile@1.0.3 \n│ │ │ └─┬ regex-cache@0.4.4 \n│ │ │   └─┬ is-equal-shallow@0.1.3 \n│ │ │     └── is-primitive@2.0.0 \n│ │ └─┬ normalize-path@2.1.1 \n│ │   └── remove-trailing-separator@1.1.0 \n│ ├── async-each@1.0.1 \n│ ├── glob-parent@2.0.0 \n│ ├── inherits@2.0.3 \n│ ├─┬ is-binary-path@1.0.1 \n│ │ └── binary-extensions@1.11.0 \n│ ├─┬ is-glob@2.0.1 \n│ │ └── is-extglob@1.0.0 \n│ └─┬ readdirp@2.1.0 \n│   └── set-immediate-shim@1.0.1 \n├── cookie@0.3.1 \n├─┬ express@4.16.3 \n│ ├─┬ accepts@1.3.5 \n│ │ ├─┬ mime-types@2.1.18 \n│ │ │ └── mime-db@1.33.0 \n│ │ └── negotiator@0.6.1 \n│ ├── array-flatten@1.1.1 \n│ ├─┬ body-parser@1.18.2 \n│ │ ├── bytes@3.0.0 \n│ │ ├─┬ http-errors@1.6.2 \n│ │ │ ├── depd@1.1.1 \n│ │ │ └── setprototypeof@1.0.3 \n│ │ ├── iconv-lite@0.4.19 \n│ │ └── raw-body@2.3.2 \n│ ├── content-disposition@0.5.2 \n│ ├── content-type@1.0.4 \n│ ├── cookie-signature@1.0.6 \n│ ├── depd@1.1.2 \n│ ├── encodeurl@1.0.2 \n│ ├── escape-html@1.0.3 \n│ ├── etag@1.8.1 \n│ ├─┬ finalhandler@1.1.1 \n│ │ └── unpipe@1.0.0 \n│ ├── fresh@0.5.2 \n│ ├── merge-descriptors@1.0.1 \n│ ├── methods@1.1.2 \n│ ├─┬ on-finished@2.3.0 \n│ │ └── ee-first@1.1.1 \n│ ├── parseurl@1.3.2 \n│ ├── path-to-regexp@0.1.7 \n│ ├─┬ proxy-addr@2.0.3 \n│ │ ├── forwarded@0.1.2 \n│ │ └── ipaddr.js@1.6.0 \n│ ├── qs@6.5.1 \n│ ├── range-parser@1.2.0 \n│ ├── safe-buffer@5.1.1 \n│ ├─┬ send@0.16.2 \n│ │ └── destroy@1.0.4 \n│ ├── serve-static@1.13.2 \n│ ├── setprototypeof@1.1.0 \n│ ├── statuses@1.4.0 \n│ ├─┬ type-is@1.6.16 \n│ │ └── media-typer@0.3.0 \n│ ├── utils-merge@1.0.1 \n│ └── vary@1.1.2 \n├─┬ less@2.7.3 \n│ ├─┬ errno@0.1.7 \n│ │ └── prr@1.0.1 \n│ ├── graceful-fs@4.1.11 \n│ ├── image-size@0.5.5 \n│ ├── mime@1.4.1 \n│ ├─┬ mkdirp@0.5.1 \n│ │ └── minimist@0.0.8 \n│ ├─┬ promise@7.3.1 \n│ │ └── asap@2.0.6 \n│ └─┬ request@2.81.0 \n│   ├── aws-sign2@0.6.0 \n│   ├── aws4@1.6.0 \n│   ├── caseless@0.12.0 \n│   ├─┬ combined-stream@1.0.6 \n│   │ └── delayed-stream@1.0.0 \n│   ├── forever-agent@0.6.1 \n│   ├── form-data@2.1.4 \n│   ├─┬ har-validator@4.2.1 \n│   │ ├─┬ ajv@4.11.8 \n│   │ │ ├── co@4.6.0 \n│   │ │ └─┬ json-stable-stringify@1.0.1 \n│   │ │   └── jsonify@0.0.0 \n│   │ └── har-schema@1.0.5 \n│   ├─┬ hawk@3.1.3 \n│   │ ├── boom@2.10.1 \n│   │ ├── cryptiles@2.0.5 \n│   │ ├── hoek@2.16.3 \n│   │ └── sntp@1.0.9 \n│   ├─┬ http-signature@1.1.1 \n│   │ ├── assert-plus@0.2.0 \n│   │ ├─┬ jsprim@1.4.1 \n│   │ │ ├── assert-plus@1.0.0 \n│   │ │ ├── extsprintf@1.3.0 \n│   │ │ ├── json-schema@0.2.3 \n│   │ │ └── verror@1.10.0 \n│   │ └─┬ sshpk@1.14.1 \n│   │   ├── asn1@0.2.3 \n│   │   ├── bcrypt-pbkdf@1.0.1 \n│   │   ├── dashdash@1.14.1 \n│   │   ├── ecc-jsbn@0.1.1 \n│   │   ├── getpass@0.1.7 \n│   │   ├── jsbn@0.1.1 \n│   │   └── tweetnacl@0.14.5 \n│   ├── is-typedarray@1.0.0 \n│   ├── isstream@0.1.2 \n│   ├── json-stringify-safe@5.0.1 \n│   ├── oauth-sign@0.8.2 \n│   ├── performance-now@0.2.0 \n│   ├── qs@6.4.0 \n│   ├── stringstream@0.0.5 \n│   ├─┬ tough-cookie@2.3.4 \n│   │ └── punycode@1.4.1 \n│   ├── tunnel-agent@0.6.0 \n│   └── uuid@3.2.1 \n├─┬ nightwatch@0.9.20 \n│ ├─┬ chai-nightwatch@0.1.1 \n│ │ ├── assertion-error@1.0.0 \n│ │ └─┬ deep-eql@0.1.3 \n│ │   └── type-detect@0.1.1 \n│ ├── ejs@2.5.7 \n│ ├─┬ lodash.clone@3.0.3 \n│ │ ├─┬ lodash._baseclone@3.3.0 \n│ │ │ ├── lodash._arraycopy@3.0.0 \n│ │ │ ├── lodash._arrayeach@3.0.0 \n│ │ │ ├─┬ lodash._baseassign@3.2.0 \n│ │ │ │ └── lodash._basecopy@3.0.1 \n│ │ │ ├── lodash._basefor@3.0.3 \n│ │ │ ├── lodash.isarray@3.0.4 \n│ │ │ └─┬ lodash.keys@3.1.2 \n│ │ │   ├── lodash._getnative@3.9.1 \n│ │ │   └── lodash.isarguments@3.1.0 \n│ │ ├── lodash._bindcallback@3.0.1 \n│ │ └── lodash._isiterateecall@3.0.9 \n│ ├─┬ lodash.defaultsdeep@4.3.2 \n│ │ ├── lodash._baseclone@4.5.7 \n│ │ ├── lodash._stack@4.1.3 \n│ │ ├── lodash.keysin@4.2.0 \n│ │ ├── lodash.mergewith@4.6.1 \n│ │ └── lodash.rest@4.0.5 \n│ ├── minimatch@3.0.3 \n│ ├── mkpath@1.0.0 \n│ ├─┬ mocha-nightwatch@3.2.2 \n│ │ ├── browser-stdout@1.3.0 \n│ │ ├─┬ commander@2.9.0 \n│ │ │ └── graceful-readlink@1.0.1 \n│ │ ├─┬ debug@2.2.0 \n│ │ │ └── ms@0.7.1 \n│ │ ├── diff@1.4.0 \n│ │ ├── escape-string-regexp@1.0.5 \n│ │ ├─┬ glob@7.0.5 \n│ │ │ ├── fs.realpath@1.0.0 \n│ │ │ ├─┬ inflight@1.0.6 \n│ │ │ │ └── wrappy@1.0.2 \n│ │ │ └── once@1.4.0 \n│ │ ├── growl@1.9.2 \n│ │ ├── json3@3.3.2 \n│ │ ├─┬ lodash.create@3.1.1 \n│ │ │ └── lodash._basecreate@3.0.3 \n│ │ └─┬ supports-color@3.1.2 \n│ │   └── has-flag@1.0.0 \n│ ├─┬ optimist@0.6.1 \n│ │ └── wordwrap@0.0.3 \n│ ├─┬ proxy-agent@2.0.0 \n│ │ ├─┬ agent-base@2.1.1 \n│ │ │ └── semver@5.0.3 \n│ │ ├── http-proxy-agent@1.0.0 \n│ │ ├── https-proxy-agent@1.0.0 \n│ │ ├── lru-cache@2.6.5 \n│ │ ├─┬ pac-proxy-agent@1.1.0 \n│ │ │ ├─┬ get-uri@2.0.1 \n│ │ │ │ ├── data-uri-to-buffer@1.2.0 \n│ │ │ │ ├── file-uri-to-path@1.0.0 \n│ │ │ │ └─┬ ftp@0.3.10 \n│ │ │ │   ├─┬ readable-stream@1.1.14 \n│ │ │ │   │ ├── isarray@0.0.1 \n│ │ │ │   │ └── string_decoder@0.10.31 \n│ │ │ │   └── xregexp@2.0.0 \n│ │ │ └─┬ pac-resolver@2.0.0 \n│ │ │   ├── co@3.0.6 \n│ │ │   ├─┬ degenerator@1.0.4 \n│ │ │   │ ├── ast-types@0.11.3 \n│ │ │   │ ├─┬ escodegen@1.9.1 \n│ │ │   │ │ ├── estraverse@4.2.0 \n│ │ │   │ │ ├─┬ optionator@0.8.2 \n│ │ │   │ │ │ ├── deep-is@0.1.3 \n│ │ │   │ │ │ ├── fast-levenshtein@2.0.6 \n│ │ │   │ │ │ ├── levn@0.3.0 \n│ │ │   │ │ │ ├── prelude-ls@1.1.2 \n│ │ │   │ │ │ ├── type-check@0.3.2 \n│ │ │   │ │ │ └── wordwrap@1.0.0 \n│ │ │   │ │ └── source-map@0.6.1 \n│ │ │   │ └── esprima@3.1.3 \n│ │ │   ├── ip@1.0.1 \n│ │ │   ├── netmask@1.0.6 \n│ │ │   └── thunkify@2.1.2 \n│ │ └─┬ socks-proxy-agent@2.1.1 \n│ │   └─┬ socks@1.1.10 \n│ │     ├── ip@1.1.5 \n│ │     └── smart-buffer@1.1.15 \n│ └── q@1.4.1 \n├─┬ redis@2.8.0 \n│ ├── double-ended-queue@2.1.0-0 \n│ ├── redis-commands@1.3.5 \n│ └── redis-parser@2.6.0 \n├─┬ socket.io@2.0.4 \n│ ├─┬ engine.io@3.1.5 \n│ │ ├── base64id@1.0.0 \n│ │ ├── debug@3.1.0 \n│ │ ├─┬ engine.io-parser@2.1.2 \n│ │ │ ├── after@0.8.2 \n│ │ │ ├── arraybuffer.slice@0.0.7 \n│ │ │ └── blob@0.0.4 \n│ │ ├── uws@9.14.0 \n│ │ └─┬ ws@3.3.3 \n│ │   ├── async-limiter@1.0.0 \n│ │   └── ultron@1.1.1 \n│ ├── socket.io-adapter@1.1.1 \n│ ├─┬ socket.io-client@2.0.4 \n│ │ ├── backo2@1.0.2 \n│ │ ├── base64-arraybuffer@0.1.5 \n│ │ ├── component-bind@1.0.0 \n│ │ ├─┬ engine.io-client@3.1.6 \n│ │ │ ├── component-inherit@0.0.3 \n│ │ │ ├── debug@3.1.0 \n│ │ │ ├── xmlhttprequest-ssl@1.5.5 \n│ │ │ └── yeast@0.1.2 \n│ │ ├── has-cors@1.1.0 \n│ │ ├── indexof@0.0.1 \n│ │ ├── object-component@0.0.3 \n│ │ ├─┬ parseqs@0.0.5 \n│ │ │ └─┬ better-assert@1.0.2 \n│ │ │   └── callsite@1.0.0 \n│ │ ├── parseuri@0.0.5 \n│ │ └── to-array@0.1.4 \n│ └─┬ socket.io-parser@3.1.3 \n│   ├── debug@3.1.0 \n│   ├── has-binary2@1.0.2 \n│   └── isarray@2.0.1 \n├─┬ superagent@3.8.2 \n│ ├── component-emitter@1.2.1 \n│ ├── cookiejar@2.1.1 \n│ ├── debug@3.1.0 \n│ ├── extend@3.0.1 \n│ ├─┬ form-data@2.3.2 \n│ │ └── asynckit@0.4.0 \n│ ├── formidable@1.2.1 \n│ └─┬ readable-stream@2.3.5 \n│   ├── core-util-is@1.0.2 \n│   ├── isarray@1.0.0 \n│   ├── process-nextick-args@2.0.0 \n│   ├── string_decoder@1.0.3 \n│   └── util-deprecate@1.0.2 \n└─┬ touch@3.1.0 \n  └─┬ nopt@1.0.10 \n    └── abbrev@1.1.1 \n\n('installing', u'frappe')\nUpdating node packages...", "stdout_lines": ["Already using interpreter /usr/bin/python", "", "> uws@9.14.0 install /home/frappe/frappe-bench/node_modules/uws", "> node-gyp rebuild > build_log.txt 2>&1 || exit 0", "", "", "> chromedriver@2.37.0 install /home/frappe/frappe-bench/node_modules/chromedriver", "> node install.js", "", "Only Linux 64 bits supported.", "frappe@ /home/frappe/frappe-bench", "├─┬ babel-core@6.26.0 ", "│ ├─┬ babel-code-frame@6.26.0 ", "│ │ ├─┬ chalk@1.1.3 ", "│ │ │ ├── ansi-styles@2.2.1 ", "│ │ │ ├─┬ has-ansi@2.0.0 ", "│ │ │ │ └── ansi-regex@2.1.1 ", "│ │ │ ├── strip-ansi@3.0.1 ", "│ │ │ └── supports-color@2.0.0 ", "│ │ ├── esutils@2.0.2 ", "│ │ └── js-tokens@3.0.2 ", "│ ├─┬ babel-generator@6.26.1 ", "│ │ ├─┬ detect-indent@4.0.0 ", "│ │ │ └─┬ repeating@2.0.1 ", "│ │ │   └─┬ is-finite@1.0.2 ", "│ │ │     └── number-is-nan@1.0.1 ", "│ │ ├── jsesc@1.3.0 ", "│ │ └── trim-right@1.0.1 ", "│ ├── babel-helpers@6.24.1 ", "│ ├── babel-messages@6.23.0 ", "│ ├─┬ babel-register@6.26.0 ", "│ │ ├── core-js@2.5.3 ", "│ │ ├─┬ home-or-tmp@2.0.0 ", "│ │ │ ├── os-homedir@1.0.2 ", "│ │ │ └── os-tmpdir@1.0.2 ", "│ │ └── source-map-support@0.4.18 ", "│ ├─┬ babel-runtime@6.26.0 ", "│ │ └── regenerator-runtime@0.11.1 ", "│ ├── babel-template@6.26.0 ", "│ ├─┬ babel-traverse@6.26.0 ", "│ │ └── globals@9.18.0 ", "│ ├─┬ babel-types@6.26.0 ", "│ │ └── to-fast-properties@1.0.3 ", "│ ├── babylon@6.18.0 ", "│ ├── convert-source-map@1.5.1 ", "│ ├─┬ debug@2.6.9 ", "│ │ └── ms@2.0.0 ", "│ ├── json5@0.5.1 ", "│ ├── lodash@4.17.5 ", "│ ├─┬ minimatch@3.0.4 ", "│ │ └─┬ brace-expansion@1.1.11 ", "│ │   ├── balanced-match@1.0.0 ", "│ │   └── concat-map@0.0.1 ", "│ ├── path-is-absolute@1.0.1 ", "│ ├── private@0.1.8 ", "│ ├── slash@1.0.0 ", "│ └── source-map@0.5.7 ", "├─┬ babel-plugin-transform-object-rest-spread@6.26.0 ", "│ └── babel-plugin-syntax-object-rest-spread@6.13.0 ", "├─┬ babel-preset-env@1.6.1 ", "│ ├── babel-plugin-check-es2015-constants@6.22.0 ", "│ ├── babel-plugin-syntax-trailing-function-commas@6.22.0 ", "│ ├─┬ babel-plugin-transform-async-to-generator@6.24.1 ", "│ │ ├── babel-helper-remap-async-to-generator@6.24.1 ", "│ │ └── babel-plugin-syntax-async-functions@6.13.0 ", "│ ├── babel-plugin-transform-es2015-arrow-functions@6.22.0 ", "│ ├── babel-plugin-transform-es2015-block-scoped-functions@6.22.0 ", "│ ├── babel-plugin-transform-es2015-block-scoping@6.26.0 ", "│ ├─┬ babel-plugin-transform-es2015-classes@6.24.1 ", "│ │ ├── babel-helper-define-map@6.26.0 ", "│ │ ├── babel-helper-function-name@6.24.1 ", "│ │ ├── babel-helper-optimise-call-expression@6.24.1 ", "│ │ └── babel-helper-replace-supers@6.24.1 ", "│ ├── babel-plugin-transform-es2015-computed-properties@6.24.1 ", "│ ├── babel-plugin-transform-es2015-destructuring@6.23.0 ", "│ ├── babel-plugin-transform-es2015-duplicate-keys@6.24.1 ", "│ ├── babel-plugin-transform-es2015-for-of@6.23.0 ", "│ ├── babel-plugin-transform-es2015-function-name@6.24.1 ", "│ ├── babel-plugin-transform-es2015-literals@6.22.0 ", "│ ├── babel-plugin-transform-es2015-modules-amd@6.24.1 ", "│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.26.0 ", "│ │ └── babel-plugin-transform-strict-mode@6.24.1 ", "│ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.24.1 ", "│ │ └── babel-helper-hoist-variables@6.24.1 ", "│ ├── babel-plugin-transform-es2015-modules-umd@6.24.1 ", "│ ├── babel-plugin-transform-es2015-object-super@6.24.1 ", "│ ├─┬ babel-plugin-transform-es2015-parameters@6.24.1 ", "│ │ ├── babel-helper-call-delegate@6.24.1 ", "│ │ └── babel-helper-get-function-arity@6.24.1 ", "│ ├── babel-plugin-transform-es2015-shorthand-properties@6.24.1 ", "│ ├── babel-plugin-transform-es2015-spread@6.22.0 ", "│ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.24.1 ", "│ │ └── babel-helper-regex@6.26.0 ", "│ ├── babel-plugin-transform-es2015-template-literals@6.22.0 ", "│ ├── babel-plugin-transform-es2015-typeof-symbol@6.23.0 ", "│ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.24.1 ", "│ │ └─┬ regexpu-core@2.0.0 ", "│ │   ├── regenerate@1.3.3 ", "│ │   ├── regjsgen@0.2.0 ", "│ │   └─┬ regjsparser@0.1.5 ", "│ │     └── jsesc@0.5.0 ", "│ ├─┬ babel-plugin-transform-exponentiation-operator@6.24.1 ", "│ │ ├─┬ babel-helper-builder-binary-assignment-operator-visitor@6.24.1 ", "│ │ │ └── babel-helper-explode-assignable-expression@6.24.1 ", "│ │ └── babel-plugin-syntax-exponentiation-operator@6.13.0 ", "│ ├─┬ babel-plugin-transform-regenerator@6.26.0 ", "│ │ └── regenerator-transform@0.10.1 ", "│ ├─┬ browserslist@2.11.3 ", "│ │ ├── caniuse-lite@1.0.30000820 ", "│ │ └── electron-to-chromium@1.3.40 ", "│ ├─┬ invariant@2.2.4 ", "│ │ └── loose-envify@1.3.1 ", "│ └── semver@5.5.0 ", "├─┬ babel-preset-minify@0.2.0 ", "│ ├─┬ babel-plugin-minify-builtins@0.2.0 ", "│ │ └── babel-helper-evaluate-path@0.2.0 ", "│ ├── babel-plugin-minify-constant-folding@0.2.0 ", "│ ├─┬ babel-plugin-minify-dead-code-elimination@0.2.0 ", "│ │ ├── babel-helper-mark-eval-scopes@0.2.0 ", "│ │ ├── babel-helper-remove-or-void@0.2.0 ", "│ │ └── lodash.some@4.6.0 ", "│ ├─┬ babel-plugin-minify-flip-comparisons@0.2.0 ", "│ │ └── babel-helper-is-void-0@0.2.0 ", "│ ├─┬ babel-plugin-minify-guarded-expressions@0.2.0 ", "│ │ └── babel-helper-flip-expressions@0.2.0 ", "│ ├── babel-plugin-minify-infinity@0.2.0 ", "│ ├── babel-plugin-minify-mangle-names@0.2.0 ", "│ ├── babel-plugin-minify-numeric-literals@0.2.0 ", "│ ├── babel-plugin-minify-replace@0.2.0 ", "│ ├─┬ babel-plugin-minify-simplify@0.2.0 ", "│ │ ├── babel-helper-is-nodes-equiv@0.0.1 ", "│ │ └── babel-helper-to-multiple-sequence-expressions@0.2.0 ", "│ ├── babel-plugin-minify-type-constructors@0.2.0 ", "│ ├── babel-plugin-transform-inline-consecutive-adds@0.2.0 ", "│ ├── babel-plugin-transform-member-expression-literals@6.9.0 ", "│ ├── babel-plugin-transform-merge-sibling-variables@6.9.0 ", "│ ├── babel-plugin-transform-minify-booleans@6.9.0 ", "│ ├── babel-plugin-transform-property-literals@6.9.0 ", "│ ├── babel-plugin-transform-regexp-constructors@0.2.0 ", "│ ├── babel-plugin-transform-remove-console@6.9.0 ", "│ ├── babel-plugin-transform-remove-debugger@6.9.0 ", "│ ├── babel-plugin-transform-remove-undefined@0.2.0 ", "│ ├── babel-plugin-transform-simplify-comparison-operators@6.9.0 ", "│ ├── babel-plugin-transform-undefined-to-void@6.9.0 ", "│ └── lodash.isplainobject@4.0.6 ", "├─┬ chokidar@1.7.0 ", "│ ├─┬ anymatch@1.3.2 ", "│ │ ├─┬ micromatch@2.3.11 ", "│ │ │ ├─┬ arr-diff@2.0.0 ", "│ │ │ │ └── arr-flatten@1.1.0 ", "│ │ │ ├── array-unique@0.2.1 ", "│ │ │ ├─┬ braces@1.8.5 ", "│ │ │ │ ├─┬ expand-range@1.8.2 ", "│ │ │ │ │ └─┬ fill-range@2.2.3 ", "│ │ │ │ │   ├── is-number@2.1.0 ", "│ │ │ │ │   ├─┬ isobject@2.1.0 ", "│ │ │ │ │   │ └── isarray@1.0.0 ", "│ │ │ │ │   ├─┬ randomatic@1.1.7 ", "│ │ │ │ │   │ ├─┬ is-number@3.0.0 ", "│ │ │ │ │   │ │ └── kind-of@3.2.2 ", "│ │ │ │ │   │ └── kind-of@4.0.0 ", "│ │ │ │ │   └── repeat-string@1.6.1 ", "│ │ │ │ ├── preserve@0.2.0 ", "│ │ │ │ └── repeat-element@1.1.2 ", "│ │ │ ├─┬ expand-brackets@0.1.5 ", "│ │ │ │ └── is-posix-bracket@0.1.1 ", "│ │ │ ├── extglob@0.3.2 ", "│ │ │ ├── filename-regex@2.0.1 ", "│ │ │ ├─┬ kind-of@3.2.2 ", "│ │ │ │ └── is-buffer@1.1.6 ", "│ │ │ ├─┬ object.omit@2.0.1 ", "│ │ │ │ ├─┬ for-own@0.1.5 ", "│ │ │ │ │ └── for-in@1.0.2 ", "│ │ │ │ └── is-extendable@0.1.1 ", "│ │ │ ├─┬ parse-glob@3.0.4 ", "│ │ │ │ ├── glob-base@0.3.0 ", "│ │ │ │ └── is-dotfile@1.0.3 ", "│ │ │ └─┬ regex-cache@0.4.4 ", "│ │ │   └─┬ is-equal-shallow@0.1.3 ", "│ │ │     └── is-primitive@2.0.0 ", "│ │ └─┬ normalize-path@2.1.1 ", "│ │   └── remove-trailing-separator@1.1.0 ", "│ ├── async-each@1.0.1 ", "│ ├── glob-parent@2.0.0 ", "│ ├── inherits@2.0.3 ", "│ ├─┬ is-binary-path@1.0.1 ", "│ │ └── binary-extensions@1.11.0 ", "│ ├─┬ is-glob@2.0.1 ", "│ │ └── is-extglob@1.0.0 ", "│ └─┬ readdirp@2.1.0 ", "│   └── set-immediate-shim@1.0.1 ", "├── cookie@0.3.1 ", "├─┬ express@4.16.3 ", "│ ├─┬ accepts@1.3.5 ", "│ │ ├─┬ mime-types@2.1.18 ", "│ │ │ └── mime-db@1.33.0 ", "│ │ └── negotiator@0.6.1 ", "│ ├── array-flatten@1.1.1 ", "│ ├─┬ body-parser@1.18.2 ", "│ │ ├── bytes@3.0.0 ", "│ │ ├─┬ http-errors@1.6.2 ", "│ │ │ ├── depd@1.1.1 ", "│ │ │ └── setprototypeof@1.0.3 ", "│ │ ├── iconv-lite@0.4.19 ", "│ │ └── raw-body@2.3.2 ", "│ ├── content-disposition@0.5.2 ", "│ ├── content-type@1.0.4 ", "│ ├── cookie-signature@1.0.6 ", "│ ├── depd@1.1.2 ", "│ ├── encodeurl@1.0.2 ", "│ ├── escape-html@1.0.3 ", "│ ├── etag@1.8.1 ", "│ ├─┬ finalhandler@1.1.1 ", "│ │ └── unpipe@1.0.0 ", "│ ├── fresh@0.5.2 ", "│ ├── merge-descriptors@1.0.1 ", "│ ├── methods@1.1.2 ", "│ ├─┬ on-finished@2.3.0 ", "│ │ └── ee-first@1.1.1 ", "│ ├── parseurl@1.3.2 ", "│ ├── path-to-regexp@0.1.7 ", "│ ├─┬ proxy-addr@2.0.3 ", "│ │ ├── forwarded@0.1.2 ", "│ │ └── ipaddr.js@1.6.0 ", "│ ├── qs@6.5.1 ", "│ ├── range-parser@1.2.0 ", "│ ├── safe-buffer@5.1.1 ", "│ ├─┬ send@0.16.2 ", "│ │ └── destroy@1.0.4 ", "│ ├── serve-static@1.13.2 ", "│ ├── setprototypeof@1.1.0 ", "│ ├── statuses@1.4.0 ", "│ ├─┬ type-is@1.6.16 ", "│ │ └── media-typer@0.3.0 ", "│ ├── utils-merge@1.0.1 ", "│ └── vary@1.1.2 ", "├─┬ less@2.7.3 ", "│ ├─┬ errno@0.1.7 ", "│ │ └── prr@1.0.1 ", "│ ├── graceful-fs@4.1.11 ", "│ ├── image-size@0.5.5 ", "│ ├── mime@1.4.1 ", "│ ├─┬ mkdirp@0.5.1 ", "│ │ └── minimist@0.0.8 ", "│ ├─┬ promise@7.3.1 ", "│ │ └── asap@2.0.6 ", "│ └─┬ request@2.81.0 ", "│   ├── aws-sign2@0.6.0 ", "│   ├── aws4@1.6.0 ", "│   ├── caseless@0.12.0 ", "│   ├─┬ combined-stream@1.0.6 ", "│   │ └── delayed-stream@1.0.0 ", "│   ├── forever-agent@0.6.1 ", "│   ├── form-data@2.1.4 ", "│   ├─┬ har-validator@4.2.1 ", "│   │ ├─┬ ajv@4.11.8 ", "│   │ │ ├── co@4.6.0 ", "│   │ │ └─┬ json-stable-stringify@1.0.1 ", "│   │ │   └── jsonify@0.0.0 ", "│   │ └── har-schema@1.0.5 ", "│   ├─┬ hawk@3.1.3 ", "│   │ ├── boom@2.10.1 ", "│   │ ├── cryptiles@2.0.5 ", "│   │ ├── hoek@2.16.3 ", "│   │ └── sntp@1.0.9 ", "│   ├─┬ http-signature@1.1.1 ", "│   │ ├── assert-plus@0.2.0 ", "│   │ ├─┬ jsprim@1.4.1 ", "│   │ │ ├── assert-plus@1.0.0 ", "│   │ │ ├── extsprintf@1.3.0 ", "│   │ │ ├── json-schema@0.2.3 ", "│   │ │ └── verror@1.10.0 ", "│   │ └─┬ sshpk@1.14.1 ", "│   │   ├── asn1@0.2.3 ", "│   │   ├── bcrypt-pbkdf@1.0.1 ", "│   │   ├── dashdash@1.14.1 ", "│   │   ├── ecc-jsbn@0.1.1 ", "│   │   ├── getpass@0.1.7 ", "│   │   ├── jsbn@0.1.1 ", "│   │   └── tweetnacl@0.14.5 ", "│   ├── is-typedarray@1.0.0 ", "│   ├── isstream@0.1.2 ", "│   ├── json-stringify-safe@5.0.1 ", "│   ├── oauth-sign@0.8.2 ", "│   ├── performance-now@0.2.0 ", "│   ├── qs@6.4.0 ", "│   ├── stringstream@0.0.5 ", "│   ├─┬ tough-cookie@2.3.4 ", "│   │ └── punycode@1.4.1 ", "│   ├── tunnel-agent@0.6.0 ", "│   └── uuid@3.2.1 ", "├─┬ nightwatch@0.9.20 ", "│ ├─┬ chai-nightwatch@0.1.1 ", "│ │ ├── assertion-error@1.0.0 ", "│ │ └─┬ deep-eql@0.1.3 ", "│ │   └── type-detect@0.1.1 ", "│ ├── ejs@2.5.7 ", "│ ├─┬ lodash.clone@3.0.3 ", "│ │ ├─┬ lodash._baseclone@3.3.0 ", "│ │ │ ├── lodash._arraycopy@3.0.0 ", "│ │ │ ├── lodash._arrayeach@3.0.0 ", "│ │ │ ├─┬ lodash._baseassign@3.2.0 ", "│ │ │ │ └── lodash._basecopy@3.0.1 ", "│ │ │ ├── lodash._basefor@3.0.3 ", "│ │ │ ├── lodash.isarray@3.0.4 ", "│ │ │ └─┬ lodash.keys@3.1.2 ", "│ │ │   ├── lodash._getnative@3.9.1 ", "│ │ │   └── lodash.isarguments@3.1.0 ", "│ │ ├── lodash._bindcallback@3.0.1 ", "│ │ └── lodash._isiterateecall@3.0.9 ", "│ ├─┬ lodash.defaultsdeep@4.3.2 ", "│ │ ├── lodash._baseclone@4.5.7 ", "│ │ ├── lodash._stack@4.1.3 ", "│ │ ├── lodash.keysin@4.2.0 ", "│ │ ├── lodash.mergewith@4.6.1 ", "│ │ └── lodash.rest@4.0.5 ", "│ ├── minimatch@3.0.3 ", "│ ├── mkpath@1.0.0 ", "│ ├─┬ mocha-nightwatch@3.2.2 ", "│ │ ├── browser-stdout@1.3.0 ", "│ │ ├─┬ commander@2.9.0 ", "│ │ │ └── graceful-readlink@1.0.1 ", "│ │ ├─┬ debug@2.2.0 ", "│ │ │ └── ms@0.7.1 ", "│ │ ├── diff@1.4.0 ", "│ │ ├── escape-string-regexp@1.0.5 ", "│ │ ├─┬ glob@7.0.5 ", "│ │ │ ├── fs.realpath@1.0.0 ", "│ │ │ ├─┬ inflight@1.0.6 ", "│ │ │ │ └── wrappy@1.0.2 ", "│ │ │ └── once@1.4.0 ", "│ │ ├── growl@1.9.2 ", "│ │ ├── json3@3.3.2 ", "│ │ ├─┬ lodash.create@3.1.1 ", "│ │ │ └── lodash._basecreate@3.0.3 ", "│ │ └─┬ supports-color@3.1.2 ", "│ │   └── has-flag@1.0.0 ", "│ ├─┬ optimist@0.6.1 ", "│ │ └── wordwrap@0.0.3 ", "│ ├─┬ proxy-agent@2.0.0 ", "│ │ ├─┬ agent-base@2.1.1 ", "│ │ │ └── semver@5.0.3 ", "│ │ ├── http-proxy-agent@1.0.0 ", "│ │ ├── https-proxy-agent@1.0.0 ", "│ │ ├── lru-cache@2.6.5 ", "│ │ ├─┬ pac-proxy-agent@1.1.0 ", "│ │ │ ├─┬ get-uri@2.0.1 ", "│ │ │ │ ├── data-uri-to-buffer@1.2.0 ", "│ │ │ │ ├── file-uri-to-path@1.0.0 ", "│ │ │ │ └─┬ ftp@0.3.10 ", "│ │ │ │   ├─┬ readable-stream@1.1.14 ", "│ │ │ │   │ ├── isarray@0.0.1 ", "│ │ │ │   │ └── string_decoder@0.10.31 ", "│ │ │ │   └── xregexp@2.0.0 ", "│ │ │ └─┬ pac-resolver@2.0.0 ", "│ │ │   ├── co@3.0.6 ", "│ │ │   ├─┬ degenerator@1.0.4 ", "│ │ │   │ ├── ast-types@0.11.3 ", "│ │ │   │ ├─┬ escodegen@1.9.1 ", "│ │ │   │ │ ├── estraverse@4.2.0 ", "│ │ │   │ │ ├─┬ optionator@0.8.2 ", "│ │ │   │ │ │ ├── deep-is@0.1.3 ", "│ │ │   │ │ │ ├── fast-levenshtein@2.0.6 ", "│ │ │   │ │ │ ├── levn@0.3.0 ", "│ │ │   │ │ │ ├── prelude-ls@1.1.2 ", "│ │ │   │ │ │ ├── type-check@0.3.2 ", "│ │ │   │ │ │ └── wordwrap@1.0.0 ", "│ │ │   │ │ └── source-map@0.6.1 ", "│ │ │   │ └── esprima@3.1.3 ", "│ │ │   ├── ip@1.0.1 ", "│ │ │   ├── netmask@1.0.6 ", "│ │ │   └── thunkify@2.1.2 ", "│ │ └─┬ socks-proxy-agent@2.1.1 ", "│ │   └─┬ socks@1.1.10 ", "│ │     ├── ip@1.1.5 ", "│ │     └── smart-buffer@1.1.15 ", "│ └── q@1.4.1 ", "├─┬ redis@2.8.0 ", "│ ├── double-ended-queue@2.1.0-0 ", "│ ├── redis-commands@1.3.5 ", "│ └── redis-parser@2.6.0 ", "├─┬ socket.io@2.0.4 ", "│ ├─┬ engine.io@3.1.5 ", "│ │ ├── base64id@1.0.0 ", "│ │ ├── debug@3.1.0 ", "│ │ ├─┬ engine.io-parser@2.1.2 ", "│ │ │ ├── after@0.8.2 ", "│ │ │ ├── arraybuffer.slice@0.0.7 ", "│ │ │ └── blob@0.0.4 ", "│ │ ├── uws@9.14.0 ", "│ │ └─┬ ws@3.3.3 ", "│ │   ├── async-limiter@1.0.0 ", "│ │   └── ultron@1.1.1 ", "│ ├── socket.io-adapter@1.1.1 ", "│ ├─┬ socket.io-client@2.0.4 ", "│ │ ├── backo2@1.0.2 ", "│ │ ├── base64-arraybuffer@0.1.5 ", "│ │ ├── component-bind@1.0.0 ", "│ │ ├─┬ engine.io-client@3.1.6 ", "│ │ │ ├── component-inherit@0.0.3 ", "│ │ │ ├── debug@3.1.0 ", "│ │ │ ├── xmlhttprequest-ssl@1.5.5 ", "│ │ │ └── yeast@0.1.2 ", "│ │ ├── has-cors@1.1.0 ", "│ │ ├── indexof@0.0.1 ", "│ │ ├── object-component@0.0.3 ", "│ │ ├─┬ parseqs@0.0.5 ", "│ │ │ └─┬ better-assert@1.0.2 ", "│ │ │   └── callsite@1.0.0 ", "│ │ ├── parseuri@0.0.5 ", "│ │ └── to-array@0.1.4 ", "│ └─┬ socket.io-parser@3.1.3 ", "│   ├── debug@3.1.0 ", "│   ├── has-binary2@1.0.2 ", "│   └── isarray@2.0.1 ", "├─┬ superagent@3.8.2 ", "│ ├── component-emitter@1.2.1 ", "│ ├── cookiejar@2.1.1 ", "│ ├── debug@3.1.0 ", "│ ├── extend@3.0.1 ", "│ ├─┬ form-data@2.3.2 ", "│ │ └── asynckit@0.4.0 ", "│ ├── formidable@1.2.1 ", "│ └─┬ readable-stream@2.3.5 ", "│   ├── core-util-is@1.0.2 ", "│   ├── isarray@1.0.0 ", "│   ├── process-nextick-args@2.0.0 ", "│   ├── string_decoder@1.0.3 ", "│   └── util-deprecate@1.0.2 ", "└─┬ touch@3.1.0 ", "  └─┬ nopt@1.0.10 ", "    └── abbrev@1.1.1 ", "", "('installing', u'frappe')", "Updating node packages..."]}
    to retry, use: --limit @/tmp/.bench/playbooks/site.retry

PLAY RECAP *********************************************************************
localhost                  : ok=74   changed=47   unreachable=0    failed=1   

Traceback (most recent call last):
  File "install.py", line 387, in <module>
    install_bench(args)
  File "install.py", line 109, in install_bench
    run_playbook('site.yml', sudo=True, extra_vars=extra_vars)
  File "install.py", line 325, in run_playbook
    success = subprocess.check_call(args, cwd=os.path.join(cwd, 'playbooks'))
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ansible-playbook', '-c', 'local', 'site.yml', '-e', '@/tmp/extra_vars.json', '--become', '--become-user=frappe']' returned non-zero exit status 2

Manually running bench init /home/frappe/frappe-bench --frappe-branch master for a more readable output:

frappe@ubuntu:~$ bench init /home/frappe/frappe-bench --frappe-branch master
INFO:bench.utils:virtualenv -q env -p /usr/bin/python
Already using interpreter /usr/bin/python
INFO:bench.utils:./env/bin/pip -q install --upgrade pip
INFO:bench.utils:./env/bin/pip -q install wheel
INFO:bench.utils:./env/bin/pip -q install six
INFO:bench.utils:./env/bin/pip -q install -e git+https://github.com/frappe/python-pdfkit.git#egg=pdfkit
INFO:bench.app:getting app frappe
INFO:bench.utils:git clone https://github.com/frappe/frappe.git --branch master  --origin upstream
Cloning into 'frappe'...
remote: Counting objects: 143469, done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 143469 (delta 8), reused 11 (delta 4), pack-reused 143437
Receiving objects: 100% (143469/143469), 140.73 MiB | 699.00 KiB/s, done.
Resolving deltas: 100% (108140/108140), done.
Checking connectivity... done.
('installing', u'frappe')
INFO:bench.app:installing frappe
INFO:bench.utils:/home/frappe/frappe-bench/env/bin/pip install -q  -e /home/frappe/frappe-bench/apps/frappe --no-cache-dir
Updating node packages...
INFO:bench.utils:npm install
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0

> uws@9.14.0 install /home/frappe/frappe-bench/node_modules/uws
> node-gyp rebuild > build_log.txt 2>&1 || exit 0

> chromedriver@2.37.0 install /home/frappe/frappe-bench/node_modules/chromedriver
> node install.js

Only Linux 64 bits supported.
frappe@ /home/frappe/frappe-bench
├─┬ babel-core@6.26.0 
│ ├─┬ babel-code-frame@6.26.0 
│ │ ├─┬ chalk@1.1.3 
│ │ │ ├── ansi-styles@2.2.1 
│ │ │ ├─┬ has-ansi@2.0.0 
│ │ │ │ └── ansi-regex@2.1.1 
│ │ │ ├── strip-ansi@3.0.1 
│ │ │ └── supports-color@2.0.0 
│ │ ├── esutils@2.0.2 
│ │ └── js-tokens@3.0.2 
│ ├─┬ babel-generator@6.26.1 
│ │ ├─┬ detect-indent@4.0.0 
│ │ │ └─┬ repeating@2.0.1 
│ │ │   └─┬ is-finite@1.0.2 
│ │ │     └── number-is-nan@1.0.1 
│ │ ├── jsesc@1.3.0 
│ │ └── trim-right@1.0.1 
│ ├── babel-helpers@6.24.1 
│ ├── babel-messages@6.23.0 
│ ├─┬ babel-register@6.26.0 
│ │ ├── core-js@2.5.3 
│ │ ├─┬ home-or-tmp@2.0.0 
│ │ │ ├── os-homedir@1.0.2 
│ │ │ └── os-tmpdir@1.0.2 
│ │ └── source-map-support@0.4.18 
│ ├─┬ babel-runtime@6.26.0 
│ │ └── regenerator-runtime@0.11.1 
│ ├── babel-template@6.26.0 
│ ├─┬ babel-traverse@6.26.0 
│ │ └── globals@9.18.0 
│ ├─┬ babel-types@6.26.0 
│ │ └── to-fast-properties@1.0.3 
│ ├── babylon@6.18.0 
│ ├── convert-source-map@1.5.1 
│ ├─┬ debug@2.6.9 
│ │ └── ms@2.0.0 
│ ├── json5@0.5.1 
│ ├── lodash@4.17.5 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.11 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ ├── path-is-absolute@1.0.1 
│ ├── private@0.1.8 
│ ├── slash@1.0.0 
│ └── source-map@0.5.7 
├─┬ babel-plugin-transform-object-rest-spread@6.26.0 
│ └── babel-plugin-syntax-object-rest-spread@6.13.0 
├─┬ babel-preset-env@1.6.1 
│ ├── babel-plugin-check-es2015-constants@6.22.0 
│ ├── babel-plugin-syntax-trailing-function-commas@6.22.0 
│ ├─┬ babel-plugin-transform-async-to-generator@6.24.1 
│ │ ├── babel-helper-remap-async-to-generator@6.24.1 
│ │ └── babel-plugin-syntax-async-functions@6.13.0 
│ ├── babel-plugin-transform-es2015-arrow-functions@6.22.0 
│ ├── babel-plugin-transform-es2015-block-scoped-functions@6.22.0 
│ ├── babel-plugin-transform-es2015-block-scoping@6.26.0 
│ ├─┬ babel-plugin-transform-es2015-classes@6.24.1 
│ │ ├── babel-helper-define-map@6.26.0 
│ │ ├── babel-helper-function-name@6.24.1 
│ │ ├── babel-helper-optimise-call-expression@6.24.1 
│ │ └── babel-helper-replace-supers@6.24.1 
│ ├── babel-plugin-transform-es2015-computed-properties@6.24.1 
│ ├── babel-plugin-transform-es2015-destructuring@6.23.0 
│ ├── babel-plugin-transform-es2015-duplicate-keys@6.24.1 
│ ├── babel-plugin-transform-es2015-for-of@6.23.0 
│ ├── babel-plugin-transform-es2015-function-name@6.24.1 
│ ├── babel-plugin-transform-es2015-literals@6.22.0 
│ ├── babel-plugin-transform-es2015-modules-amd@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.26.0 
│ │ └── babel-plugin-transform-strict-mode@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.24.1 
│ │ └── babel-helper-hoist-variables@6.24.1 
│ ├── babel-plugin-transform-es2015-modules-umd@6.24.1 
│ ├── babel-plugin-transform-es2015-object-super@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-parameters@6.24.1 
│ │ ├── babel-helper-call-delegate@6.24.1 
│ │ └── babel-helper-get-function-arity@6.24.1 
│ ├── babel-plugin-transform-es2015-shorthand-properties@6.24.1 
│ ├── babel-plugin-transform-es2015-spread@6.22.0 
│ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.24.1 
│ │ └── babel-helper-regex@6.26.0 
│ ├── babel-plugin-transform-es2015-template-literals@6.22.0 
│ ├── babel-plugin-transform-es2015-typeof-symbol@6.23.0 
│ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.24.1 
│ │ └─┬ regexpu-core@2.0.0 
│ │   ├── regenerate@1.3.3 
│ │   ├── regjsgen@0.2.0 
│ │   └─┬ regjsparser@0.1.5 
│ │     └── jsesc@0.5.0 
│ ├─┬ babel-plugin-transform-exponentiation-operator@6.24.1 
│ │ ├─┬ babel-helper-builder-binary-assignment-operator-visitor@6.24.1 
│ │ │ └── babel-helper-explode-assignable-expression@6.24.1 
│ │ └── babel-plugin-syntax-exponentiation-operator@6.13.0 
│ ├─┬ babel-plugin-transform-regenerator@6.26.0 
│ │ └── regenerator-transform@0.10.1 
│ ├─┬ browserslist@2.11.3 
│ │ ├── caniuse-lite@1.0.30000820 
│ │ └── electron-to-chromium@1.3.40 
│ ├─┬ invariant@2.2.4 
│ │ └── loose-envify@1.3.1 
│ └── semver@5.5.0 
├─┬ babel-preset-minify@0.2.0 
│ ├─┬ babel-plugin-minify-builtins@0.2.0 
│ │ └── babel-helper-evaluate-path@0.2.0 
│ ├── babel-plugin-minify-constant-folding@0.2.0 
│ ├─┬ babel-plugin-minify-dead-code-elimination@0.2.0 
│ │ ├── babel-helper-mark-eval-scopes@0.2.0 
│ │ ├── babel-helper-remove-or-void@0.2.0 
│ │ └── lodash.some@4.6.0 
│ ├─┬ babel-plugin-minify-flip-comparisons@0.2.0 
│ │ └── babel-helper-is-void-0@0.2.0 
│ ├─┬ babel-plugin-minify-guarded-expressions@0.2.0 
│ │ └── babel-helper-flip-expressions@0.2.0 
│ ├── babel-plugin-minify-infinity@0.2.0 
│ ├── babel-plugin-minify-mangle-names@0.2.0 
│ ├── babel-plugin-minify-numeric-literals@0.2.0 
│ ├── babel-plugin-minify-replace@0.2.0 
│ ├─┬ babel-plugin-minify-simplify@0.2.0 
│ │ ├── babel-helper-is-nodes-equiv@0.0.1 
│ │ └── babel-helper-to-multiple-sequence-expressions@0.2.0 
│ ├── babel-plugin-minify-type-constructors@0.2.0 
│ ├── babel-plugin-transform-inline-consecutive-adds@0.2.0 
│ ├── babel-plugin-transform-member-expression-literals@6.9.0 
│ ├── babel-plugin-transform-merge-sibling-variables@6.9.0 
│ ├── babel-plugin-transform-minify-booleans@6.9.0 
│ ├── babel-plugin-transform-property-literals@6.9.0 
│ ├── babel-plugin-transform-regexp-constructors@0.2.0 
│ ├── babel-plugin-transform-remove-console@6.9.0 
│ ├── babel-plugin-transform-remove-debugger@6.9.0 
│ ├── babel-plugin-transform-remove-undefined@0.2.0 
│ ├── babel-plugin-transform-simplify-comparison-operators@6.9.0 
│ ├── babel-plugin-transform-undefined-to-void@6.9.0 
│ └── lodash.isplainobject@4.0.6 
├─┬ chokidar@1.7.0 
│ ├─┬ anymatch@1.3.2 
│ │ ├─┬ micromatch@2.3.11 
│ │ │ ├─┬ arr-diff@2.0.0 
│ │ │ │ └── arr-flatten@1.1.0 
│ │ │ ├── array-unique@0.2.1 
│ │ │ ├─┬ braces@1.8.5 
│ │ │ │ ├─┬ expand-range@1.8.2 
│ │ │ │ │ └─┬ fill-range@2.2.3 
│ │ │ │ │   ├── is-number@2.1.0 
│ │ │ │ │   ├─┬ isobject@2.1.0 
│ │ │ │ │   │ └── isarray@1.0.0 
│ │ │ │ │   ├─┬ randomatic@1.1.7 
│ │ │ │ │   │ ├─┬ is-number@3.0.0 
│ │ │ │ │   │ │ └── kind-of@3.2.2 
│ │ │ │ │   │ └── kind-of@4.0.0 
│ │ │ │ │   └── repeat-string@1.6.1 
│ │ │ │ ├── preserve@0.2.0 
│ │ │ │ └── repeat-element@1.1.2 
│ │ │ ├─┬ expand-brackets@0.1.5 
│ │ │ │ └── is-posix-bracket@0.1.1 
│ │ │ ├── extglob@0.3.2 
│ │ │ ├── filename-regex@2.0.1 
│ │ │ ├─┬ kind-of@3.2.2 
│ │ │ │ └── is-buffer@1.1.6 
│ │ │ ├─┬ object.omit@2.0.1 
│ │ │ │ ├─┬ for-own@0.1.5 
│ │ │ │ │ └── for-in@1.0.2 
│ │ │ │ └── is-extendable@0.1.1 
│ │ │ ├─┬ parse-glob@3.0.4 
│ │ │ │ ├── glob-base@0.3.0 
│ │ │ │ └── is-dotfile@1.0.3 
│ │ │ └─┬ regex-cache@0.4.4 
│ │ │   └─┬ is-equal-shallow@0.1.3 
│ │ │     └── is-primitive@2.0.0 
│ │ └─┬ normalize-path@2.1.1 
│ │   └── remove-trailing-separator@1.1.0 
│ ├── async-each@1.0.1 
│ ├── glob-parent@2.0.0 
│ ├── inherits@2.0.3 
│ ├─┬ is-binary-path@1.0.1 
│ │ └── binary-extensions@1.11.0 
│ ├─┬ is-glob@2.0.1 
│ │ └── is-extglob@1.0.0 
│ └─┬ readdirp@2.1.0 
│   └── set-immediate-shim@1.0.1 
├── cookie@0.3.1 
├─┬ express@4.16.3 
│ ├─┬ accepts@1.3.5 
│ │ ├─┬ mime-types@2.1.18 
│ │ │ └── mime-db@1.33.0 
│ │ └── negotiator@0.6.1 
│ ├── array-flatten@1.1.1 
│ ├─┬ body-parser@1.18.2 
│ │ ├── bytes@3.0.0 
│ │ ├─┬ http-errors@1.6.2 
│ │ │ ├── depd@1.1.1 
│ │ │ └── setprototypeof@1.0.3 
│ │ ├── iconv-lite@0.4.19 
│ │ └── raw-body@2.3.2 
│ ├── content-disposition@0.5.2 
│ ├── content-type@1.0.4 
│ ├── cookie-signature@1.0.6 
│ ├── depd@1.1.2 
│ ├── encodeurl@1.0.2 
│ ├── escape-html@1.0.3 
│ ├── etag@1.8.1 
│ ├─┬ finalhandler@1.1.1 
│ │ └── unpipe@1.0.0 
│ ├── fresh@0.5.2 
│ ├── merge-descriptors@1.0.1 
│ ├── methods@1.1.2 
│ ├─┬ on-finished@2.3.0 
│ │ └── ee-first@1.1.1 
│ ├── parseurl@1.3.2 
│ ├── path-to-regexp@0.1.7 
│ ├─┬ proxy-addr@2.0.3 
│ │ ├── forwarded@0.1.2 
│ │ └── ipaddr.js@1.6.0 
│ ├── qs@6.5.1 
│ ├── range-parser@1.2.0 
│ ├── safe-buffer@5.1.1 
│ ├─┬ send@0.16.2 
│ │ └── destroy@1.0.4 
│ ├── serve-static@1.13.2 
│ ├── setprototypeof@1.1.0 
│ ├── statuses@1.4.0 
│ ├─┬ type-is@1.6.16 
│ │ └── media-typer@0.3.0 
│ ├── utils-merge@1.0.1 
│ └── vary@1.1.2 
├─┬ less@2.7.3 
│ ├─┬ errno@0.1.7 
│ │ └── prr@1.0.1 
│ ├── graceful-fs@4.1.11 
│ ├── image-size@0.5.5 
│ ├── mime@1.4.1 
│ ├─┬ mkdirp@0.5.1 
│ │ └── minimist@0.0.8 
│ ├─┬ promise@7.3.1 
│ │ └── asap@2.0.6 
│ └─┬ request@2.81.0 
│   ├── aws-sign2@0.6.0 
│   ├── aws4@1.6.0 
│   ├── caseless@0.12.0 
│   ├─┬ combined-stream@1.0.6 
│   │ └── delayed-stream@1.0.0 
│   ├── forever-agent@0.6.1 
│   ├── form-data@2.1.4 
│   ├─┬ har-validator@4.2.1 
│   │ ├─┬ ajv@4.11.8 
│   │ │ ├── co@4.6.0 
│   │ │ └─┬ json-stable-stringify@1.0.1 
│   │ │   └── jsonify@0.0.0 
│   │ └── har-schema@1.0.5 
│   ├─┬ hawk@3.1.3 
│   │ ├── boom@2.10.1 
│   │ ├── cryptiles@2.0.5 
│   │ ├── hoek@2.16.3 
│   │ └── sntp@1.0.9 
│   ├─┬ http-signature@1.1.1 
│   │ ├── assert-plus@0.2.0 
│   │ ├─┬ jsprim@1.4.1 
│   │ │ ├── assert-plus@1.0.0 
│   │ │ ├── extsprintf@1.3.0 
│   │ │ ├── json-schema@0.2.3 
│   │ │ └── verror@1.10.0 
│   │ └─┬ sshpk@1.14.1 
│   │   ├── asn1@0.2.3 
│   │   ├── bcrypt-pbkdf@1.0.1 
│   │   ├── dashdash@1.14.1 
│   │   ├── ecc-jsbn@0.1.1 
│   │   ├── getpass@0.1.7 
│   │   ├── jsbn@0.1.1 
│   │   └── tweetnacl@0.14.5 
│   ├── is-typedarray@1.0.0 
│   ├── isstream@0.1.2 
│   ├── json-stringify-safe@5.0.1 
│   ├── oauth-sign@0.8.2 
│   ├── performance-now@0.2.0 
│   ├── qs@6.4.0 
│   ├── stringstream@0.0.5 
│   ├─┬ tough-cookie@2.3.4 
│   │ └── punycode@1.4.1 
│   ├── tunnel-agent@0.6.0 
│   └── uuid@3.2.1 
├─┬ nightwatch@0.9.20 
│ ├─┬ chai-nightwatch@0.1.1 
│ │ ├── assertion-error@1.0.0 
│ │ └─┬ deep-eql@0.1.3 
│ │   └── type-detect@0.1.1 
│ ├── ejs@2.5.7 
│ ├─┬ lodash.clone@3.0.3 
│ │ ├─┬ lodash._baseclone@3.3.0 
│ │ │ ├── lodash._arraycopy@3.0.0 
│ │ │ ├── lodash._arrayeach@3.0.0 
│ │ │ ├─┬ lodash._baseassign@3.2.0 
│ │ │ │ └── lodash._basecopy@3.0.1 
│ │ │ ├── lodash._basefor@3.0.3 
│ │ │ ├── lodash.isarray@3.0.4 
│ │ │ └─┬ lodash.keys@3.1.2 
│ │ │   ├── lodash._getnative@3.9.1 
│ │ │   └── lodash.isarguments@3.1.0 
│ │ ├── lodash._bindcallback@3.0.1 
│ │ └── lodash._isiterateecall@3.0.9 
│ ├─┬ lodash.defaultsdeep@4.3.2 
│ │ ├── lodash._baseclone@4.5.7 
│ │ ├── lodash._stack@4.1.3 
│ │ ├── lodash.keysin@4.2.0 
│ │ ├── lodash.mergewith@4.6.1 
│ │ └── lodash.rest@4.0.5 
│ ├── minimatch@3.0.3 
│ ├── mkpath@1.0.0 
│ ├─┬ mocha-nightwatch@3.2.2 
│ │ ├── browser-stdout@1.3.0 
│ │ ├─┬ commander@2.9.0 
│ │ │ └── graceful-readlink@1.0.1 
│ │ ├─┬ debug@2.2.0 
│ │ │ └── ms@0.7.1 
│ │ ├── diff@1.4.0 
│ │ ├── escape-string-regexp@1.0.5 
│ │ ├─┬ glob@7.0.5 
│ │ │ ├── fs.realpath@1.0.0 
│ │ │ ├─┬ inflight@1.0.6 
│ │ │ │ └── wrappy@1.0.2 
│ │ │ └── once@1.4.0 
│ │ ├── growl@1.9.2 
│ │ ├── json3@3.3.2 
│ │ ├─┬ lodash.create@3.1.1 
│ │ │ └── lodash._basecreate@3.0.3 
│ │ └─┬ supports-color@3.1.2 
│ │   └── has-flag@1.0.0 
│ ├─┬ optimist@0.6.1 
│ │ └── wordwrap@0.0.3 
│ ├─┬ proxy-agent@2.0.0 
│ │ ├─┬ agent-base@2.1.1 
│ │ │ └── semver@5.0.3 
│ │ ├── http-proxy-agent@1.0.0 
│ │ ├── https-proxy-agent@1.0.0 
│ │ ├── lru-cache@2.6.5 
│ │ ├─┬ pac-proxy-agent@1.1.0 
│ │ │ ├─┬ get-uri@2.0.1 
│ │ │ │ ├── data-uri-to-buffer@1.2.0 
│ │ │ │ ├── file-uri-to-path@1.0.0 
│ │ │ │ └─┬ ftp@0.3.10 
│ │ │ │   ├─┬ readable-stream@1.1.14 
│ │ │ │   │ ├── isarray@0.0.1 
│ │ │ │   │ └── string_decoder@0.10.31 
│ │ │ │   └── xregexp@2.0.0 
│ │ │ └─┬ pac-resolver@2.0.0 
│ │ │   ├── co@3.0.6 
│ │ │   ├─┬ degenerator@1.0.4 
│ │ │   │ ├── ast-types@0.11.3 
│ │ │   │ ├─┬ escodegen@1.9.1 
│ │ │   │ │ ├── estraverse@4.2.0 
│ │ │   │ │ ├─┬ optionator@0.8.2 
│ │ │   │ │ │ ├── deep-is@0.1.3 
│ │ │   │ │ │ ├── fast-levenshtein@2.0.6 
│ │ │   │ │ │ ├── levn@0.3.0 
│ │ │   │ │ │ ├── prelude-ls@1.1.2 
│ │ │   │ │ │ ├── type-check@0.3.2 
│ │ │   │ │ │ └── wordwrap@1.0.0 
│ │ │   │ │ └── source-map@0.6.1 
│ │ │   │ └── esprima@3.1.3 
│ │ │   ├── ip@1.0.1 
│ │ │   ├── netmask@1.0.6 
│ │ │   └── thunkify@2.1.2 
│ │ └─┬ socks-proxy-agent@2.1.1 
│ │   └─┬ socks@1.1.10 
│ │     ├── ip@1.1.5 
│ │     └── smart-buffer@1.1.15 
│ └── q@1.4.1 
├─┬ redis@2.8.0 
│ ├── double-ended-queue@2.1.0-0 
│ ├── redis-commands@1.3.5 
│ └── redis-parser@2.6.0 
├─┬ socket.io@2.0.4 
│ ├─┬ engine.io@3.1.5 
│ │ ├── base64id@1.0.0 
│ │ ├── debug@3.1.0 
│ │ ├─┬ engine.io-parser@2.1.2 
│ │ │ ├── after@0.8.2 
│ │ │ ├── arraybuffer.slice@0.0.7 
│ │ │ └── blob@0.0.4 
│ │ ├── uws@9.14.0 
│ │ └─┬ ws@3.3.3 
│ │   ├── async-limiter@1.0.0 
│ │   └── ultron@1.1.1 
│ ├── socket.io-adapter@1.1.1 
│ ├─┬ socket.io-client@2.0.4 
│ │ ├── backo2@1.0.2 
│ │ ├── base64-arraybuffer@0.1.5 
│ │ ├── component-bind@1.0.0 
│ │ ├─┬ engine.io-client@3.1.6 
│ │ │ ├── component-inherit@0.0.3 
│ │ │ ├── debug@3.1.0 
│ │ │ ├── xmlhttprequest-ssl@1.5.5 
│ │ │ └── yeast@0.1.2 
│ │ ├── has-cors@1.1.0 
│ │ ├── indexof@0.0.1 
│ │ ├── object-component@0.0.3 
│ │ ├─┬ parseqs@0.0.5 
│ │ │ └─┬ better-assert@1.0.2 
│ │ │   └── callsite@1.0.0 
│ │ ├── parseuri@0.0.5 
│ │ └── to-array@0.1.4 
│ └─┬ socket.io-parser@3.1.3 
│   ├── debug@3.1.0 
│   ├── has-binary2@1.0.2 
│   └── isarray@2.0.1 
├─┬ superagent@3.8.2 
│ ├── component-emitter@1.2.1 
│ ├── cookiejar@2.1.1 
│ ├── debug@3.1.0 
│ ├── extend@3.0.1 
│ ├─┬ form-data@2.3.2 
│ │ └── asynckit@0.4.0 
│ ├── formidable@1.2.1 
│ └─┬ readable-stream@2.3.5 
│   ├── core-util-is@1.0.2 
│   ├── isarray@1.0.0 
│   ├── process-nextick-args@2.0.0 
│   ├── string_decoder@1.0.3 
│   └── util-deprecate@1.0.2 
└─┬ touch@3.1.0 
  └─┬ nopt@1.0.10 
    └── abbrev@1.1.1 

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN frappe@ No description
npm ERR! Linux 4.4.0-1085-raspi2
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! node v6.13.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! chromedriver@2.37.0 install: `node install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the chromedriver@2.37.0 install script 'node install.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the chromedriver package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs chromedriver
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls chromedriver
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/frappe/frappe-bench/npm-debug.log
Traceback (most recent call last):
  File "/usr/local/bin/bench", line 11, in <module>
    load_entry_point('bench', 'console_scripts', 'bench')()
  File "/home/frappe/.bench/bench/cli.py", line 40, in cli
    bench_command()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/.bench/bench/commands/make.py", line 28, in init
    python       = python)
  File "/home/frappe/.bench/bench/utils.py", line 82, in init
    update_node_packages(bench_path=path)
  File "/home/frappe/.bench/bench/utils.py", line 452, in update_node_packages
    update_npm_packages(bench_path)
  File "/home/frappe/.bench/bench/utils.py", line 499, in update_npm_packages
    exec_cmd('npm install', cwd=bench_path)
  File "/home/frappe/.bench/bench/utils.py", line 152, in exec_cmd
    raise CommandFailedError(cmd)
bench.utils.CommandFailedError: npm install
oxwivi commented 6 years ago

Not specifying --frappe-branch master leads to a successful bench init:

frappe@ubuntu:~$ bench init /home/frappe/frappe-bench
INFO:bench.utils:virtualenv -q env -p /usr/bin/python
Already using interpreter /usr/bin/python
INFO:bench.utils:./env/bin/pip -q install --upgrade pip
INFO:bench.utils:./env/bin/pip -q install wheel
INFO:bench.utils:./env/bin/pip -q install six
INFO:bench.utils:./env/bin/pip -q install -e git+https://github.com/frappe/python-pdfkit.git#egg=pdfkit
INFO:bench.app:getting app frappe
INFO:bench.utils:git clone https://github.com/frappe/frappe.git   --origin upstream
Cloning into 'frappe'...
remote: Counting objects: 143469, done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 143469 (delta 8), reused 11 (delta 4), pack-reused 143437
Receiving objects: 100% (143469/143469), 140.73 MiB | 959.00 KiB/s, done.
Resolving deltas: 100% (108140/108140), done.
Checking connectivity... done.
('installing', u'frappe')
INFO:bench.app:installing frappe
INFO:bench.utils:/home/frappe/frappe-bench/env/bin/pip install -q  -e /home/frappe/frappe-bench/apps/frappe --no-cache-dir
Updating node packages...
INFO:bench.utils:yarn install
yarn install v1.5.1
[1/4] Resolving packages...
[2/4] Fetching packages...
info There appears to be trouble with your network connection. Retrying...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 256.97s.

> frappe@ production /home/frappe/frappe-bench/apps/frappe
> FRAPPE_ENV=production node rollup/build.js

Production mode
✔ Built js/libs.min.js

Building frappe assets...

✔ Built js/print_format_v3.min.js
✔ Built css/module.min.css
✔ Built css/form.min.css
✔ Built frappe/css/email.css
✔ Built js/web_form.min.js
✔ Built js/dialog.min.js
✔ Built css/frappe-rtl.css
✔ Built css/web_form.css
✔ Built css/list.min.css
✔ Built css/report.min.css
✔ Built js/frappe-web.min.js
Node#moveTo was deprecated. Use Container#append.
✔ Built css/frappe-web.css
✔ Built js/report.min.js
✔ Built js/form.min.js
✔ Built js/control.min.js
✔ Built js/list.min.js
✔ Built js/desk.min.js
✔ Built css/desk.min.css
✨  Done in 599.508s
INFO:bench.utils:setting up backups
no crontab for frappe
INFO:bench.utils:setting up auto update
no crontab for frappe
Bench /home/frappe/frappe-bench initialized
saurabh6790 commented 6 years ago

Please setup on 64bit Arch!

oxwivi commented 6 years ago

If bench does not support 32-bit, both the documentation and ERPNext installation instructions should mention it. And as you've seen on the ERPN forum, the dev version of Frappe (which gets installed if branch is not specified) worked perfectly well on armhf, which is 32-bit.