Index: lib/config/core.js --- lib/config/core.js.orig 2019-08-30 23:36:14.842432000 +0200 +++ lib/config/core.js 2019-08-30 23:36:49.781204000 +0200 @@ -291,7 +291,7 @@ fs.writeFile(target.path, data, 'utf8', function (er) { if (er) return then(er) if (myUid === 0 && (myUid !== st.uid || myGid !== st.gid)) { - fs.chown(target.path, st.uid, st.gid, then) + then() } else { then() } Index: lib/npm.js --- lib/npm.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ lib/npm.js 2019-08-30 23:36:14.842656000 +0200 @@ -404,9 +404,7 @@ Object.defineProperty(npm, 'globalDir', { get: function () { - return (process.platform !== 'win32') - ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') - : path.resolve(npm.globalPrefix, 'node_modules') + return path.resolve(npm.globalPrefix, 'lib', 'node', 'usr') }, enumerable: true }) Index: lib/search/all-package-metadata.js --- lib/search/all-package-metadata.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ lib/search/all-package-metadata.js 2019-08-30 23:36:14.842802000 +0200 @@ -3,7 +3,6 @@ const BB = require('bluebird') const cacheFile = require('npm-cache-filename') -const chownr = BB.promisify(require('chownr')) const correctMkdir = BB.promisify(require('../utils/correct-mkdir.js')) const figgyPudding = require('figgy-pudding') const fs = require('graceful-fs') @@ -233,13 +232,6 @@ cacheFileStream.on('close', () => { if (!errEmitted) { - if (typeof uid === 'number' && - typeof gid === 'number' && - process.getuid && - process.getgid && - (process.getuid() !== uid || process.getgid() !== gid)) { - chownr.sync(cacheFile, uid, gid) - } outStream.end() } }) @@ -253,9 +245,7 @@ var cacheBase = path.dirname(cacheFile) log.silly('all-package-metadata', 'making sure cache dir exists at', cacheBase) return correctMkdir(opts.cache).then(st => { - return mkdir(cacheBase).then(made => { - return chownr(made || cacheBase, st.uid, st.gid) - }).then(() => ({ uid: st.uid, gid: st.gid })) + return mkdir(cacheBase).then(() => ({ uid: st.uid, gid: st.gid })) }) } Index: lib/unbuild.js --- lib/unbuild.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ lib/unbuild.js 2019-08-30 23:36:14.842918000 +0200 @@ -98,7 +98,7 @@ !npm.config.get('global')) { return cb() } - const manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') + const manRoot = path.resolve(npm.config.get('prefix'), 'man') log.verbose('rmMans', 'man files are', pkg.man, 'in', manRoot) asyncMap(pkg.man, function (man, cb) { if (Array.isArray(man)) { Index: lib/utils/correct-mkdir.js --- lib/utils/correct-mkdir.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ lib/utils/correct-mkdir.js 2019-08-30 23:37:01.268901000 +0200 @@ -1,5 +1,4 @@ // XXX this can probably be replaced with gentle-fs.mkdir everywhere it's used -const chownr = require('chownr') const inflight = require('inflight') const log = require('npmlog') const mkdirp = require('mkdirp') @@ -28,7 +27,7 @@ log.error('correctMkdir', 'failed to make directory %s', path) return cb(er) } - chownr(made || path, owner.uid, owner.gid, (er) => cb(er, owner)) + cb(null, owner) }) }, er => { log.error('correctMkdir', 'failed to infer path ownership %s', path) Index: node_modules/bin-links/index.js --- node_modules/bin-links/index.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ node_modules/bin-links/index.js 2019-08-30 23:36:14.843200000 +0200 @@ -117,7 +117,7 @@ function linkMans (pkg, folder, parent, gtop, opts) { if (!pkg.man || !gtop || process.platform === 'win32') return - var manRoot = path.resolve(opts.prefix, 'share', 'man') + var manRoot = path.resolve(opts.prefix, 'man') opts.log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot) // make sure that the mans are unique. Index: node_modules/npm-lifecycle/index.js --- node_modules/npm-lifecycle/index.js.orig 2019-08-22 20:56:01.000000000 +0200 +++ node_modules/npm-lifecycle/index.js 2019-08-30 23:36:14.843347000 +0200 @@ -193,7 +193,6 @@ if (cfgsetting === 'warn-only') { if (isDifferentNodeInPath && !shouldPrependCurrentNodeDirToPATH.hasWarned) { if (foundExecPath) { - opts.log.warn('lifecycle', 'The node binary used for scripts is', foundExecPath, 'but npm is using', process.execPath, 'itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.') } else { opts.log.warn('lifecycle', 'npm is using', process.execPath, 'but there is no node binary in the current PATH. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.') }