Resolving EACCES permissions errors when installing packages globally
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
対策
(推奨)
$ npm install -g npm
2023-02-26 19:03:33 これだとだめだった
またInternal Error: EACCES: permission deniedが出るだけ
https://qiita.com/okohs/items/ced3c3de30af1035242d#対策2-npmのデフォルトディレクトリを変更する
$ mkdir ~/.npm-global
$ npm config set prefix '~/.npm-global'
$ export PATH=~/.npm-global/bin:$PATH
$ source ~/.profile
fishの場合は、edc/bass経由で実行する
$ bass source ~/.profile
2023-02-26 19:09:54 これでうまく行った
$ npm install -g yarn
$ npm install -g npm
ただ、yarn V2への移行ができなかった
code:err
$yarn set version berry
➤ YN0000: Retrieving https://repo.yarnpkg.com/3.4.1/packages/yarnpkg-cli/bin/yarn.js
➤ YN0000: Saving the new release in .yarn/releases/yarn-3.4.1.cjs
➤ YN0001: Error: EACCES: permission denied, unlink '/home/takker/.yarn/releases/yarn-3.4.1.cjs'
➤ YN0000: Failed with errors in 0s 572ms
対処調査
yarnの処理でEACCESエラーが出たときの対処法 - Qiita
chmodで権限を変更している
https://github.com/yarnpkg/yarn/issues/1806
同様にchmodするようだが、細かい方法で論争が起きている
sudo chmod 777 ~/.yarn/してみようtakker.icon
2023-02-26 19:18:46 同じエラーが出てコケた
19:20:43 わからん
code:log
I takker@LAPTOP-MTP9VI50 ~ 1> sudo rm -rf .yarn
I takker@LAPTOP-MTP9VI50 ~> yarn set version berry
node:internal/modules/cjs/loader:998
throw err;
^
Error: Cannot find module '/home/takker/.yarn/releases/yarn-3.4.1.cjs'
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
at Function.Module._load (node:internal/modules/cjs/loader:841:27)
at Function.executeUserEntryPoint as runMain (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:22:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
I takker@LAPTOP-MTP9VI50 ~ 1> npm uninstall -g yarn
removed 1 package in 42ms
I takker@LAPTOP-MTP9VI50 ~> npm install -g yarn
added 1 package in 893ms
I takker@LAPTOP-MTP9VI50 ~> yarn set version berry
node:internal/modules/cjs/loader:998
throw err;
^
Error: Cannot find module '/home/takker/.yarn/releases/yarn-3.4.1.cjs'
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
at Function.Module._load (node:internal/modules/cjs/loader:841:27)
at Function.executeUserEntryPoint as runMain (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:22:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
I takker@LAPTOP-MTP9VI50 ~ 1>
~/.yarnは消しちゃダメだったみたい
https://github.com/nodejs/node/issues/38317
解決策がわからん!
npmから入れ直すか……
19:28:28 Corepackで入れようとしたらInternal Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/bin/pnpm'が出た
これはsudoつければいいようだ
19:31:09 今度はInternal Error: EEXIST: file already exists, symlink '../lib/node_modules/corepack/dist/yarn.js' -> '/usr/bin/yarn'が出た
19:33:29 無理矢理sudo sh ~/git/dotfiles/install_apps.shして、usrにbinaryを入れてしまったのが原因のようだ
片っ端からsudo rm -rfから消していこう
19:35:58 今度はなんだ……
code:err3
$yarn
Internal Error: The "yarn-path" option has been set (in /home/takker/.yarnrc.yml), but the specified location doesn't exist (/home/takker/.yarn/releases/yarn-3.4.1.cjs).
at i (/home/takker/.cache/node/corepack/yarn/3.4.1/yarn.js:446:11180)
at async t (/home/takker/.cache/node/corepack/yarn/3.4.1/yarn.js:446:10283)
上のログは/takker-memex/日刊記録sheet 2023-02-26#63fb2d311280f00000e74d1cからの続き
そのうちこっちに移すかも
#2023-02-26 19:04:37