1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

npmコマンドをsudoで実行しない方がいいかも?

Posted at

ng newで新しいangularプロジェクトを立ち上げようとしたところ以下のようなエラーが発生

npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm ERR! code EEXIST
npm ERR! syscall rename
npm ERR! path /Users//.npm/_cacache/tmp/48832045
npm ERR! dest /Users/.npm/_cacache/content-v2/sha512/f6/27/24a0bcfe85c5c27a1ee3adc8a7fbf48b5a6f86931136913be8632a77f29e1691d1577d02710c5196a7f6078e228b3f1d3acf603b5bc5cabaa6d17970f3b3
npm ERR! errno -13
npm ERR! EACCES: permission denied, rename '/Users/yusuke/.npm/_cacache/tmp/48832045' -> '/Users/yusuke/.npm/_cacache/content-v2/sha512/f6/27/24a0bcfe85c5c27a1ee3adc8a7fbf48b5a6f86931136913be8632a77f29e1691d1577d02710c5196a7f6078e228b3f1d3acf603b5bc5cabaa6d17970f3b3'
npm ERR! File exists: /Users/yusuke/.npm/_cacache/content-v2/sha512/f6/27/24a0bcfe85c5c27a1ee3adc8a7fbf48b5a6f86931136913be8632a77f29e1691d1577d02710c5196a7f6078e228b3f1d3acf603b5bc5cabaa6d17970f3b3
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

解決方法

どうやら、npm がファイル操作中に既存のファイルに上書きできず、エラーを引き起こしたことを示している。
npm のキャッシュの問題が原因でファイルがロックされている場合があるため、キャッシュを削除してみると良いらしい。
以下のコマンドを実行してキャッシュを削除

npm cache clean --force

と思ったら、以下のようなエラーが発生

npm WARN using --force Recommended protections disabled.
npm ERR! code EACCES
npm ERR! syscall unlink
npm ERR! path /Users/.npm/_cacache/content-v2/sha512/03/aa/7fa6effa7f205c0354d1cff1aa5983d58a996b7ed716da0642f6aefd9e0342280791fd7de070475740797828d5d5fb7c20209d423e4250dc81ccea572cc8
npm ERR! errno -13
npm ERR! 
npm ERR! Your cache folder contains root-owned files, due to a bug in
npm ERR! previous versions of npm which has since been addressed.
npm ERR! 
npm ERR! To permanently fix this problem, please run:
npm ERR!   sudo chown -R 501:20 "/Users/.npm"

npm ERR! A complete log of this run can be found in: /Users/.npm/_logs/2024-10-06T14_53_24_554Z-debug-0.log

以前にsudoを使ったことが原因

このエラーを調べてみると、以前にnpmコマンドをsudoで実行してしまったため、キャッシュホルダ内にroot権限で生成されたファイルが残っていて、通常ユーザではこれらのファイルを操作できなくなってしまっていることで起こるエラーらしい
よって言われた通りにコマンドを実行

sudo chown -R 501:20 "/Users/.npm"

元のエラーにはpermission deniedがあったため、もしかしたらこの段階でng newが実行できるようになっていたのかもしないが、念の為キャッシュを削除

npm cache clean --force                  

無事実行できて、改めてng newをすると、問題なく実行できた

反省

なんでもsudoで実行するのはやめるようにしよう…

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?