
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 phonegap
npm パッケージが利用できないというエラーがスローされます。
私の質問は次のとおりです:
- パッケージが存在しないのに、なぜ入力すると
npm -v
「セグメンテーション違反」が返されるのか - パッケージが削除されない場合、入力すると
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 phonegap
sudo npm install -g cordova
sudo npm install -g less
エクスプレスアプリごとに異なるため、グローバルにインストールすることは推奨されません。
答え2
で削除してみてください
apt-get remove --purge
。いくつかのファイルが残っている可能性があります。の出力を確認してください
which npm
。どのように 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 を個別にインストールする必要はありません。