猿问
下载APP

没有sudo,NPM模块不会全局安装

我刚刚重新安装了Ubuntu 12.04 LTS,之前我做了以下其他步骤

  1. 通过包管理器使用以下脚本安装节点

    sudo apt-get update
    
    sudo apt-get install python-software-properties python g++ make
    
    sudo add-apt-repository ppa:chris-lea/node.js
    
    sudo apt-get update
    
    sudo apt-get install nodejs
  2. 试图在全球安装yeoman,express,n,yeoman的发电机,所有这些都返回了相同的错误

    错误的ERR!错误:EACCES,符号链接'../lib/node_modules/n/bin/n'

    错误的ERR!{[错误:EACCES,符号链接'../lib/node_modules/n/bin/n']错误号:3,代码:'EACCES',路径:'../lib/node_modules/n/bin/n'}

    错误的ERR!

    错误的ERR!请尝试以root / Administrator身份再次运行此命令。

    错误的ERR!系统Linux 3.8.0-29-通用

    错误的ERR!命令“/ usr / bin / node”“/ usr / bin / npm”“install”“ - g”“ - d”“n”

    错误的ERR!cwd / home / heberlz

    错误的ERR!node -v v0.10.20

    错误的ERR!npm -v 1.3.11

    错误的ERR!路径../lib/node_modules/n/bin/n

    错误的ERR!代码EACCES

    错误的ERR!错误3

    错误的ERR!堆栈错误:EACCES,符号链接'../lib/node_modules/n/bin/n'

    错误的ERR!

    错误的ERR!其他记录详细信息可在以下位置找到

    错误的ERR!/home/heberlz/npm-debug.log

    错误的ERR!不好的代码0

  3. 以递归方式回收以下文件夹的所有权〜/ .npm,/ usr / lib / node,/ usr / lib / node_modules以及以下符号链接/ usr / bin / node,/ usr / bin / nodejs 绝对没有成功

我需要安装yeoman及其发电机,没有sudo以后不会遇到麻烦:(


倚天杖
浏览 58回答 3
3回答

慕仰8121524

Ubuntu 12.04并使用Chris Lea的PPA为我安装以下作品:npm config set prefix '~/.npm-packages'并将$ HOME / .npm-packages / bin添加到$ PATH附加到 .bashrcexport PATH="$PATH:$HOME/.npm-packages/bin"

PIPIONE

如果您已经$HOME/bin走上了自己的道路,那么更简单的解决方案就是......npm config set prefix ~现在,新节点命令将安装到您的$HOME/bin目录中。无需改变你的道路!由于此讨论实际上是关于降低运行的安全风险sudo,因此您还应该知道任何节点应用程序都可能安装的应用程序名称与您认为正在安装的已注册节点程序包名称不匹配。因此存在安全风险,npm install即将替换现有系统命令或已有的系统命令$HOME/bin。如果您担心,请先检查您要安装的应用程序文件中的bin和scripts属性package.json。一般而言,最安全的是:(a)将$HOME/bin最后一个放在路径中,这样系统命令就不会被取代。(b)不包括“。” 或者你的任何相对路径,$PATH所以你不会意外地运行恰好在当前目录中的命令。

烧仙草VB

Node.js可以从NodeSource Debian和Ubuntu二进制分发库中获得。curl -sL https://deb.nodesource.com/setup | sudo bash -sudo apt-get install -y nodejs而已。过时的答案:不使用sudo的最快方法就像isaac在这里描述的那样我强烈建议你不要用sudo进行包管理!包可以运行任意脚本,这使得包管理器命令与链锯发型一样安全。当然,它很快,肯定会切断任何障碍,但你可能真的希望这个障碍留在那里。我推荐这样做一次:sudo chown -R $USER /usr/local编辑:关于将/ usr / local的所有权更改为当前用户,存在某些安全问题和功能限制:如果机器上有另一个用户可以使用全局npm包 - 请不要更改/ usr / local的所有权https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correcthttps://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local话虽如此,如果你想在不使用sudo的情况下安装全局模块,我认为没有比提到的更好的解决方案(从实用的角度来看)。安全性与易用性是一个非常广泛的主题,并没有简单的答案 - 它只取决于您的要求。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答