今天下午早些时候,我在Fedora 16上安装了Node.js.
user@$ sudo yum localinstall --nogpgcheck http://nodejs.tchol.org/repocfg/fedora/nodejs-stable-release.noarch.rpm
user@$ sudo yum install nodejs-compat-symlinks npm
然后我用npm安装了一个包。我在Fedora上用npm安装的每个软件包(这不是我的第一次)都涉及到类似下面的过程。读它并哭泣。显然,这是hackish和错误,但当我决定安装更少或任何其他npm包时,我必须通过相同的程序。为什么?对我的环境或方法有什么打破?
user@$ sudo npm install -g jslint
[... this works ... kind of]
user@$ jslint
bash: jslint: command not found
user@$ sudo su
root@$ jslint
No files specified.
Usage: /bin/jslint ... [works]
root@$ which jslint
/bin/jslint
root@$ ls -l jslint
lrwxrwxrwx. 1 root root 38 Jul 15 14:58 /bin/jslint -> /lib/node_modules/jslint/bin/jslint.js
root@$ cd /lib/node_modules; ls -l
...
drwxr-xr-x. 2 root root 4096 Jul 15 14:22 inherits
drwxr-xr-x. 2 root root 4096 Jul 15 14:22 ini
drwx------. 6 nobody usergroup 4096 Jul 15 14:58 jshint
drwxr-xr-x. 3 root root 4096 Jul 15 14:22 lru-cache
...
root@$ find . -type d -print0 | xargs -0 chmod 755
root@$ ls -l
...
drwxr-xr-x. 2 root root 4096 Jul 15 14:22 inherits
drwxr-xr-x. 2 root root 4096 Jul 15 14:22 ini
drwxr-xr-x. 5 nobody usergroup 4096 Jul 15 15:32 jslint
drwxr-xr-x. 3 root root 4096 Jul 15 14:22 lru-cache
...
root@$ su user
user@$ jslint
o files specified.
Usage: /bin/jslint [now it finally works]
答案 0 :(得分:3)
npm的最新版本切换到用户" nobody"作为安全措施,如果它使用sudo权限运行。尝试以root身份登录时进行全局安装,而不是使用sudo。