npm -v 戻りセグメンテーション違反

npm -v 戻りセグメンテーション違反

nodejs、npmは以前は問題なく動作していました。 いつアップグレードしてみる

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

と入力するnpm -vと、エラーが発生します"Segmentation fault"。システムを再起動して同じコマンドを再度入力すると、同じエラーが表示されます。そこで、nodejsとnpmパッケージを削除します。ウブントゥ 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 phonegapnpm パッケージが利用できないというエラーがスローされます。

ノード

私の質問は次のとおりです:

  1. パッケージが存在しないのに、なぜ入力するとnpm -v「セグメンテーション違反」が返されるのか
  2. パッケージが削除されない場合、入力するとsudo npm install -g phonegap、なぜ PhoneGap をインストールできないのですか。

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

編集:

フォンギャップ

編集1:

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

ここに画像の説明を入力してください

答え1

グーグルで調べたところ、Ubuntuソフトウェアの最新バージョンのNodejsに、あなたが抱えているセグメンテーション違反を引き起こすバグがあるようです。

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

簡単なスクリプトを設定しました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 が更新されます。

時々これを行うことをお勧めしますsudo npm install -g npm(最新のものが必要な場合)。npmはnode jsよりも速くアップグレードされるためです。

スクリプトが完了したらnpm -v、を実行し、node -vバージョンがポップアップ表示されたら を実行します。また、将来的にいずれかのモジュールを更新する場合は、再度インストールするだけで、以前のものが上書きされます。sudo npm install -g phonegapsudo npm install -g cordovasudo npm install -g lessエクスプレスアプリごとに異なるため、グローバルにインストールすることは推奨されません。

答え2

  1. で削除してみてくださいapt-get remove --purge。いくつかのファイルが残っている可能性があります。

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

  3. どのように nodejs をインストールしましたか? アップストリーム バージョンは npm を node と一緒にパッケージ化していると思いますが、ubuntu では別々になっています。アップストリーム npm をインストールした場合、apt で npm を削除すると、アップストリーム npm を使用するように切り替わります。問題が起動時に node/npm がロードする破損したパッケージにある場合、切り替えても解決しません。システムからすべての node/npm を削除して、最初からやり直すと解決するかもしれません。誰にもわかりません。それは node です。

答え3

私も同じ問題を抱えていましたが、解決しました。(私の OS は Ubuntu 19.4 です)

この問題が発生する理由は、nodejs と npm を別々にインストールしたためです。

そのため、まず、nodejs と npm を削除する必要があります。

sudo apt --auto-remove purge npm
sudo apt --auto-remove purge nodejs

そしてNode.jsだけをインストールします

sudo apt-get install nodejs

最後に、nodejsとnpmをチェックするために次のコマンドを実行します。

node -v
npm -v

注: nodejs と npm は一緒にパッケージ化されているため、npm を個別にインストールする必要はありません。

関連情報