今天下午早些時候,我在Fedora 16不能運行NPM安裝的軟件包爲用戶
[email protected]$ sudo yum localinstall --nogpgcheck http://nodejs.tchol.org/repocfg/fedora/nodejs-stable-release.noarch.rpm
[email protected]$ sudo yum install nodejs-compat-symlinks npm
安裝的Node.js然後我安裝了一個包NPM。我用Fedora上的npm安裝的每個軟件包(這不是我第一次)包含類似以下過程的內容。讀它並哭泣。很明顯,這是一個駭人聽聞的錯誤,但是當我決定安裝更少或者其他的npm包時,我必須經歷相同的過程。爲什麼?我的環境或方法有什麼問題?
[email protected]$ sudo npm install -g jslint
[... this works ... kind of]
[email protected]$ jslint
bash: jslint: command not found
[email protected]$ sudo su
[email protected]$ jslint
No files specified.
Usage: /bin/jslint ... [works]
[email protected]$ which jslint
/bin/jslint
[email protected]$ ls -l jslint
lrwxrwxrwx. 1 root root 38 Jul 15 14:58 /bin/jslint -> /lib/node_modules/jslint/bin/jslint.js
[email protected]$ 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
...
[email protected]$ find . -type d -print0 | xargs -0 chmod 755
[email protected]$ 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
...
[email protected]$ su user
[email protected]$ jslint
o files specified.
Usage: /bin/jslint [now it finally works]
IIRC,如果使用root權限運行,npm的最新版本切換到用戶「nobody」作爲安全措施。這可能是也可能不是問題的原因,但它可能是相關的。您可以嘗試以root身份執行全局安裝,而不是使用sudo權限。 – ebohlman 2012-07-15 23:10:25
工作正常!如果您想提交答案,我會將其標記爲正確。 – 2012-07-17 22:15:31