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
它不能抛出 npm 包不可用。
我的问题是:
- 该包不存在,那么为什么我输入时
npm -v
,它返回“Segmenatation Fault” - 如果没有删除包,那么当我输入时
sudo npm install -g phonegap
,为什么无法安装 phonegap。
帮我解决这个问题。或者提供一种方法来卸载 nodejs、npm、phonegap、expressjs,或者使用不太干净的方法重新安装。
编辑:
编辑1:
根据@chj1axr0的回答,脚本在nodejs安装后抛出错误
答案1
我在 Google 上搜索了一下,似乎(对某些人来说)最新的 Ubuntu 软件版本的 Nodejs 中有一个错误,导致了你遇到的分段错误
安装它的最佳方法是从源代码获取节点并进行编译。
我已经设置了一个简单的脚本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 和所有 node 模块。
它将在脚本末尾更新 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 加载的损坏包,切换将无法解决问题。也许从你的系统中删除所有 node/npm 内容并重新开始会解决。谁知道呢。这是节点。
答案3
我有同样的问题并解决了它。(我的操作系统是 ubuntu 19.4)
出现此问题的原因是您分别安装了 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。