【Macエラー】npm error Error: EACCES: permission denied, mkdir

覚書です。

【Macエラー】npm error Error: EACCES: permission denied, mkdir

このエラーは、Macの環境でnpmを使ってパッケージをグローバルにインストールしようとした際によく発生する「権限(パーミッション)」の問題です。

npm error EACCES permission denied mkdir /usr/local/lib/node_modules

vivliostyleインストール時に問題が発生しましたが、他で発生する可能性もあるでしょう。

npm error code EACCES
npm error syscall mkdir
npm error path /usr/local/lib/node_modules/@vivliostyle
npm error errno -13
npm error Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@vivliostyle'

問題の原因

  • Macでは、npm install -gを使ってパッケージをグローバルにインストールする場合、通常システムの一部である/usr/local/libフォルダなどにパッケージがインストールされます。
  • しかし、このシステムのフォルダはユーザーが自由に書き込める場所ではなく、管理者権限が必要です。したがって、npmがインストールしようとしたときに「権限がない」というエラーが発生します。
    • 具体的には、Error: EACCES: permission deniedというエラーが出ていて、これは「ファイルやフォルダへのアクセス権限がない」という意味です。

解決方法

この問題を解決するためには、npmがパッケージをインストールする場所を、システムフォルダではなく、自分のユーザーディレクトリ(ホームフォルダ)内のフォルダに変更するのが一番簡単で安全な方法です。

手順

  1. グローバルインストール先を自分のユーザーディレクトリに変更する
    • システムのフォルダではなく、自分のホームフォルダ内にnpmのグローバルインストール先を設定します。これにより、権限の問題が発生しなくなります。
    コマンドを実行して、新しいフォルダを作成し、npmにそのフォルダを使うよう設定します:bashコードをコピーするmkdir -p ~/.npm-global npm config set prefix '~/.npm-global'
  2. 環境変数PATHを更新する
    • 上記で作成したフォルダにインストールしたパッケージをシステムが見つけられるように、PATHという環境変数を更新する必要があります。
    • これを行うには、.zshrcという設定ファイルにPATHの設定を追加します。
    具体的には、~/.zshrcファイルに次の行を追加します:bashコードをコピーするexport PATH=~/.npm-global/bin:$PATH
  3. 設定を反映させる
    • 追加した設定を反映するために、次のコマンドを実行します:
    bashコードをコピーするsource ~/.zshrc
  4. 再インストール
    • 最後に、もう一度パッケージをインストールします。sudoを使わずに、npm install -g @vivliostyle/cliを実行できるようになります。

なぜこの方法が安全か?

  • sudoを使わないsudoを使ってシステムに直接パッケージをインストールすることは、誤ってシステムを壊したり、セキュリティリスクを高めたりする可能性があります。ホームフォルダにインストールすることで、システムに影響を与えることなくパッケージを管理できます。

実際の作業

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'

ディレクトリ作事を確認します。

ls -ld ~/.npm-global

現在使用しているシェルを確認します。

echo $SHELL

今回、次のように表示されました。

/bin/zsh

~/.zshrcファイルを開く ターミナルで次のコマンドを実行して、設定ファイルをテキストエディタで開きます。

nano ~/.zshrc

PATHの設定を追加 ファイルの一番下に、次の行を追加します。

export PATH=~/.npm-global/bin:$PATH

ファイルを保存して閉じる nanoエディタでファイルを保存し、閉じます。

  • Ctrl + O(保存)
  • Enter(確認)
  • Ctrl + X(エディタを閉じる)

設定を反映させる 以下のコマンドを実行して、追加した設定を反映させます。

source ~/.zshrc


npm installの再実行 設定が反映されたら、再度以下のコマンドで vivliostyle をインストールします。インストールするものは状況により変わると思うので、対応ください。

npm install -g @vivliostyle/cli

参考文献

お世話になった大変ありがたい記事です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする