
nodejs, npm 之前工作正常。什麼時候我嘗試升級它
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
並鍵入npm -v
,它拋出"Segmentation fault"
。我重新啟動系統並再次輸入相同的命令,再次顯示相同的錯誤。所以我從中刪除了nodejs和npm包ubuntu 14.04透過ubuntu軟體中心並再次重新安裝。
然後我嘗試安裝音位間隙使用命令透過 npm 包
sudo npm install -g phonegap
但它不會返回任何進展。所以我檢查了 npm 版本,它拋出一個錯誤「分段錯誤」。我也嘗試一下sudo npm -v
。它什麼也不返回。
所以我決定使用命令從 ubuntu 14.04 中刪除 npm
sudo apt-get remove npm
然後我輸入sudo npm install -g phonegap
it can't throw npm package is not available。
我的問題是:
- 包不存在,那麼為什麼我輸入
npm -v
,它返回“分段錯誤” - 如果軟體包沒有刪除,那麼當我輸入時
sudo npm install -g phonegap
,為什麼它無法安裝phonegap。
幫我解決這個問題。或提供一種卸載nodejs、npm、phonegap、expressjs、less clean方式並重新安裝的方法。
編輯:
編輯1:
根據 @chj1axr0 的回答,腳本在安裝 nodejs 後拋出錯誤
答案1
我用谷歌搜尋了一下,似乎(對於某些人來說)Nodejs 的最新 Ubuntu 軟體版本中存在一個錯誤,導致您遇到分段錯誤
安裝它的最佳方法是從原始程式碼獲取節點並編譯它。
我已經設定了一個簡單的腳本Github 要點那會解決它的。
#!/bin/sh
# Update System
echo "System Update"
apt-get -y update
echo "Update completed"
# Installing the applications needed to build Nodejs
apt-get -y install libssl-dev git-core pkg-config build-essential curl gcc g++ checkinstall
# Download & Unpack Node.js - v7.3.0
echo "Download Node.js - v7.3.0"
mkdir /tmp/node-install
cd /tmp/node-install
wget https://nodejs.org/dist/latest/node-v7.3.0.tar.gz
tar -zxf node-v7.3.0.tar.gz
echo "Node.js download & unpack completed"
# Install Node.js
echo "Compiling and installing Node.js"
cd node-v7.3.0
./configure && make && checkinstall --install=yes --pkgname=nodejs --pkgversion "7.3.0" --default
echo "Node.js install completed! Deleting The /tmp files"
rm -rf /tmp/node-install
echo "If you have made it this far in the script with no errors popping up all is well have a good day"
確保並使用sudo chmod a+x /path/to/file/install_nodejs_latest.sh
以確保它會啟動。然後使用sudo sh /path/to/file/install_nodejs_latest.sh
它來啟動它。 (我必須使用 sudo 運行才能正確觸發所有命令)
該腳本刪除舊的nodejs、npm 和所有節點模組。
它將在腳本末尾更新 npm。
建議每隔一段時間就這樣做sudo npm install -g npm
(如果你想要最新的),因為 npm 的升級速度比 Node js 更快
腳本完成後運行npm -v
,node -v
如果彈出版本,則運行sudo npm install -g phonegap
,sudo npm install -g cordova
如果sudo npm install -g less
您想在將來更新任何模組,您所要做的就是再次安裝它,這將覆蓋先前的模組。快遞適用於應用程式基礎的應用程序,因此不建議全域安裝它
答案2
嘗試用 刪除
apt-get remove --purge
。也許有些文件被遺漏了。檢查 的輸出
which npm
。你是如何安裝nodejs的?我認為上游版本將 npm 與 node 一起打包,而它們在 ubuntu 中是分開的。如果您安裝了上游 npm,則使用 apt 刪除 npm 只是將您切換為使用上游 npm。如果問題出在 node/npm 在啟動時載入的損壞的包,則切換無法修復它。也許從你的系統中刪除所有節點/npm 的東西並開始新的意願。誰知道。是節點。
答案3
我有同樣的問題並解決了。
出現這個問題的原因是你分別安裝了nodejs和npm。
所以首先,你應該刪除nodejs和npm。
sudo apt --auto-remove purge npm
sudo apt --auto-remove purge nodejs
然後只安裝nodejs
sudo apt-get install nodejs
最後,執行以下命令來檢查nodejs和npm
node -v
npm -v
注意:因為nodejs和npm是打包在一起的。您不需要單獨安裝 npm。