web-dev-qa-db-ja.com

npm -v return Segmentation fault

nodejs、npmは以前は正常に動作しますアップグレードしようとする

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

npm -vと入力すると、"Segmentation fault"がスローされます。システムを再起動し、同じコマンドを再度入力すると、同じエラーが表示されます。そこで、nodejsとnpmパッケージをbuntu 14.04からbuntu Software Centerを介して削除し、再インストールします。

次に、コマンドを使用してnpmパッケージでphonegapをインストールしようとします

Sudo npm install -g phonegap

ただし、進捗は返されません。だから私はnpmのバージョンを確認し、それはエラー「セグメンテーションフォールト」をスローします。 Sudo npm -vも試してみます。何も返しません。

だから私はコマンドを使用してubuntu 14.04からnpmを削除することにしました

Sudo apt-get remove npm 

次に、Sudo npm install -g phonegapと入力しますが、npmパッケージは使用できません。

Nodejs

私の質問は:

  1. パッケージが存在しないため、「npm -v」と入力すると、「Segmenatation Fault」が返されます
  2. パッケージが削除されない場合、Sudo npm install -g phonegapと入力すると、なぜphonegapをインストールできません。

この問題を解決するのを手伝ってください。または、nodejs、npm、phonegap、expressjsをアンインストールする方法を提供します。

編集:

Phonegap

編集1:

@ chj1axr0の回答によると、スクリプトはnodejsのインストール後にエラーをスローします

enter image description here

6
Tamil Selvan C

私はグーグルで調べましたが、Nodejsの最新のUbuntuソフトウェアバージョンにバグがあり、あなたが持っているセグメンテーションフォールトを引き起こしているようです

インストールする最良の方法は、ソースからノードを取得してコンパイルすることです。

Github Gist で簡単なスクリプトをセットアップしました。

#!/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を更新します。

Npmはノードjsよりも高速にアップグレードするため、時々Sudo npm install -g npm(最新のものが必要な場合)を実行することをお勧めします

スクリプトの完了後、npm -vおよびnode -vを実行します。バージョンがポップアップする場合は、Sudo npm install -g phonegapSudo npm install -g cordovaSudo npm install -g lessを実行します。将来、モジュールを再度インストールするだけで、前のモジュールが上書きされます。 expressjs はアプリベースのアプリ用であるため、グローバルにインストールすることは推奨されません

2
chj1axr0
  1. apt-get remove --purgeで削除してみてください。いくつかのファイルが残っているかもしれません。

  2. which npmの出力を確認してください。

  3. Nodejsをどのようにインストールしましたか?アップストリームバージョンは、ノードとともにnpmをパッケージ化するのに対し、ubuntuでは別のものだと思います。アップストリームnpmをインストールした場合、aptでnpmを削除すると、アップストリームnpmを使用するようになりました。 node/npmが起動時にロードする破損したパッケージに問題がある場合、切り替えは修正されません。たぶんあなたのシステムからすべてのnode/npmのものを削除して、新しい意志を始めます。知るか。ノードです。

1
user3113723

私は同じ問題を抱えて解決しました。(私のOSは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を個別にインストールする必要はありません。

0