CenOS stream 9: ganache install error

1.ganache install error

# npm install ganache
npm ERR! code 1
npm ERR! path /opt/PrivateInvoice/260/node_modules/ganache/node_modules/@trufflesuite/bigint-buffer
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.0.0
npm ERR! gyp info using node@17.8.0 | linux | x64
npm ERR! gyp info find Python using Python version 3.9.10 found at "/usr/bin/python3"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/opt/PrivateInvoice/260/node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/root/.cache/node-gyp/17.8.0/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/17.8.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/17.8.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/opt/PrivateInvoice/260/node_modules/ganache/node_modules/@trufflesuite/bigint-buffer',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: not found: make
npm ERR! gyp ERR! stack     at getNotFoundError (/usr/local/lib/node_modules/npm/node_modules/which/which.js:10:17)

2.Cause
I can't make ganache. By the way, the development environment is not installed.

3.install make, gcc, g++

# dnf install make gcc g++

4.install ganache

# npm cache clean
# npm install ganache

added 27 packages, changed 2 packages, and audited 456 packages in 2m

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

4 vulnerabilities (3 high, 1 critical)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
#

5.npm audit fix

# npm audit fix

added 4 packages, changed 5 packages, and audited 460 packages in 8s

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

found 0 vulnerabilities
# npm fund
privateinvoice@1.0.0
tqq https://opencollective.com/node-redis
x   mqq redis@3.1.2
tqw https://opencollective.com/eslint
x x mqq eslint@8.13.0
x tqq https://github.com/sponsors/epoberezkin
x x   mqq ajv@6.12.6
x tqw https://github.com/chalk/chalk?sponsor=1
x x x mqq chalk@4.1.2
x x mqq https://github.com/chalk/ansi-styles?sponsor=1
x x     mqq ansi-styles@4.3.0
x tqq https://github.com/sponsors/sindresorhus
x x   mqq escape-string-regexp@4.0.0, globals@13.13.0, type-fest@0.20.2, import-fresh@3.3.0, strip-json-comments@3.1.1, make-dir@3.1.0, p-map@4.0.0
x mqq https://github.com/sponsors/mysticatea
x     mqq eslint-utils@3.0.0, regexpp@3.2.0
tqq https://github.com/sponsors/RubenVerborgh
x   mqq follow-redirects@1.14.9
tqq https://github.com/sponsors/isaacs
x   mqq rimraf@3.0.2, glob@7.1.7, glob@8.0.1
tqq https://github.com/sponsors/feross
x   mqq safe-buffer@5.2.1
mqq https://github.com/sponsors/ljharb
    mqq array-includes@3.1.4, call-bind@1.0.2, define-properties@1.1.4, has-property-descriptors@1.0.0, es-abstract@1.19.5, es-to-primitive@1.2.1, is-date-object@1.0.5, has-tostringtag@1.0.0, is-symbol@1.0.4, get-symbol-description@1.0.0, has-symbols@1.0.3, is-callable@1.2.4, is-negative-zero@2.0.2, is-regex@1.1.4, is-shared-array-buffer@1.0.2, is-weakref@1.0.2, object-inspect@1.12.0, object.assign@4.1.2, string.prototype.trimend@1.0.4, string.prototype.trimstart@1.0.4, unbox-primitive@1.0.1, has-bigints@1.0.2, which-boxed-primitive@1.0.2, is-bigint@1.0.4, is-boolean-object@1.1.2, is-number-object@1.0.7, side-channel@1.0.4, get-intrinsic@1.1.1, is-string@1.0.7, array.prototype.flatmap@1.3.0, object.fromentries@2.0.5, object.hasown@1.1.0, object.values@1.1.5, resolve@2.0.0-next.3, is-core-module@2.9.0, string.prototype.matchall@4.0.7, regexp.prototype.flags@1.4.3, functions-have-names@1.2.3

#
# npm ls
privateinvoice@1.0.0 /opt/PrivateInvoice/260
tqq axios@0.26.1
tqq bcrypt@5.0.1
tqq binary-uuid@2.0.3
tqq bip39@3.0.4
tqq body-parser@1.19.0
tqq connect-redis@4.0.4
tqq currency.js@1.2.2
tqq dotenv-cli@5.1.0
tqq dotenv@16.0.0
tqq eslint-plugin-react@7.29.4
tqq eslint@8.13.0
tqq express-session@1.17.2
tqq express@4.17.1
tqq finalhandler@1.1.2
tqq ganache@7.1.0
tqq moment@2.29.3
tqq mysql@2.18.1
tqq node-gyp@9.0.0
tqq redis@3.1.2
tqq serve-static@1.14.1
tqq session-file-store@1.5.0
tqq sqlite3@4.2.0
tqq tslib@2.2.0
tqq uniqid@5.3.0
mqq uuid@7.0.3

#