即使目录是可写的,在全局安装时也会出现NPM错误

尝试使用此命令安装coffee-script时出现此错误:

npm install -g --verbose coffee-script opal 

这些是错误信息:

 npm ERR! Error: EACCES, symlink '../lib/node_modules/coffee-script/bin/coffee' npm ERR! { [Error: EACCES, symlink '../lib/node_modules/coffee-script/bin/coffee'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '../lib/node_modules/coffee-script/bin/coffee' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm info postuninstall opal@0.3.2 npm ERR! Error: EACCES, symlink '../lib/node_modules/opal/bin/opal-node' npm ERR! { [Error: EACCES, symlink '../lib/node_modules/opal/bin/opal-node'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '../lib/node_modules/opal/bin/opal-node' } npm ERR! npm ERR! Please try running this command again as root/Administrator. 

文件夹/ usr / local / bin和/ usr / local / lib / node_modules是由当前用户拥有和写入的,我不想用root运行npm命令,如何知道npm试图创build哪个文件夹符号链接?

我使用npm 1.2.9-1chl1〜quantal1和nodejs 0.8.19-1chl1〜quantal1

您的节点安装使用系统目录。 在使用-g时使用sudo

 sudo npm install -g --verbose coffee-script opal 

你可以用这个class轮将NPM的bin放到你的用户名中来解决这个问题:

 $ chown -R `whoami` `npm -g bin` 

啊,用这个命令:

 npm -g bin 

它会输出这样的东西:

 /usr/bin # this is the folder nodejs wanted to write.. 

那么你可以chmodchown它,所以它可以被写入安装。

我有一个类似的问题在NPM模块不会安装全球没有sudo ,问题是, 当我安装节点,我用sudo通过chris / lea ppa回购

我的解决scheme是卸载节点,然后以这种方式安装它:

从nodejs.org下载最新稳定的节点源代码#in my case node-v0.10.20.tar.gz

tar -zxf node -v0.10.20.tar.gz #uncompress sources

cd node-v0.10.20 #enter解压缩文件夹

sudo chown $ USER -R / usr / local

./configure –prefix = / usr / local && make && make install

PD: 如果你不想改变/ usr / local文件夹的所有权 ,你可以把它安装在你已经拥有的地方。 这种方法的问题是,你将不得不将安装文件夹绑定到bash命令行,以便稍后使用节点命令

mkdir〜/ opt

./configure –prefix =〜/ opt && make && make install

echo'export PATH =〜/ opt / bin:$ {PATH}'>>〜/ .bashrc#或〜/ .profile或〜/ .bash_profile或〜/ .zshenv取决于当前的操作系统

无论使用哪种方法,您都可以在不使用sudo的情况下执行以下操作

npm install -g –verbose咖啡 – 脚本蛋白石

有类似的问题。 事实certificate,我有东西在与sudo安装的project/node_modules目录。 在我的情况下,这是一些依赖项,也是.bin目录。 我删除了这些错误的目录,然后再次运行npm install并成功。 我也重新安装了全球量angular器和phantomjs,但不知道这是否是必需的。 我相信这是不好的(即根拥有) .bin目录造成这一点。