14

sudo pacman -Syu

I try updating all the packages using pacman on my Manjaro Linux and pacman necessarily does everything to download the latest updates of all the available packages and after checking for file conflicts, it throws

...
(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.

Should I have to do anything specific for the node_modules which I assume are the globally installed node modules to be over written or something?

Ajay Srinivas
  • 595
  • 5
  • 16

4 Answers4

19

Removing the npm package first and then deleting node_modules directory is a workaround that I used to make this work. However, I am not sure if that is the right solution. You can do something like this before you do a full update and then install the npm back again.

$ 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
Ajay Srinivas
  • 595
  • 5
  • 16
15

You can sudo pacman -S npm --overwrite '/usr/lib/node_modules/npm/*'

Comment by the answer's author:

It basically resolves conflicts by overwriting files. In your case, conflicting files are all located in /usr/lib/node_modules/npm/ therefore the * will match all of them. No need to delete them manually with rm -r which would leave the package in an inconsistent state. It is good practice to update/upgrade afterward with sudo pacman -Syyu.

prd
  • 2,272
  • 2
  • 17
  • 32
dreamkinn
  • 151
  • 3
  • Could you provide more information? What does this command do? – Tyler2P Jun 05 '21 at 11:38
  • It basically resolves conflicts by overwriting files. In your case conflicting files are all located in /usr/lib/node_modules/npm/ therefore the * will match all of them. No need to delete them manually with `rm -r` which would leave the package in inconsistent state. It is good practice to update/upgrade after with `sudo pacman -Syyu` – dreamkinn Jun 06 '21 at 12:18
  • 2
    Could you add this to your answer? – Tyler2P Jun 06 '21 at 15:43
  • nice solution! thx – HappyCoder888 Jul 26 '23 at 13:31
3

Just sudo rm -fr /usr/lib/node_modules will work too. node_modules is where npm compiles stuff to, so just remove the compilation contents.

Rick
  • 485
  • 6
  • 23
-3

better use this ->

pacman -Syu blackarch --overwrite '*'
Tyler2P
  • 2,324
  • 26
  • 22
  • 31
Aswin Kumar
  • 591
  • 4
  • 3