For the last 12 months I’ve been installing ERPnext on VPS and virtual machines with very few problems. During the last week (mid-Dec 2017) I tried installing ERPnext on virtual machines in the coprorate LAN and it keeps failing.
I tried to install ERPnext with “easy install” install.py
- on fresh Ubuntu 16.04 server x86 2 GB RAM
- on fresh Ubuntu 16.04 server x64 4 GB RAM
- on fresh Ubuntu 14.04 server x86 2 GB RAM
On all Ubuntu instances I tried it several times, executing the following commands:
sudo apt-get update
sudo apt-get install python-minimal
wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py
sudo python install.py --production
The problem that keeps coming up is when the TASK [init bench] shows up on screen.
TASK [init bench] **********************************************************************************
fatal: [localhost]: FAILED! => {“changed”: true, “cmd”: [“bench”, “init”, “/home/frappe/frappe-bench”, “–frappe-branch”, “master”], “delta”: “0:07:08.034464”, “end”: “2017-12-21 11:45:15.329248”, “failed”: true, “rc”: 1, “start”: “2017-12-21 11:38:07.294784”, “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\n/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.\n SNIMissingWarning\n/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation InsecurePlatformWarning\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 GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript --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\n/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.\n SNIMissingWarning\n/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation InsecurePlatformWarning\nINFO:bench.utils:npm install\nChromeDriver installation failed Error extracting archive: Error: end of central directory record signature not found\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":"ia32"})\nnpm WARN frappe@ No description\nnpm ERR! Linux 3.19.0-25-generic\nnpm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"\nnpm ERR! node v6.12.2\nnpm ERR! npm v3.10.10\nnpm ERR! code ELIFECYCLE\n\nnpm ERR! chromedriver@2.34.0 install: node install.js
\nnpm ERR! Exit status 1\nnpm ERR! \nnpm ERR! Failed at the chromedriver@2.34.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 \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 21, in init\n verbose=verbose, clone_from=clone_from, skip_bench_mkdir=skip_bench_mkdir, skip_redis_config_generation=skip_redis_config_generation)\n File "/home/frappe/.bench/bench/utils.py", line 72, in init\n update_npm_packages(bench_path=path)\n File "/home/frappe/.bench/bench/utils.py", line 442, in update_npm_packages\n exec_cmd(‘npm install’, cwd=bench_path)\n File "/home/frappe/.bench/bench/utils.py", line 140, 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”, “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation”, " SNIMissingWarning", “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation”, " InsecurePlatformWarning", “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 GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript --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”, “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation”, " SNIMissingWarning", “/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see Advanced Usage - urllib3 2.0.0a2 documentation”, " InsecurePlatformWarning", “INFO:bench.utils:npm install”, “ChromeDriver installation failed Error extracting archive: Error: end of central directory record signature not found”, “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":"ia32"})”, “npm WARN frappe@ No description”, “npm ERR! Linux 3.19.0-25-generic”, “npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"”, “npm ERR! node v6.12.2”, “npm ERR! npm v3.10.10”, “npm ERR! code ELIFECYCLE”, “”, “npm ERR! chromedriver@2.34.0 install: node install.js
”, “npm ERR! Exit status 1”, “npm ERR! “, “npm ERR! Failed at the chromedriver@2.34.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 ”, " 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 21, in init”, " verbose=verbose, clone_from=clone_from, skip_bench_mkdir=skip_bench_mkdir, skip_redis_config_generation=skip_redis_config_generation)“, " File "/home/frappe/.bench/bench/utils.py", line 72, in init”, " update_npm_packages(bench_path=path)“, " File "/home/frappe/.bench/bench/utils.py", line 442, in update_npm_packages”, " exec_cmd(‘npm install’, cwd=bench_path)“, " File "/home/frappe/.bench/bench/utils.py", line 140, in exec_cmd”, " raise CommandFailedError(cmd)", “bench.utils.CommandFailedError: npm install”], “stdout”: “Already using interpreter /usr/bin/python\n\n> uws@0.14.5 install /home/frappe/frappe-bench/node_modules/uws\n> node-gyp rebuild > build_log.txt 2>&1 || exit 0\n\n\n> chromedriver@2.34.0 install /home/frappe/frappe-bench/node_modules/chromedriver\n> node install.js\n\nDownloading https://chromedriver.storage.googleapis.com/2.34/chromedriver_linux32.zip\nSaving to /tmp/chromedriver/chromedriver_linux32.zip\nReceived 0K total.\nExtracting zip contents\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.0 \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.4 \n│ ├─┬ minimatch@3.0.4 \n│ │ └─┬ brace-expansion@1.1.8 \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-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.10.0 \n│ │ ├── caniuse-lite@1.0.30000784 \n│ │ └─┬ electron-to-chromium@1.3.30 \n│ │ └── electron-releases@2.1.0 \n│ ├─┬ invariant@2.2.2 \n│ │ └── loose-envify@1.3.1 \n│ └── semver@5.4.1 \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.8.5 \n│ ├── babel-plugin-transform-merge-sibling-variables@6.8.6 \n│ ├── babel-plugin-transform-minify-booleans@6.8.3 \n│ ├── babel-plugin-transform-property-literals@6.8.5 \n│ ├── babel-plugin-transform-regexp-constructors@0.2.0 \n│ ├── babel-plugin-transform-remove-console@6.8.5 \n│ ├── babel-plugin-transform-remove-debugger@6.8.5 \n│ ├── babel-plugin-transform-remove-undefined@0.2.0 \n│ ├── babel-plugin-transform-simplify-comparison-operators@6.8.5 \n│ ├── babel-plugin-transform-undefined-to-void@6.8.3 \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.2 \n│ ├─┬ accepts@1.3.4 \n│ │ ├─┬ mime-types@2.1.17 \n│ │ │ └── mime-db@1.30.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│ │ │ └── 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.1 \n│ ├── encodeurl@1.0.1 \n│ ├── escape-html@1.0.3 \n│ ├── etag@1.8.1 \n│ ├─┬ finalhandler@1.1.0 \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.2 \n│ │ ├── forwarded@0.1.2 \n│ │ └── ipaddr.js@1.5.2 \n│ ├── qs@6.5.1 \n│ ├── range-parser@1.2.0 \n│ ├── safe-buffer@5.1.1 \n│ ├─┬ send@0.16.1 \n│ │ └── destroy@1.0.4 \n│ ├── serve-static@1.13.1 \n│ ├── setprototypeof@1.1.0 \n│ ├── statuses@1.3.1 \n│ ├─┬ type-is@1.6.15 \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.6 \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.5 \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.13.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.3 \n│ │ └── punycode@1.4.1 \n│ ├── tunnel-agent@0.6.0 \n│ └── uuid@3.1.0 \n├─┬ nightwatch@0.9.19 \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.0 \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.10.1 \n│ │ │ │ ├─┬ escodegen@1.9.0 \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│ │ │ │ └── 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.1 \n│ └── redis-parser@2.6.0 \n├─┬ socket.io@2.0.4 \n│ ├─┬ engine.io@3.1.4 \n│ │ ├── accepts@1.3.3 \n│ │ ├── base64id@1.0.0 \n│ │ ├─┬ engine.io-parser@2.1.1 \n│ │ │ ├── after@0.8.2 \n│ │ │ ├── arraybuffer.slice@0.0.6 \n│ │ │ └── blob@0.0.4 \n│ │ ├── uws@0.14.5 \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.4 \n│ │ │ ├── component-inherit@0.0.3 \n│ │ │ ├── xmlhttprequest-ssl@1.5.4 \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.2 \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.1 \n│ │ └── asynckit@0.4.0 \n│ ├── formidable@1.1.1 \n│ └─┬ readable-stream@2.3.3 \n│ ├── core-util-is@1.0.2 \n│ ├── isarray@1.0.0 \n│ ├── process-nextick-args@1.0.7 \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 libraries…”, “stdout_lines”: [“Already using interpreter /usr/bin/python”, “”, “> uws@0.14.5 install /home/frappe/frappe-bench/node_modules/uws”, “> node-gyp rebuild > build_log.txt 2>&1 || exit 0”, “”, “”, “> chromedriver@2.34.0 install /home/frappe/frappe-bench/node_modules/chromedriver”, “> node install.js”, “”, “Downloading https://chromedriver.storage.googleapis.com/2.34/chromedriver_linux32.zip”,