"npm -g yarn" 给出 "permission denied, symlink..." 但确实存在适当的权限
"npm -g yarn" gives "permission denied, symlink..." but the proper permissions do exists
我需要在没有 sudo 的情况下安装 yarn。我这样做:
$ npm install -g yarn
我明白了:
npm ERR! code EACCES
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! [OperationalError: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'] {
npm ERR! cause: [Error: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'] {
[.........]
但是:
ls -al /usr/lib/node_modules/
drwxr-xr-x 5 user1 user1 4096 Sep 15 05:13 .
drwxr-xr-x 63 root root 32768 Sep 14 15:18 ..
drwxr-xr-x 9 user1 user1 4096 Sep 14 14:48 node-gyp
drwxr-xr-x 9 user1 user1 4096 Sep 15 04:22 npm
drwxr-xr-x 7 user1 user1 4096 Sep 14 14:48 semver
和
$ ls -ald /usr/lib/node_modules/
drwxr-xr-x 5 user1 user1 4096 Sep 15 05:13 /usr/lib/node_modules/
为什么以及如何解决?
您的配置文件夹必须由 root 拥有,这会产生几个权限问题。改成当前用户即可解决
$USER:$GROUP -> 给出当前登录用户和组。在终端中,您可以尝试 echo $USER echo $GROUP 来了解它的价值。通过此命令,它将更改为 $USER 中存在的值。这同样适用于小组。
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
现在尝试所有命令
我需要在没有 sudo 的情况下安装 yarn。我这样做:
$ npm install -g yarn
我明白了:
npm ERR! code EACCES
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! [OperationalError: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'] {
npm ERR! cause: [Error: EACCES: permission denied, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'] {
[.........]
但是:
ls -al /usr/lib/node_modules/
drwxr-xr-x 5 user1 user1 4096 Sep 15 05:13 .
drwxr-xr-x 63 root root 32768 Sep 14 15:18 ..
drwxr-xr-x 9 user1 user1 4096 Sep 14 14:48 node-gyp
drwxr-xr-x 9 user1 user1 4096 Sep 15 04:22 npm
drwxr-xr-x 7 user1 user1 4096 Sep 14 14:48 semver
和
$ ls -ald /usr/lib/node_modules/
drwxr-xr-x 5 user1 user1 4096 Sep 15 05:13 /usr/lib/node_modules/
为什么以及如何解决?
您的配置文件夹必须由 root 拥有,这会产生几个权限问题。改成当前用户即可解决
$USER:$GROUP -> 给出当前登录用户和组。在终端中,您可以尝试 echo $USER echo $GROUP 来了解它的价值。通过此命令,它将更改为 $USER 中存在的值。这同样适用于小组。
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
现在尝试所有命令