尝试安装LESS时,"请尝试再次以root/Administrator身份运行此命令"错误

Sta*_*low 57 linux less node.js

我正在尝试在我的机器上安装LESS并且已经安装了节点.但是,当我输入"node install -g less"时,我收到以下错误,不知道该怎么办?

FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/less' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0
Run Code Online (Sandbox Code Playgroud)

atu*_*urc 69

Re Explosion Pills"安装可以运行任意脚本并使用sudo运行它可能非常危险!"

似乎使用sudo是错误的做法.

"将/ usr/local文件夹中文件的所有者更改为当前用户:"

sudo chown -R $USER /usr/local
Run Code Online (Sandbox Code Playgroud)

然后运行安装

node install -g less
Run Code Online (Sandbox Code Playgroud)

查看:

  • 仅供参考,在OSX High Sierra中,由于受限制,因此不再可能chown/usr/local. (2认同)

Exp*_*lls 31

老实说,这是一个糟糕的建议npm.安装可以运行任意脚本并运行它sudo可能非常危险!你可以在sudo npm install -g less全球范围内安装它,但我建议你更新你的npm设置:

#~/.npmrc
prefix=~/.npm_modules
Run Code Online (Sandbox Code Playgroud)

然后你可以更新你的路径:

#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin
Run Code Online (Sandbox Code Playgroud)

然后,您不需要root权限来执行安装,您仍然可以使用二进制文件.

但是,这仅适用于您的用户.如果您希望整个系统能够使用该模块,您必须告诉每个人添加您的路径.更复杂和强大的解决方案将包括增加与节点模块/一组可以安装到二进制文件的文件夹,并添加每个人的路.


小智 24

只是sudo在命令的开头前面.如前所述,安装运行一些可能很危险的脚本,但我看到全局安装有很多帮助并且更简单.

sudo npm install -g less


Sha*_*hne 14

这肯定会有所帮助.回答npm本身. https://docs.npmjs.com/getting-started/fixing-npm-permissions

以下是从URL中提取的,以方便您使用.


选项1:将权限更改为npm的默认目录

  1. 找到npm目录的路径:

    npm config get prefix

对于许多系统,这将是/ usr/local.

警告:如果显示的路径只是/ usr,请切换到选项2,否则您将弄乱您的权限.

  1. 将npm目录的所有者更改为当前用户的名称(您的用户名!):

    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

这会更改npm和其他一些工具(lib/node_modules,bin和share)使用的子文件夹的权限.


选项2:将npm的默认目录更改为另一个目录

  1. 为全局安装创建一个目录:

    mkdir ~/.npm-global

  2. 配置npm以使用新的目录路径:

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

  3. 打开或创建一个〜/ .profile文件并添加以下行:

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

  4. 返回命令行,更新系统变量:

    source ~/.profile

测试:在不使用sudo的情况下全局下载软件包.

`npm install -g jshint`
Run Code Online (Sandbox Code Playgroud)

您可以使用相应的ENV变量(例如,如果您不想修改~/.profile),而不是步骤2-4 :

NPM_CONFIG_PREFIX=~/.npm-global


选项3:使用包管理器为您处理此问题

如果您在Mac OS上进行全新的Node安装,则可以使用Homebrew软件包管理器完全避免此问题.Homebrew使用正确的权限开箱即用.

brew install node


Ada*_*hes 5

我一直遇到这个问题,因为Windows将我的node_modules文件夹设置为“只读”。确保取消选中此选项。

在此处输入图片说明