
nodejs, npm funktioniert vorher einwandfrei. WannIch versuche es zu aktualisieren
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Und tippe npm -v
, es wirft "Segmentation fault"
. Ich starte das System neu und gebe denselben Befehl erneut ein, wieder wird derselbe Fehler angezeigt. Also entferne ich nodejs und npm-Paket vonUbuntu 14.04durchUbuntu Software Centerund installieren Sie es erneut.
Dann versuche ich die Installation derTelefonlückedurch npm-Paket mit einem Befehl
sudo npm install -g phonegap
Aber es wird kein Fortschritt angezeigt. Also überprüfe ich die npm-Version und es wird der Fehler „Segmentierungsfehler“ ausgegeben. Ich versuche es auch sudo npm -v
. Es wird nichts zurückgegeben.
Also entscheide ich mich, das npm von Ubuntu 14.04 mit dem Befehl zu entfernen
sudo apt-get remove npm
Dann gebe ich ein: „ sudo npm install -g phonegap
Das NPM-Paket kann nicht ausgegeben werden, es ist nicht verfügbar.“
Meine Frage ist:
- Das Paket ist nicht da. Warum gebe ich dann ein
npm -v
, es wird „Segmentierungsfehler“ zurückgegeben? - Wenn das Paket nicht entfernt wird,
sudo npm install -g phonegap
warum kann Phonegap dann nicht installiert werden, wenn ich es eingebe?
Helfen Sie mir, dieses Problem zu lösen. Oder bieten Sie eine Möglichkeit, nodejs, npm, phonegap, expressjs oder eine weniger saubere Methode zu deinstallieren und neu zu installieren.
Bearbeiten:
Bearbeitung1:
Gemäß der Antwort von @chj1axr0 wirft das Skript nach der Installation von nodejs einen Fehler auf
Antwort1
Ich habe herumgegoogelt und es scheint (für einige), dass es einen Fehler in der neuesten Ubuntu-Softwareversion von Nodejs gibt, der den Segmentierungsfehler verursacht, den Sie haben
Die beste Möglichkeit zur Installation besteht darin, den Knoten aus der Quelle abzurufen und zu kompilieren.
Ich habe ein einfaches Skript eingerichtet aufein Github-Gistdas wird sich darum kümmern.
#!/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
Stellen Sie sicher , dass es gestartet wird, und verwenden Sie . Verwenden Sie dann sudo sh /path/to/file/install_nodejs_latest.sh
, um es zu starten. (Es muss mit sudo ausgeführt werden, damit alle Befehle korrekt ausgelöst werden.)
Das Skript entfernt die alten Node.JS, NPM und alle Node-Module.
Es wird npm am Ende des Skripts aktualisieren.
Ab und zu wird empfohlen, dies zu tun sudo npm install -g npm
(wenn Sie das Neueste wollen), da npm schneller aktualisiert wird als node js
Nachdem das Skript abgeschlossen ist, npm -v
führen node -v
Sie es aus. Wenn die Versionen angezeigt werden sudo npm install -g phonegap
, führen Sie es aus sudo npm install -g cordova
. sudo npm install -g less
Wenn Sie in Zukunft eines der Module aktualisieren möchten, müssen Sie es nur erneut installieren, wodurch das vorherige überschrieben wird.expressjsist für eine App-für-App-Basis gedacht, daher wird eine globale Installation nicht empfohlen
Antwort2
Versuchen Sie, es mit zu entfernen
apt-get remove --purge
. Möglicherweise sind einige Dateien übrig geblieben.Überprüfen Sie die Ausgabe von
which npm
.Wie haben Sie nodejs installiert? Ich glaube, die Upstream-Version packt npm zusammen mit node, während sie in Ubuntu getrennt sind. Wenn Sie Upstream-npm installiert haben, hat das Entfernen von npm mit apt Sie lediglich auf die Verwendung von Upstream-npm umgestellt. Wenn das Problem bei beschädigten Paketen liegt, die node/npm beim Start lädt, wird das Umstellen es nicht beheben. Vielleicht hilft es, alle node/npm-Sachen von Ihrem System zu entfernen und neu zu starten. Wer weiß. Es ist node.
Antwort3
Ich habe das gleiche Problem und habe es gelöst. (Mein Betriebssystem ist Ubuntu 19.4)
der Grund, warum dieses Problem auftritt, ist, dass Sie Node.js und NPM separat installiert haben.
Sie sollten also zunächst nodejs und npm entfernen.
sudo apt --auto-remove purge npm
sudo apt --auto-remove purge nodejs
und dann installieren Sie einfach nodejs
sudo apt-get install nodejs
Führen Sie abschließend die folgenden Befehle aus, um nodejs und npm zu überprüfen
node -v
npm -v
Hinweis: Da nodejs und npm zusammen gepackt sind, müssen Sie npm nicht separat installieren.