はじめに
自分の備忘録のためとアウトプットすることで記憶に残したいなと思ったため投稿するに至りました。
なのでゆるーく温かい目で見ていただければと思います。
やりたいこと
やりたいこととしては表題の通りです。
mac買いたてで環境構築が必要だったのですがnpm install ~ で毎回管理者エラーが発生していて、sudoとかで無理やりインストールしていました。
けどそれでは根本的解決になっていないなということでさすがに手を打って一応いけたっぽいので投稿として残すことにしました。qiitaデビュー👏
結果
sudo chown -R ユーザーとグループのID "/Users/ユーザー名/npm-temp"
npm cache clean --force
僕の場合はこのあとnpm install -g sass
でsassがインストールできました。
ユーザーとグループのIDには僕の場合は数字が入っています。(〇〇〇:〇〇という形で)
プロセス
以下のとおりです。
基本chatGPTに聞いてます。
順を追って説明します。
yourusernameとyourgroupnameは各自のものに適宜変換して読んでください。
まずはじめに
npm install -g sass
コマンドを実行したところ、
The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
と表示されました。このファイルにアクセスする権限がないですと言われています。
chatGPTに対処法を聞いたところ下記を実行してくださいとのこと。
sudo chown -R $USER:$USER ~/.npm-global
↑はnpmにグローバルでインストールするときの権限を$USERにするみたいなのでログインユーザーならだれでもインストールできるようにする記述みたいです。
chown: 〇〇: illegal group name
〇〇はグループネームだと思うのですがそんなのないよと言われました。
illegal?って感じはしますが、存在しないよって意味で使ってるのだと思われます。
そこでGPTに聞くとユーザー名を確認したいらしく
echo $USER
でユーザー名を確認したのち
sudo chown -R yourusername:yourusername ~/.npm-global
を実行してくれとのことでした。
しかし、エラーが出ました。
実のところchatGPT的にはユーザー名とグループ名は同じになっていることが多いらしくecho $USER
でユーザー名確認してsudo chown -R yourusername:yourusername ~/.npm-global
を実行したら権限変更できるやろって感じだったようです。
ただ僕の場合はユーザー名とグループ名が違ったようで。
groups
を実行してグループ名を確認した後、下記を実行。
sudo chown -R yourusername:yourgroupname ~/.npm-global
したのですが、
Your cache folder contains root-owned files, due to a bug in
npm ERR! previous versions of npm which has since been addressed.
npmのキャッシュディレクトリが適切なアクセス権限を持っていないらしいです。
一時保存先にnpmがアクセスできないというふうに僕は解釈をしています。
最終的にchatGPTから"結果"にあるコマンドを実行し、
sudo chown -R ユーザーとグループのID "/Users/ユーザー名/npm-temp"
npm cache clean --force
↓を実行
npm install -g sass
で無事にインストールが完了したというわけです。
以上です。
ご覧いただきありがとうございました!