Установка npm не удалась при пересборке node-gyp и libpq

Установка npm не удалась при пересборке node-gyp и libpq
> [email protected] install /home/johnsoct/bobtail/node_modules/libpq
> node-gyp rebuild

/home/johnsoct/.nvm/versions/node/v12.22.4/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory

Я прочитал ошибку, и нет, в /usr/local/lib/ ничего не установлено... Когда я устанавливаю node-gyp глобально, он там не устанавливается.

Я пробовал:

  • переустановка постгреса (https://fedoraproject.org/wiki/PostgreSQL)
  • установка libpq для fedora
  • перезапуск 512394823094 раз
  • удаление node_modules и переустановка (снова и снова в надежде, что произойдет что-то волшебное)
  • удаление package-lock.json и повторная установка
  • кое-что еще, что я давно забыл

Один небольшой намек, о котором я знаю: пакет, который НЕ устанавливается, npm install— это pg-native. Не уверен, что это имеет значение, но полагаю, что это связано, поскольку libpqупоминается в отчете об установке.

Если вам интересно, вот как выглядит мой PATH (изначально я устанавливал и удалял postgres с помощью linuxbrew): /home/johnsoct/bin:/usr/pgsql-10/bin:/usr/pgsql-10/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/opt/postgresql@10/bin:/home/johnsoct/.nvm/versions/node/v12.22.4/bin:/home/johnsoct/.local/bin:/home/johnsoct/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/var/lib/snapd/snap/bin

Любые советы/предложения были бы очень полезны... Я тут с ума схожу.

решение1

Это очень неправдоподобно, но поскольку у меня возникли те же проблемы при сборке только libpq с использованием node-gyp, я решил поделиться своим исправлением, на всякий случай.

Мой вывод ошибок выглядел так:

$ npm install
npm ERR! code 1
npm ERR! path /home/ekik/Source/home/grafana/node_modules/libpq
npm ERR! command failed
npm ERR! command sh -c -- node-gyp rebuild
npm ERR! node:internal/modules/cjs/loader:936
npm ERR!   throw err;
npm ERR!   ^
npm ERR! 
npm ERR! Error: Cannot find module 'object-assign'
npm ERR! Require stack:

Это началось, когда я обновился с NodeJS 14 до 16 или 18 на Manjaro Linux. Судя по всему, пакет node-gyp, который поставляется, использует кучу устаревших вещей (собранных из журналов установки npm), которые, судя по всему, больше не устанавливаются по умолчанию.

Мой очень грязный вариант был прост:

sudo npm install --global object-assign code-point-at number-is-nan request

Имейте в виду, что это загрязняет ваш глобальный node_modules.

Связанный контент