這種情況通常是使用 npm 命令可以正常使用刃唐,但使用sudo npm 命令便會報 command not found
這是什么原因呢?
輸入which npm可以得到/usr/local/bin/npm界轩,
這個是普通用戶的bin目錄
而sudo執(zhí)行的是/usr/bin目錄画饥,這是root用戶的目錄
所以使用sudo命令是識別不到這個命令的,我們可以使用以下方法來處理這個問題
sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
同理耸棒,如果你使用的是cnpm 那么
sudo ln -s /usr/local/bin/cnpm /usr/bin/cnpm
如果你的其他程序也是這樣的問題,只要將xxx替換成你的可執(zhí)行程序就可以了
sudo ln -s /usr/local/bin/xxx /usr/bin/xxx
ln命令用來為文件創(chuàng)件連接荒澡,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接与殃。如果要創(chuàng)建符號連接必須使用"-s"選項单山。
注意: 符號鏈接文件不是一個獨立的文件,它的許多屬性依賴于源文件幅疼,所以給符號鏈接文件設(shè)置存取權(quán)限是沒有意義的米奸。