Index: node-v18.4.0/tools/install.py =================================================================== --- node-v18.4.0.orig/tools/install.py +++ node-v18.4.0/tools/install.py @@ -7,6 +7,8 @@ import errno import os import shutil import sys +from distutils import sysconfig +import re # set at init time node_prefix = '/usr/local' # PREFIX variable from Makefile @@ -65,6 +67,10 @@ def try_copy(path, dst): try_unlink(target_path) # prevent ETXTBSY errors return shutil.copy2(source_path, target_path) +def libdir(): + libdir_fq = sysconfig.get_config_var("LIBDIR") + return re.sub("^" + re.escape(node_prefix + "/"), "", libdir_fq) + def try_remove(path, dst): source_path, target_path = mkpaths(path, dst) print('removing %s' % target_path) @@ -80,7 +86,7 @@ def uninstall(paths, dst): try_remove(path, dst) def package_files(action, name, bins): - target_path = 'lib/node_modules/' + name + '/' + target_path = libdir() + '/node_modules/' + name + '/' # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there @@ -100,7 +106,7 @@ def package_files(action, name, bins): if action == uninstall: action([link_path], 'bin/' + bin_name) elif action == install: - try_symlink('../lib/node_modules/' + name + '/' + bin_target, link_path) + try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path) else: assert 0 # unhandled action type @@ -145,7 +151,7 @@ def files(action): output_lib = 'libnode.' + variables.get('shlib_suffix') action([output_prefix + output_lib], 'lib/' + output_lib) if 'true' == variables.get('node_use_dtrace'): - action(['out/Release/node.d'], 'lib/dtrace/node.d') + action(['out/Release/node.d'], libdir() + '/dtrace/node.d') # behave similarly for systemtap action(['src/node.stp'], 'share/systemtap/tapset/') Index: node-v18.4.0/lib/internal/modules/cjs/loader.js =================================================================== --- node-v18.4.0.orig/lib/internal/modules/cjs/loader.js +++ node-v18.4.0/lib/internal/modules/cjs/loader.js @@ -1247,7 +1247,7 @@ Module._initPaths = function() { path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..', '..'); - const paths = [path.resolve(prefixDir, 'lib', 'node')]; + const paths = ['/usr/lib/node']; if (homeDir) { ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries'));