尝试安装 LESS 时出现“请以 Root/Administrator 身份再次尝试运行此命令”错误

Posted

技术标签:

【中文标题】尝试安装 LESS 时出现“请以 Root/Administrator 身份再次尝试运行此命令”错误【英文标题】:"Please try running this command again as Root/Administrator" error when trying to install LESS 【发布时间】:2014-12-24 02:41:58 【问题描述】:

我正在尝试在我的机器上安装 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

【问题讨论】:

NPM throws error without sudo的可能重复 【参考方案1】:

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

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

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

sudo chown -R $USER /usr/local

然后运行安装

node install -g less

退房:

npm throws error without sudo https://aralbalkan.com/scribbles/npm-install-g-please-try-running-this-command-again-as-root-administrator/ http://foohack.com/2010/08/intro-to-npm/#what_no_sudo

【讨论】:

术语“sudo”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。 仅供参考,在 OSX High Sierra 中,无法再使用 chown /usr/local,因为它受到限制。【参考方案2】:

老实说,这是来自npm 的糟糕建议。安装可以运行任意脚本并且使用sudo 运行它可能非常危险!您可以通过 sudo npm install -g less 全局安装它,但我建议您更新您的 npm 设置:

#~/.npmrc
prefix=~/.npm_modules

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

#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin

那么你不需要root权限来执行安装,你仍然可以使用二进制文件。

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

【讨论】:

我不太清楚在您提供的代码 sn-ps 中我应该做什么。你想让我重命名一个文件吗? @*** 我是说在你的.npmrc.bashrc/.zshrc 配置文件中你应该做这些更新。 # 表示注释并显示文件名 明白了!对不起,我显然是新人。以及如何找到这些配置文件的位置? @*** ~ 表示您的主目录。 ~/.npmrc 应该是一个实际的文件。 这对于在共享服务器上工作的任何人来说都是正确的答案。为了 npm 而使用 /usr/local 只有在单用户系统上才有意义。【参考方案3】:

只需将sudo 添加到命令的开头即可。 如前所述,安装会运行一些可能很危险的脚本,但我发现全局安装很有帮助,而且更简单。

运行sudo npm install -g less

【讨论】:

您的意思可能是“前置”,而不是“附加”,即便如此,它也不是最好的解决方案。【参考方案4】:

这肯定会有所帮助。由 npm 自己回答。 https://docs.npmjs.com/getting-started/fixing-npm-permissions

为方便起见,以下是从 URL 中提取的。


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

    找到 npm 目录的路径:

    npm config get prefix

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

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

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

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

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


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

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

    mkdir ~/.npm-global

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

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

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

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

    回到命令行,更新你的系统变量:

    source ~/.profile

测试:不使用 sudo 全局下载包。

`npm install -g jshint`

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

NPM_CONFIG_PREFIX=~/.npm-global


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

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

brew install node

【讨论】:

为我工作。 Atom SASS Autocompile package error "/bin/sh: node-sass: command not found" 需要全局安装 node-sass。【参考方案5】:

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

【讨论】:

【参考方案6】:

这是我开始使用 Less 编译器所必须做的,以避免 OP 中提到的问题:

    安装node.js 使用终端安装 NPM:sudo npm install npm -g 使用终端安装 Less 编译器:sudo npm install -g less(sudo 与众不同) 如果您使用的是 phpstorm:转到“首选项... > 插件”并安装 NodeJS-plugin(可能需要“浏览存储库”才能找到它)并重新启动 PHPstorm(根据提示) 之后再次转到插件:安装 Less 编译器(可能 需要“浏览存储库”来找到它)并重新启动 PHPstorm(如 提示) 设置项目后,转到“设置 > 工具 > Filewatchers”并添加“Less”。(“程序”的)路径应该类似于 这个:/usr/local/bin/lessc 确保在 6 的设置中选中 Track only root files

【讨论】:

在现代世界里,这个还在坚持。【参考方案7】:

