
我想得到新專案管理上班。在此過程中,我似乎安裝了它的兩個版本:一個損壞的版本安裝在 ~/bin 中,另一個我剛剛編譯並運行make install
以將其放入/usr/local/bin/npm
.
因此,我將整個 ~/bin 資料夾移至 ~/old/bin ...但當我npm
在 ~/bin 中運行系統搜尋時:
$ which npm
/usr/local/bin/npm
$ alias npm
-bash: alias: npm: not found
$ npm
-bash: /home/ubuntu/bin/npm: No such file or directory
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$
是什麼原因導致 Ubuntu 在 中尋找 npm ~/bin/npm
?我使用的是 Ubuntu 11.10。我不知道這個問題是否是ubuntu特有的,如果需要的話可以移至askubuntu。
我確實在PATH 中看到了~/bin ,但據我所知,這只意味著如果npm 存在於~/bin 中,那麼它就會使用它......但為什麼bash 堅持在那裡專門尋找它?/usr/local/bin/npm
儘管該命令確實找到了它,但為什麼它找不到which
它?
答案1
可執行檔先前已知的位置可能已由 shell 進行了雜湊處理。重置 shell 的快取應該hash -r
可以解決該問題。
如果您不想重置整個緩存,可以刪除npm
使用的單一條目hash -d npm
。