npm -v return Falha de segmentação

3

nodejs, o npm funciona bem antes . Quando eu tento atualizá-lo

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Digite npm -v e lance "Segmentation fault" . Eu reinicio o sistema e digito o mesmo comando novamente, novamente ele mostra o mesmo erro. Então, eu removi o pacote nodejs e npm do ubuntu 14.04 através do ubuntu Software Center e reinstalá-lo novamente.

Então eu tento instalar o phonegap através do pacote npm usando um comando

sudo npm install -g phonegap

Mas não retorna nenhum progresso. Então eu checo a versão npm, ele lança um erro "Falha de segmentação". Eu também tento sudo npm -v . Não retorne nada.

Então eu decido remover o npm do ubuntu 14.04 usando o comando

sudo apt-get remove npm 

Então eu digito sudo npm install -g phonegap ele não pode lançar pacote npm não está disponível.

Minha pergunta é:

  1. O pacote não está lá, então por que eu digito npm -v , ele retorna "Falha de Segmenação"
  2. Se o pacote não for removido, quando eu digitar sudo npm install -g phonegap , por que não é possível instalar o phonegap.

Ajude-me a resolver este problema. Ou forneça uma maneira de desinstalar o nodejs, o npm, o phonegap, o expressjs, o modo menos limpo e reinstalá-lo.

Editar:

Editar1:

Como resposta @ chj1axr0, o script lança um erro após a instalação do nodejs

    
por Tamil Selvan C 28.06.2015 / 04:09

2 respostas

1

Eu pesquisei e parece (para alguns) que há um bug na versão mais recente do Nodejs do software Ubuntu que causa a falha de segmentação que você está tendo

A melhor maneira de instalá-lo é obtendo o nó da fonte e compilando-o.

Eu configurei um script simples em um Githubista que cuidará disso.

#!/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" 

Certifique-se de usar sudo chmod a+x /path/to/file/install_nodejs_latest.sh para garantir que ele seja iniciado. Em seguida, use sudo sh /path/to/file/install_nodejs_latest.sh para iniciá-lo. (Deve-me correr com sudo para todos os comandos para disparar corretamente)

O script remove os antigos nodejs, npm e todos os módulos de nó.

Ele atualizará o npm no final do script.

De vez em quando, recomenda-se fazer sudo npm install -g npm (se você quiser o mais recente), porque o npm é atualizado mais rapidamente do que o nó js

depois que o script for concluído, execute npm -v e node -v Se as versões aparecerem, execute sudo npm install -g phonegap , sudo npm install -g cordova , sudo npm install -g less também se você quiser atualizar qualquer um dos módulos no futuro. fazer é instalá-lo novamente e isso substituirá o anterior. expressjs é para um aplicativo por aplicativo básico, portanto, não é recomendado instalá-lo globalmente

    
por chj1axr0 11.07.2015 / 14:53
1
  1. Tente remover com apt-get remove --purge . Talvez alguns arquivos tenham sido deixados por aqui.

  2. verifique a saída de which npm .

  3. Como você instalou o nodejs? Eu acho que a versão upstream empacota npm junto com o node, enquanto eles estão separados no ubuntu. Se você instalou o npm upstream, remover o npm com o apt acabou de mudar para o npm upstream. Se o problema é com pacotes corrompidos que o nó / npm carrega na inicialização, a comutação não irá consertá-lo. Talvez removendo todo o material nó / npm do seu sistema e começando a vontade. Quem sabe. É nó.

por user3113723 11.07.2015 / 09:37

Tags