#node.js #linux #archlinux #manjaro #pacman-package-manager
Вопрос:
sudo pacman -Syu
Я пытаюсь обновить все пакеты с помощью pacman в моем Manjaro Linux, и pacman обязательно делает все, чтобы загрузить последние обновления всех доступных пакетов, и после проверки на наличие конфликтов файлов он выдает
...
(126/126) checking keys in keyring 100%
(126/126) checking package integrity 100%
(126/126) loading package files 100%
(126/126) checking for file conflicts
error: failed to commit transaction (conflicting files)
npm: /usr/lib/node_modules/npm/lib/exec/get-workspace-location-msg.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/@npmcli/git/lib/utils.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/balanced-match/.github/FUNDING.yml exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/just-diff/index.d.ts exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/just-diff/index.tests.ts exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/CHANGELOG.md exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/LICENSE exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/README.md exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/cache-install-dir.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/get-bin-from-manifest.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/index.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/manifest-missing.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/no-tty.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/lib/run-script.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/libnpmexec/package.json exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/proc-log/LICENSE exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/proc-log/README.md exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/proc-log/index.js exists in filesystem
npm: /usr/lib/node_modules/npm/node_modules/proc-log/package.json exists in filesystem
Errors occurred, no packages were upgraded.
Должен ли я делать что-то конкретное для node_modules, которые, как я предполагаю, являются глобально установленными модулями узлов, которые должны быть перезаписаны или что-то в этом роде?
Ответ №1:
Сначала удалите пакет npm, а затем удалите каталог node_modules.Это обходной путь, который я использовал для выполнения этой работы. Однако я не уверен, что это правильное решение. Вы можете сделать что-то подобное, прежде чем выполнить полное обновление, а затем снова установить npm.
$ sudo pacman -Rns npm
$ sudo rm -R /usr/lib/node_modules/npm/
$ sudo rm -R /usr/share/man/man1/
$ sudo pacman -Syyu
$ sudo pacman -S npm
Ответ №2:
Просто sudo rm -fr /usr/lib/node_modules
тоже будет работать. node_modules
это то, куда npm компилирует материалы, поэтому просто удалите содержимое компиляции.
Комментарии:
1. это самое простое решение. Вам не нужно заново устанавливать npm или узел.
Ответ №3:
Ты можешь sudo pacman -S npm --overwrite '/usr/lib/node_modules/npm/*'
Комментарии:
1. Не могли бы вы предоставить более подробную информацию? Что делает эта команда?
2. Он в основном разрешает конфликты путем перезаписи файлов. В вашем случае все конфликтующие файлы находятся в /usr/lib/node_modules/npm/, поэтому * будет соответствовать всем из них. Нет необходимости удалять их вручную,
rm -r
что оставило бы пакет в несогласованном состоянии. Рекомендуется обновлять/обновлять после сsudo pacman -Syyu
3. Не могли бы вы добавить это к своему ответу?