Node Package Managerが何らかの方法で破損したため、インストールできません


13

今日npm update -g、nodejsアプリディレクトリで使用することにしたときに問題に遭遇しました。これは悪い決定でした。npmでよくある悲惨な問題に遭遇したからです。

解決策は、nodejsとnpmを再インストールすることです。残念ながら、sudo apt-get install npmそれを使用してnpmをインストールしようとするとうまくいきません。

端末の完全なエラーは次のとおりです。

Some packages could not be installed. This may mean that you have requested
an impossible situation or if you are using the unstable distribution that 
some required packages have not yet been created or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
   Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
   Depends: node-ansi but it is not going to be installed
   Depends: node-archy but it is not going to be installed
   Depends: node-block-stream but it is not going to be installed
   Depends: node-fstream (>= 0.1.22) but it is not going to be installed
   Depends: node-fstream-ignore but it is not going to be installed
   Depends: node-github-url-from-git but it is not going to be installed
   Depends: node-glob (>= 3.1.21) but it is not going to be installed
   Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
   Depends: node-inherits but it is not going to be installed
   Depends: node-ini (>= 1.1.0) but it is not going to be installed
   Depends: node-lockfile but it is not going to be installed
   Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
   Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
   Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
   Depends: node-gyp (>= 0.10.9) but it is not going to be installed
   Depends: node-nopt (>= 2.1.1) but it is not going to be installed
   Depends: node-npmlog but it is not going to be installed
   Depends: node-once but it is not going to be installed
   Depends: node-osenv but it is not going to be installed
   Depends: node-read but it is not going to be installed
   Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
   Depends: node-request (>= 2.25.0) but it is not going to be installed
   Depends: node-retry but it is not going to be installed
   Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
   Depends: node-semver (>= 2.1.0) but it is not going to be installed
   Depends: node-sha but it is not going to be installed
   Depends: node-slide but it is not going to be installed
   Depends: node-tar (>= 0.1.18) but it is not going to be installed
   Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

npmを正しくインストールして再度実行するにはどうすればよいですか?

ありがとう。

回答:


29

更新

この回答の下のWilliam Entrikenのコメントに関して、Node.jsをUbuntuにスナップパッケージとしてネイティブにインストールするより良い方法があります。

Node.jsは、現在サポートされているUbuntuのすべてのバージョンでスナップパッケージとして利用できます。Node.jsに固有の開発者は、現在サポートされている1つ以上のリリースから選択して、NodeSourceから直接定期的な自動更新を取得できます。Node.jsバージョン6、8、9、10、11、12、および13は現在利用可能で、Snap StoreはNode.jsリリースから数時間または数分以内に更新されます。

ノードは、次のような単一のコマンドでインストールできます。

sudo snap install node --classic --channel 9/stable 

ノードスナップには、次のコマンドを使用してアクセスできますnode

$ node -v  
v9.9.0

ノードスナップの一部として、npmの最新バージョンがインストールされます。npmは、通常のシェルで、ノードreplの外部で実行する必要があります。ノードスナップをインストールした後、次のコマンドを実行してnpm更新チェックを有効にします。

sudo chown -R $ USER:$(id -gn $ USER)/ home / your-username /.config

your-username上記のコマンドで自分のユーザー名に置き換え ます。次にnpm -v、npmのバージョンが最新かどうかを確認するために実行します。例として、npmが最新であることを確認し、コマンドでyarnという名前のインストール済みパッケージのバージョンを確認してから、コマンドnpm list yarnで既存のyarnパッケージを最新バージョンに更新しましたnpm update yarn

ユーザーは、nvm(ノードバージョンマネージャー)などの追加ツールを使用する必要なく、いつでもNode.jsのバージョンを切り替えることができます。例:

sudo snap refresh node --channel=8/stable

ユーザーは、Node.jsバージョン12を現在追跡している最新のエッジチャネルからインストールできる最新バージョンのNode.jsをテストできます。

sudo snap switch node --edge

このアプローチは、上流でのテストとバグ報告に参加したいユーザーにのみお勧めします。


元の答え

現在サポートされているすべてのバージョンのUbuntuにNode.jsの最新のLTSバージョン(nodejs)およびNode.jsのパッケージマネージャー(npm)をインストールするには、ターミナルを開き、次のコマンドを実行します。

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs  

これら3つのコマンドをコピーする場合、2番目のコマンドの最後にあるハイフンを無視しないでください。

nodejsパッケージには含まれていnodejsだけでなく、バイナリをnpmインストールする必要はありませんので、npm別途。ただし、一部のnpmパッケージ(ソースからのビルドが必要なパッケージなど)を機能させるには、build-essentialパッケージをインストールする必要があります。

sudo apt-get install build-essential  

LTSプラン

Node.jsの新しいsemver-majorリリースはmaster、6か月ごとに削減されます。新しい偶数バージョン(v6、v8、v10など)は4月にカットされます。新しい奇数バージョン(v5、v7、v9など)は10月にカットされます。

新しい奇数番号のメジャーリリースがカットされると、以前の偶数番号のメジャーバージョンは長期サポートプランに移行します。

LTSプランの対象となるすべてのメジャーバージョンは、LTSの対象になった日から18か月間アクティブに維持されます。18か月のアクティブサポートに続いて、メジャーバージョンはさらに12か月間「メンテナンス」モードに移行します。

非LTSインストール

2017年3月現在、Node.jsの最新の非LTSバージョン(これが投稿された時点のv8)をインストールするコマンドは次のとおりです。

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs  

Node.js LTSスケジュール

リリースLTSステータスコードネームLTS開始メンテナンス開始メンテナンス終了
6.x Active Boron 2016-10-18 2018年4月2019年4月
7.x LTSなし              
8.x Active Carbon 2017-10-31 2019年4月2019年12月
9.x LTSなし              
10.xアクティブダブニウム2018年10月2020年4月2020年4月2021年  
11.x LTSなし2019-04-01 2019-06-30
12.x 2019-10-22 2021-04-01 2022-04-01
13.x LTSなし2020-04-20 2020-06-01


私のために働いた"-y nodejsをインストールapt-getをsudoの"使用
Davinderクマール

この方法では、多くの関係者を信頼し、コンピューターへのフルアクセスをdeb.nodesource.comに与える必要があります。deb.nodesource.comは、各バージョンのWebサイトを更新してセキュリティのコンテンツハッシュを含めることさえできません。結構です!
ウィリアムエントライケン

@WilliamEntriken Node.jsは、curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -コマンドを実行する必要のないUbuntuのスナップパッケージになりました。代わりに、Node.jsをスナップパッケージとしてインストールできます。Node.jsスナップパッケージをインストールする手順を含む新しい更新セクションを回答に追加しました。
karel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.