快速預(yù)覽:
要在 linux 安裝如下依賴,安裝成功但是顯示命令 not found
- 安裝 nodejs
- 安裝 npm
- 安裝 cnpm
- 安裝 http-server
正文開始:
因為買了新電腦,nodejs 等環(huán)境要重新裝
安裝 nodejs 的時候遇到個問題,即,可以使用 apt 安裝 nodejs,但是 npm 沒有
解決辦法:
# 下載
wget https://nodejs.org/dist/v14.4.0/node-v14.4.0-linux-x64.tar.xz
# 解壓 到 local 文件夾
tar -xf node-v14.4.0-linux-x64.tar.xz /usr/local
# 進入 local,移動文件夾
cd /usr/local/
sudo mv node-v14.4.0-linux-x64/ nodejs
# 建立連接
sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin
# sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin
# 測試
node -v
npm -v
如果執(zhí)行
npm -v報錯為Cannot find module ‘semver’,則面的步驟重新來
同樣,cnpm 安裝也是類似的方式:
# 使用 npm 安裝 cnpm
npm install cnpm -g --registry=https://registry.npm.taobao.org
# 會顯示安裝路徑 /usr/local/nodejs/bin/cnpm -> /usr/local/nodejs/lib/node_modules/cnpm/bin/cnpm
# 建立軟連接
sudo ln -s /usr/local/nodejs/lib/node_modules/cnpm/bin/cnpm /usr/local/bin/cnpm
# 測試
cnpm -v
# cnpm@6.1.1 (/usr/local/nodejs/lib/node_modules/cnpm/lib/parse_argv.js)
同理,安裝 http-server 也是一樣的問題
sudo npm install -g http-server
# /usr/local/nodejs/bin/http-server -> /usr/local/nodejs/lib/node_modules/http-server/bin/http-server
# 建立連接
sudo ln -s /usr/local/nodejs/lib/node_modules/http-server/bin/http-server /usr/local/bin/http-server
# 測試
http-server
其他:
若執(zhí)行 sudo xxx 命令報錯
sudo: xxx command not found
則可能要排查 sudo 相關(guān)的問題,因為可能安裝某個 xxx 依賴的時候沒有使用 sudo ,但是執(zhí)行的時候需要使用 sudo,從而導(dǎo)致系列問題
以我遇到的問題為例,解決辦法:
# 安裝 tarojs
cnpm install -g @tarojs/cli
# taro 創(chuàng)建項目
taro init demo
# 報錯為 permission denied,所以我加上 sudo
sudo taro init demo
# 報錯為 sudo: taro command not found
# 解決辦法:
# 找到 taro 的位置
which taro
# /usr/local/nodejs/bin/taro
# 編輯 /etc/sudoers
sudo vi /etc/sudoers
# 找到 secure_path 在最后加上 :/usr/local/nodejs/bin
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# 結(jié)果為
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/nodejs/bin"
# 驗證是否成功
# 關(guān)掉 bash 再次打開
# 執(zhí)行
sudo taro init demo
# 沒有報 permission 錯誤,創(chuàng)建模板成功
參考資料: