nodejs, npm fonctionne bien avant. Quand j'essaye de le mettre à jour
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
Et tapez npm -v
, il jette "Segmentation fault"
. Je redémarre le système et je tape une même commande à nouveau, à nouveau, il affiche la même erreur. Donc, je retire les paquets nodejs et npm de buntu 14.04 à travers buntu Software Center et le réinstalle à nouveau.
Ensuite, j'essaie d'installer le package phonegap via npm à l'aide d'une commande
Sudo npm install -g phonegap
Mais cela ne rapporte aucun progrès. Je vérifie donc la version de npm, une erreur "Erreur de segmentation" est générée. J'essaie aussi Sudo npm -v
. Cela ne retourne rien.
J'ai donc décidé de supprimer le npm d'ubuntu 14.04 à l'aide de la commande
Sudo apt-get remove npm
Puis je tape Sudo npm install -g phonegap
il ne peut pas lancer le paquet npm n’est pas disponible.
Ma question est:
npm -v
, il retourne "Faute de séparation"Sudo npm install -g phonegap
, pourquoi il ne peut pas installer phonegap.Aidez-moi à résoudre ce problème. Ou fournissez un moyen de désinstaller les nodejs, npm, phonegap, expressjs, de manière moins propre et de le réinstaller.
Edit:
Edit1:
Selon la réponse @ chj1axr0, le script génère une erreur après l'installation de nodejs
J'ai cherché sur Google et il semble (pour certains) qu'il y ait un bogue dans la dernière version du logiciel Ubuntu de Nodejs qui cause la faute de segmentation que vous rencontrez.
La meilleure façon de l'installer est d'obtenir le noeud de la source et de le compiler.
J'ai installé un script simple sur n Github Gist qui s'en occupera.
#!/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"
Assurez-vous et utilisez Sudo chmod a+x /path/to/file/install_nodejs_latest.sh
pour vous assurer qu'il démarrera. Ensuite, utilisez Sudo sh /path/to/file/install_nodejs_latest.sh
pour le démarrer. (Il me faut courir avec Sudo pour que toutes les commandes se déclenchent correctement)
Le script supprime les anciens noeuds nodejs, npm et tous les modules de noeud.
Il mettra à jour npm à la fin du script.
De temps en temps, il est recommandé de faire Sudo npm install -g npm
(si vous voulez la dernière version) car npm est mis à niveau plus rapidement que le noeud js
une fois le script terminé, exécutez npm -v
et node -v
. Si les versions s'affichent, exécutez Sudo npm install -g phonegap
, Sudo npm install -g cordova
, Sudo npm install -g less
également si vous souhaitez mettre à jour l'un des modules à l'avenir, il vous suffit de l'installer à nouveau, ce qui remplacera le précédent. . expressjs est pour une application par bases d'applications, il n'est donc pas recommandé de l'installer globalement
Essayez de supprimer avec apt-get remove --purge
. Peut-être que certains fichiers ont été laissés autour.
vérifiez la sortie de which npm
.
Comment avez-vous installé nodejs? Je pense que la version amont associe npm avec node, alors qu’elles sont séparées dans Ubuntu. Si vous avez installé npm en amont, supprimer npm avec apt vient de passer à l’utilisation de npm en amont. Si le problème concerne des packages corrompus que le nœud/npm charge au démarrage, le changement ne le résout pas. Supprimez peut-être tous les éléments node/npm de votre système et démarrez un nouveau testament. Qui sait. C'est le noeud.