ChiChou/grapefruit

Installation error

sushi2k opened this issue · 3 comments

I cannot install grapefruit, always getting an error in npm. Any idea what might be wrong?

❯ npm install                                                                                                                                                                                                                              ─╯

> grapefruit@0.7.0 postinstall /Users/sven/PentestTools/iOS/Grapefruit
> node scripts/install.js

audited 1490 packages in 7.568s

59 packages are looking for funding
  run `npm fund` for details

found 1 high severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

> frida@12.10.4 install /Users/sven/PentestTools/iOS/Grapefruit/server/node_modules/frida
> prebuild-install || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=13.7.0 runtime=node arch=x64 libc= platform=darwin)
gyp: binding.gyp not found (cwd: /Users/sven/PentestTools/iOS/Grapefruit/server/node_modules/frida) 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/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:321:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.5.0
gyp ERR! command "/usr/local/Cellar/node/13.7.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/sven/PentestTools/iOS/Grapefruit/server/node_modules/frida
gyp ERR! node -v v13.7.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN grapefruit-server@0.7.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! frida@12.10.4 install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the frida@12.10.4 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/sven/.npm/_logs/2020-08-23T05_57_28_685Z-debug.log
child_process.js:650
    throw err;
    ^

Error: Command failed: npm i
    at checkExecSyncError (child_process.js:611:11)
    at Object.execSync (child_process.js:647:15)
    at Object.<anonymous> (/Users/sven/PentestTools/iOS/Grapefruit/scripts/install.js:7:6)
    at Module._compile (internal/modules/cjs/loader.js:1151:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 {
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 73706,
  stdout: null,
  stderr: null
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! grapefruit@0.7.0 postinstall: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the grapefruit@0.7.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/sven/.npm/_logs/2020-08-23T05_57_28_771Z-debug.log

image

This is the content of the debug log:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/local/Cellar/node/13.7.0/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install'
1 verbose cli ]
2 info using npm@6.14.8
3 info using node@v13.7.0
4 verbose npm-session ccc08cc179c3ba27
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall grapefruit@0.7.0
7 info lifecycle grapefruit@0.7.0~preinstall: grapefruit@0.7.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 timing stage:loadCurrentTree Completed in 182ms
11 silly install loadIdealTree
12 silly install cloneCurrentTreeToIdealTree
13 timing stage:loadIdealTree:cloneCurrentTree Completed in 1ms
14 silly install loadShrinkwrap
15 timing stage:loadIdealTree:loadShrinkwrap Completed in 149ms
16 silly install loadAllDepsIntoIdealTree
17 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 133ms
18 timing stage:loadIdealTree Completed in 314ms
19 silly currentTree grapefruit@0.7.0
19 silly currentTree ├── @babel/runtime-corejs3@7.10.4
19 silly currentTree ├── @types/color-name@1.1.1
19 silly currentTree ├── ansi-regex@5.0.0
19 silly currentTree ├── ansi-styles@3.2.1
19 silly currentTree ├── any-promise@1.3.0
19 silly currentTree ├── app-root-path@3.0.0
19 silly currentTree ├── argparse@1.0.10
19 silly currentTree ├── balanced-match@1.0.0
19 silly currentTree ├── base64-js@1.3.1
19 silly currentTree ├── brace-expansion@1.1.11
19 silly currentTree ├── buffer@5.6.0
19 silly currentTree ├── camelcase@5.3.1
19 silly currentTree ├── chalk@2.4.2
19 silly currentTree ├─┬ cli-highlight@2.1.4
19 silly currentTree │ ├── ansi-styles@4.2.1
19 silly currentTree │ ├── chalk@3.0.0
19 silly currentTree │ ├── color-convert@2.0.1
19 silly currentTree │ ├── color-name@1.1.4
19 silly currentTree │ ├── has-flag@4.0.0
19 silly currentTree │ ├── supports-color@7.1.0
19 silly currentTree │ └── yargs@15.4.0
19 silly currentTree ├── cliui@6.0.0
19 silly currentTree ├── color-convert@1.9.3
19 silly currentTree ├── color-name@1.1.3
19 silly currentTree ├── concat-map@0.0.1
19 silly currentTree ├── core-js-pure@3.6.5
19 silly currentTree ├── cross-env@7.0.2
19 silly currentTree ├── cross-spawn@7.0.1
19 silly currentTree ├── debug@4.1.1
19 silly currentTree ├── decamelize@3.2.0
19 silly currentTree ├── dotenv@6.2.0
19 silly currentTree ├── emoji-regex@8.0.0
19 silly currentTree ├── escape-string-regexp@1.0.5
19 silly currentTree ├── esprima@4.0.1
19 silly currentTree ├── figlet@1.4.0
19 silly currentTree ├── find-up@4.1.0
19 silly currentTree ├── fs.realpath@1.0.0
19 silly currentTree ├── get-caller-file@2.0.5
19 silly currentTree ├── glob@7.1.6
19 silly currentTree ├─┬ has-ansi@2.0.0
19 silly currentTree │ └── ansi-regex@2.1.1
19 silly currentTree ├── has-flag@3.0.0
19 silly currentTree ├── highlight.js@9.18.1
19 silly currentTree ├── ieee754@1.1.13
19 silly currentTree ├── inflight@1.0.6
19 silly currentTree ├── inherits@2.0.4
19 silly currentTree ├── is-fullwidth-code-point@3.0.0
19 silly currentTree ├── isexe@2.0.0
19 silly currentTree ├── js-yaml@3.14.0
19 silly currentTree ├── locate-path@5.0.0
19 silly currentTree ├── minimatch@3.0.4
19 silly currentTree ├── mkdirp@1.0.4
19 silly currentTree ├── ms@2.1.2
19 silly currentTree ├── mz@2.7.0
19 silly currentTree ├── object-assign@4.1.1
19 silly currentTree ├── once@1.4.0
19 silly currentTree ├── p-limit@2.3.0
19 silly currentTree ├── p-locate@4.1.0
19 silly currentTree ├── p-try@2.2.0
19 silly currentTree ├── parent-require@1.0.0
19 silly currentTree ├── parse5-htmlparser2-tree-adapter@5.1.1
19 silly currentTree ├── parse5@5.1.1
19 silly currentTree ├── path-exists@4.0.0
19 silly currentTree ├── path-is-absolute@1.0.1
19 silly currentTree ├── path-key@3.1.1
19 silly currentTree ├── reflect-metadata@0.1.13
19 silly currentTree ├── regenerator-runtime@0.13.5
19 silly currentTree ├── require-directory@2.1.1
19 silly currentTree ├── require-main-filename@2.0.0
19 silly currentTree ├── safe-buffer@5.2.1
19 silly currentTree ├── sax@1.2.4
19 silly currentTree ├── set-blocking@2.0.0
19 silly currentTree ├── sha.js@2.4.11
19 silly currentTree ├── shebang-command@2.0.0
19 silly currentTree ├── shebang-regex@3.0.0
19 silly currentTree ├── sprintf-js@1.0.3
19 silly currentTree ├── string-width@4.2.0
19 silly currentTree ├── strip-ansi@6.0.0
19 silly currentTree ├── supports-color@5.5.0
19 silly currentTree ├── thenify-all@1.6.0
19 silly currentTree ├── thenify@3.3.1
19 silly currentTree ├── tslib@1.13.0
19 silly currentTree ├── typeorm@0.2.25
19 silly currentTree ├── which-module@2.0.0
19 silly currentTree ├── which@2.0.2
19 silly currentTree ├─┬ wrap-ansi@6.2.0
19 silly currentTree │ ├── ansi-styles@4.2.1
19 silly currentTree │ ├── color-convert@2.0.1
19 silly currentTree │ └── color-name@1.1.4
19 silly currentTree ├── wrappy@1.0.2
19 silly currentTree ├── xml2js@0.4.23
19 silly currentTree ├── xmlbuilder@11.0.1
19 silly currentTree ├── xregexp@4.3.0
19 silly currentTree ├── y18n@4.0.0
19 silly currentTree ├─┬ yargonaut@1.1.4
19 silly currentTree │ ├── ansi-regex@2.1.1
19 silly currentTree │ ├── ansi-styles@2.2.1
19 silly currentTree │ ├── chalk@1.1.3
19 silly currentTree │ ├── strip-ansi@3.0.1
19 silly currentTree │ └── supports-color@2.0.0
19 silly currentTree ├─┬ yargs-parser@18.1.3
19 silly currentTree │ └── decamelize@1.2.0
19 silly currentTree └─┬ yargs@13.3.2
19 silly currentTree   ├── ansi-regex@4.1.0
19 silly currentTree   ├── cliui@5.0.0
19 silly currentTree   ├── decamelize@1.2.0
19 silly currentTree   ├── emoji-regex@7.0.3
19 silly currentTree   ├── find-up@3.0.0
19 silly currentTree   ├── is-fullwidth-code-point@2.0.0
19 silly currentTree   ├── locate-path@3.0.0
19 silly currentTree   ├── p-locate@3.0.0
19 silly currentTree   ├── path-exists@3.0.0
19 silly currentTree   ├── string-width@3.1.0
19 silly currentTree   ├── strip-ansi@5.2.0
19 silly currentTree   ├── wrap-ansi@5.1.0
19 silly currentTree   └── yargs-parser@13.1.2
20 silly idealTree grapefruit@0.7.0
20 silly idealTree ├── @babel/runtime-corejs3@7.10.4
20 silly idealTree ├── @types/color-name@1.1.1
20 silly idealTree ├── ansi-regex@5.0.0
20 silly idealTree ├── ansi-styles@3.2.1
20 silly idealTree ├── any-promise@1.3.0
20 silly idealTree ├── app-root-path@3.0.0
20 silly idealTree ├── argparse@1.0.10
20 silly idealTree ├── balanced-match@1.0.0
20 silly idealTree ├── base64-js@1.3.1
20 silly idealTree ├── brace-expansion@1.1.11
20 silly idealTree ├── buffer@5.6.0
20 silly idealTree ├── camelcase@5.3.1
20 silly idealTree ├── chalk@2.4.2
20 silly idealTree ├─┬ cli-highlight@2.1.4
20 silly idealTree │ ├── ansi-styles@4.2.1
20 silly idealTree │ ├── chalk@3.0.0
20 silly idealTree │ ├── color-convert@2.0.1
20 silly idealTree │ ├── color-name@1.1.4
20 silly idealTree │ ├── has-flag@4.0.0
20 silly idealTree │ ├── supports-color@7.1.0
20 silly idealTree │ └── yargs@15.4.0
20 silly idealTree ├── cliui@6.0.0
20 silly idealTree ├── color-convert@1.9.3
20 silly idealTree ├── color-name@1.1.3
20 silly idealTree ├── concat-map@0.0.1
20 silly idealTree ├── core-js-pure@3.6.5
20 silly idealTree ├── cross-env@7.0.2
20 silly idealTree ├── cross-spawn@7.0.1
20 silly idealTree ├── debug@4.1.1
20 silly idealTree ├── decamelize@3.2.0
20 silly idealTree ├── dotenv@6.2.0
20 silly idealTree ├── emoji-regex@8.0.0
20 silly idealTree ├── escape-string-regexp@1.0.5
20 silly idealTree ├── esprima@4.0.1
20 silly idealTree ├── figlet@1.4.0
20 silly idealTree ├── find-up@4.1.0
20 silly idealTree ├── fs.realpath@1.0.0
20 silly idealTree ├── get-caller-file@2.0.5
20 silly idealTree ├── glob@7.1.6
20 silly idealTree ├─┬ has-ansi@2.0.0
20 silly idealTree │ └── ansi-regex@2.1.1
20 silly idealTree ├── has-flag@3.0.0
20 silly idealTree ├── highlight.js@9.18.1
20 silly idealTree ├── ieee754@1.1.13
20 silly idealTree ├── inflight@1.0.6
20 silly idealTree ├── inherits@2.0.4
20 silly idealTree ├── is-fullwidth-code-point@3.0.0
20 silly idealTree ├── isexe@2.0.0
20 silly idealTree ├── js-yaml@3.14.0
20 silly idealTree ├── locate-path@5.0.0
20 silly idealTree ├── minimatch@3.0.4
20 silly idealTree ├── mkdirp@1.0.4
20 silly idealTree ├── ms@2.1.2
20 silly idealTree ├── mz@2.7.0
20 silly idealTree ├── object-assign@4.1.1
20 silly idealTree ├── once@1.4.0
20 silly idealTree ├── p-limit@2.3.0
20 silly idealTree ├── p-locate@4.1.0
20 silly idealTree ├── p-try@2.2.0
20 silly idealTree ├── parent-require@1.0.0
20 silly idealTree ├── parse5-htmlparser2-tree-adapter@5.1.1
20 silly idealTree ├── parse5@5.1.1
20 silly idealTree ├── path-exists@4.0.0
20 silly idealTree ├── path-is-absolute@1.0.1
20 silly idealTree ├── path-key@3.1.1
20 silly idealTree ├── reflect-metadata@0.1.13
20 silly idealTree ├── regenerator-runtime@0.13.5
20 silly idealTree ├── require-directory@2.1.1
20 silly idealTree ├── require-main-filename@2.0.0
20 silly idealTree ├── safe-buffer@5.2.1
20 silly idealTree ├── sax@1.2.4
20 silly idealTree ├── set-blocking@2.0.0
20 silly idealTree ├── sha.js@2.4.11
20 silly idealTree ├── shebang-command@2.0.0
20 silly idealTree ├── shebang-regex@3.0.0
20 silly idealTree ├── sprintf-js@1.0.3
20 silly idealTree ├── string-width@4.2.0
20 silly idealTree ├── strip-ansi@6.0.0
20 silly idealTree ├── supports-color@5.5.0
20 silly idealTree ├── thenify-all@1.6.0
20 silly idealTree ├── thenify@3.3.1
20 silly idealTree ├── tslib@1.13.0
20 silly idealTree ├── typeorm@0.2.25
20 silly idealTree ├── which-module@2.0.0
20 silly idealTree ├── which@2.0.2
20 silly idealTree ├─┬ wrap-ansi@6.2.0
20 silly idealTree │ ├── ansi-styles@4.2.1
20 silly idealTree │ ├── color-convert@2.0.1
20 silly idealTree │ └── color-name@1.1.4
20 silly idealTree ├── wrappy@1.0.2
20 silly idealTree ├── xml2js@0.4.23
20 silly idealTree ├── xmlbuilder@11.0.1
20 silly idealTree ├── xregexp@4.3.0
20 silly idealTree ├── y18n@4.0.0
20 silly idealTree ├─┬ yargonaut@1.1.4
20 silly idealTree │ ├── ansi-regex@2.1.1
20 silly idealTree │ ├── ansi-styles@2.2.1
20 silly idealTree │ ├── chalk@1.1.3
20 silly idealTree │ ├── strip-ansi@3.0.1
20 silly idealTree │ └── supports-color@2.0.0
20 silly idealTree ├─┬ yargs-parser@18.1.3
20 silly idealTree │ └── decamelize@1.2.0
20 silly idealTree └─┬ yargs@13.3.2
20 silly idealTree   ├── ansi-regex@4.1.0
20 silly idealTree   ├── cliui@5.0.0
20 silly idealTree   ├── decamelize@1.2.0
20 silly idealTree   ├── emoji-regex@7.0.3
20 silly idealTree   ├── find-up@3.0.0
20 silly idealTree   ├── is-fullwidth-code-point@2.0.0
20 silly idealTree   ├── locate-path@3.0.0
20 silly idealTree   ├── p-locate@3.0.0
20 silly idealTree   ├── path-exists@3.0.0
20 silly idealTree   ├── string-width@3.1.0
20 silly idealTree   ├── strip-ansi@5.2.0
20 silly idealTree   ├── wrap-ansi@5.1.0
20 silly idealTree   └── yargs-parser@13.1.2
21 silly install generateActionsToTake
22 timing stage:generateActionsToTake Completed in 9ms
23 silly diffTrees action count 0
24 silly decomposeActions action count 0
25 silly install executeActions
26 silly doSerial global-install 0
27 verbose correctMkdir /Users/sven/.npm/_locks correctMkdir not in flight; initializing
28 verbose lock using /Users/sven/.npm/_locks/staging-1be3c4636fb138e8.lock for /Users/sven/PentestTools/iOS/Grapefruit/node_modules/.staging
29 silly doParallel extract 0
30 silly doReverseSerial unbuild 0
31 silly doSerial remove 0
32 silly doSerial move 0
33 silly doSerial finalize 0
34 silly doParallel refresh-package-json 0
35 silly doParallel preinstall 0
36 silly doSerial build 0
37 silly doSerial global-link 0
38 silly doParallel update-linked 0
39 silly doSerial install 0
40 silly doSerial postinstall 0
41 verbose unlock done using /Users/sven/.npm/_locks/staging-1be3c4636fb138e8.lock for /Users/sven/PentestTools/iOS/Grapefruit/node_modules/.staging
42 timing stage:executeActions Completed in 43ms
43 timing stage:rollbackFailedOptional Completed in 0ms
44 silly install runPostinstallTopLevelLifecycles
45 silly build grapefruit@0.7.0
46 info linkStuff grapefruit@0.7.0
47 silly linkStuff grapefruit@0.7.0 has /Users/sven/PentestTools/iOS as its parent node_modules
48 silly install grapefruit@0.7.0
49 info lifecycle grapefruit@0.7.0~install: grapefruit@0.7.0
50 silly postinstall grapefruit@0.7.0
51 info lifecycle grapefruit@0.7.0~postinstall: grapefruit@0.7.0
52 verbose lifecycle grapefruit@0.7.0~postinstall: unsafe-perm in lifecycle true
53 verbose lifecycle grapefruit@0.7.0~postinstall: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/sven/PentestTools/iOS/Grapefruit/node_modules/.bin:/Users/sven/opt/anaconda3/bin:/Users/sven/opt/anaconda3/condabin:/Users/sven/Downloads/google-cloud-sdk/bin:/Users/sven/Library/Android/sdk/tools:/Users/sven/PentestTools/Android/android-sdk-macosx/build-tools/26.0.2:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/local/MacGPG2/bin:/Users/sven/.rvm/gems/ruby-2.3.0/bin:/Users/sven/.rvm/gems/ruby-2.3.0@global/bin:/Users/sven/.rvm/rubies/ruby-2.3.0/bin:/Users/sven/Library/Android/sdk/platform-tools:/Users/sven/.rvm/bin:/Users/sven/.rvm/bin:/Users/sven/.rvm/bin:/usr/local/go/bin:/Users/sven/PentestTools/Android/SignApk:/Users/sven/PentestTools/Android/android-sdk-macosx/build-tools/23.0.2:/Users/sven/PentestTools/Android/jadx/build/jadx/bin:/Users/sven/PentestTools/Android/Flutter_SDK/flutter/bin:/Users/sven/.rvm/bin
54 verbose lifecycle grapefruit@0.7.0~postinstall: CWD: /Users/sven/PentestTools/iOS/Grapefruit
55 silly lifecycle grapefruit@0.7.0~postinstall: Args: [ '-c', 'node scripts/install.js' ]
56 timing audit submit Completed in 1223ms
57 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 1222ms
58 timing audit body Completed in 1ms
59 silly lifecycle grapefruit@0.7.0~postinstall: Returned: code: 1  signal: null
60 info lifecycle grapefruit@0.7.0~postinstall: Failed to exec postinstall script
61 verbose stack Error: grapefruit@0.7.0 postinstall: `node scripts/install.js`
61 verbose stack Exit status 1
61 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
61 verbose stack     at EventEmitter.emit (events.js:321:20)
61 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
61 verbose stack     at ChildProcess.emit (events.js:321:20)
61 verbose stack     at maybeClose (internal/child_process.js:1026:16)
61 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
62 verbose pkgid grapefruit@0.7.0
63 verbose cwd /Users/sven/PentestTools/iOS/Grapefruit
64 verbose Darwin 19.5.0
65 verbose argv "/usr/local/Cellar/node/13.7.0/bin/node" "/usr/local/bin/npm" "install"
66 verbose node v13.7.0
67 verbose npm  v6.14.8
68 error code ELIFECYCLE
69 error errno 1
70 error grapefruit@0.7.0 postinstall: `node scripts/install.js`
70 error Exit status 1
71 error Failed at the grapefruit@0.7.0 postinstall script.
71 error This is probably not a problem with npm. There is likely additional logging output above.
72 verbose exit [ 1, true ]

No prebuilt binaries found (target=13.7.0 runtime=node arch=x64

You are using node.js 13.7 which is not frida compatible. Please downgrade to 12.x.
This is currently a work in progress, you may experience issues and missing functionalities

Noted, thanks @ChiChou!