当您收到 EACCES (Error: Access) 错误时,npm 有一个关于 fixing npm permissions 的官方页面。该页面甚至还有视频。

您可以使用以下两个选项之一解决此问题:

    将权限更改为 npm 的默认目录。 将 npm 的默认目录更改为另一个目录。

【讨论】:

【参考方案8】:

就我而言,我需要从 5.3.0 → 5.4.2 更新 npm 版本。

在我可以使用这个-- npm i -g npm 之前,我需要运行两个命令来完美解决我的问题。它很有可能甚至可以解决您的问题。

第一步:sudo chown -R $USER /usr/local

第二步:npm install -g cordova ionic

在此之后,您应该将您的 npm 更新到最新版本

第三步:npm i -g npm

那你就可以走了。希望这可以解决您的问题。 干杯!!

【讨论】:

需要安装 ionic 来解决此权限问题。 'npm install -g cordova ionic'【参考方案9】:

我也遇到了问题。这就是我所做的:

    从控制面板卸载 nodeJs > 卸载程序 users//appData/roaming --> npm 文件夹和 npm-cache 文件夹中有 2 个文件夹。删除这两个。

现在,转到 nodeJS 站点,然后再次安装。在安装选项中选择第二个选项(即 npm 包)。安装它。你的问题现在必须解决。

【讨论】:

【参考方案10】:

我知道这是一个老问题,但没有一个解决方案似乎是一个好的做法,因此我将说明我是如何解决这个问题的:

尝试使用Homebrew 解决此问题,但它还在/usr/local directory 中安装节点,这将再次导致EACCES 错误。

必须使用像nvm 这样的版本管理器以获取更多信息,请参阅官方npm guide。

对于各种operating system.

nvm 将 node 及其模块安装在用户的 HOME FOLDER 中,从而解决EACCES 问题。

【讨论】:

【参考方案11】:

我在安装 expo cli 时遇到了这个问题,我只按照 npm 文档here 中提到的四个步骤进行了修复。

问题是某些版本的 npm 无法找到用于全局安装包的文件夹。按照这些步骤,我们可以在用户的​​主目录中创建或修改 .profile 文件,并在那里给它一个适当的 PATH,这样它就可以像魅力一样工作了。

试试这个它对我有帮助,我花了大约一个小时来解决这个问题。我的节点版本是 6.0

我遵循的步骤

备份您的计算机。 在命令行的主目录中,为全局安装创建一个目录:

mkdir ~/.npm-global

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

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

在您首选的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行:

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

在命令行上,更新你的系统变量:

source ~/.profile

要测试您的新配置,请在不使用 sudo 的情况下全局安装软件包:

npm install -g jshint

【讨论】:

【参考方案12】:

我遇到这个问题已经有一段时间了,终于找到了这个解决方案(适用于 Mac)...

本文将引导您了解如何将您当前的个人资料更改为 root 用户,或者......如果您想自己登录到 root(个人资料),则可以出于任何目的。

https://support.apple.com/en-us/HT204012#:~:text=Click%20Open%20Directory%20Utility.&text=in%20the%20Directory%20Utility%20window,use%20for%20the%20root%20user.

如果这不起作用,请尝试:

https://apple.stackexchange.com/questions/316304/how-to-run-a-root-admin-shell-in-terminal

希望这对阅读本文的人有所帮助......一遍又一遍地遇到这个问题很烦人。

【讨论】:

鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。

以上是关于尝试安装 LESS 时出现“请以 Root/Administrator 身份再次尝试运行此命令”错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥在尝试安装 FiPy 时出现错误?

尝试使用柯南安装 gtest 时出现 HTTPSConnectionPool 错误

尝试安装 Firebase 时出现安装错误

尝试安装 meilisearch 时出现拒绝访问错误

尝试安装“npm quick.db”时出现错误

尝试全局安装 Vue CLI 时出现 NPM 代理问题