2014-12-06 83 views
1

確定當我運行:NPM不承認任何命令

npm install nodemon -g 

它返回:

/home/ubuntu/.node/bin/nodemon -> /home/ubuntu/.node/lib/node_modules/nodemon/bin/nodemon.js 
[email protected] /home/ubuntu/.node/lib/node_modules/nodemon 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected]) 
└── [email protected] ([email protected], [email protected], [email protected], [email protected]) 

npm install forever -g 

或任何節點安裝i,那麼不能訪問命令之後:

nodemon: command not found 

,但如果我直接引用文件是永遠的情況下,我可以運行它們:

/home/ubuntu/.node/lib/node_modules/forever/bin/forever server/app.js & 

作品就好了.... 爲什麼呢? 修復?

資料...

GNU nano 2.2.6       File: /home/ubuntu/.profile                

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login 
# exists. 
# see /usr/share/doc/bash/examples/startup-files for examples. 
# the files are located in the bash-doc package. 

# the default umask is set in /etc/profile; for setting the umask 
# for ssh logins, install and configure the libpam-umask package. 
#umask 022 

# if running bash 
if [ -n "$BASH_VERSION" ]; then 
    # include .bashrc if it exists 
    if [ -f "$HOME/.bashrc" ]; then 
     . "$HOME/.bashrc" 
    fi 
fi 

# set PATH so it includes user's private bin if it exists 
if [ -d "$HOME/bin" ] ; then 
    PATH="$HOME/bin:$PATH" 
    export PATH = /home/ubuntu/.node/bin:$PATH 

fi 

命令! :

echo $PATH: 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

而且

ls -la 
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 6 14:42 . 
drwxrwxr-x 4 ubuntu ubuntu 4096 Dec 6 12:24 .. 
lrwxrwxrwx 1 ubuntu ubuntu 39 Dec 6 14:42 forever -> ../lib/node_modules/forever/bin/forever 
lrwxrwxrwx 1 ubuntu ubuntu 42 Dec 6 14:19 nodemon -> ../lib/node_modules/nodemon/bin/nodemon.js 

奇怪,現在給我這個上rersart:

-bash: export: `=': not a valid identifier 
-bash: export: `/home/ubuntu/.node/bin:/home/ubuntu/.node/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games': not a valid identifier 
+2

顯然,npm安裝二進制文件的路徑不在你的PATH中。 – poke 2014-12-06 14:31:09

+0

是的,我一直在閱讀,我需要編輯bashrc什麼的,但有點不確定如何去做。 – vimes1984 2014-12-06 14:34:37

回答

0

添加/home/ubuntu/.node/bin到您的PATH。

例如在.profile或.bashrc文件,添加:

export PATH = /home/ubuntu/.node/bin:$PATH 

*編輯*

我不會把udpated路徑if語句內,因爲他們是獨立的事實(不管是不是你有一個家庭垃圾箱,無論你是否設置你的節點模塊路徑)。

另外,確保你在編輯之後重新加載您.profile

​​
+0

這不起作用... 更新答案與我的貝斯和簡介 – vimes1984 2014-12-06 14:40:00

+0

你能'回聲那臺機器上的$ PATH'來驗證它是在那裏設置的?還有'ls -la/home/ubuntu/.node/bin'。也可能是許可問題;我假設你是以用戶'ubuntu'登錄的? – Paul 2014-12-06 15:02:10

+0

是我登錄作爲Ubuntu的問題更新... – vimes1984 2014-12-06 15:05:35

1

您的節點安裝是疲憊不堪

下面是從源代碼安裝Node.js的步驟(OSX/Linux)的

注意 - 這會安裝Node.js,它可以爲您提供節點以及每個版本的npm, 。

從頭開始刪除之前節點和NPM安裝以及這些:

sudo mv ~/.npmrc ~/.npmrc_ignore 
sudo mv ~/.npm ~/.npm_ignore 
sudo mv ~/tmp ~/tmp_ignore 
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore 

下載源來自:https://nodejs.org/en/download/stable/
或者如果你需要一個特定版本https://nodejs.org/download/release

一旦再擴展CD進入源代碼目錄

cd node-v5.5.0 # or whatever current name is 

你可能會d問題的所有以下CMDS如己NOT根(須藤)

接這些NODE_PARENT位置之一,以限定其中節點被安裝成:

export NODE_PARENT=/some/desired/install/path_goes_here 
export NODE_PARENT=/usr/local/bin/nodejs # use this ONLY if you MUST install as root (sudo) 
export NODE_PARENT=${HOME}/nodejs-v0.10.33 # Recommended - its owned by you NOT root 

export PATH=${NODE_PARENT}/bin:${PATH}  # so executables are found 
export NODE_PATH=${NODE_PARENT}/lib/node_modules # so node can find its modules dir 

./configure --prefix=${NODE_PARENT} 

make 
make install 

其中將其放入目錄由上述--prefix

定義

當您使用語法:NPM安裝-g some_cool_module 全球的-g安裝成DIR $ NODE_PATH,而不是你的$ PWD

重要 - 上述三個出口放XXX = YYY 合作命令到你的〜/ .bashrc或一些這樣來堅持這些環境變量的變化