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

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

今日、Node.jsアプリディレクトリでの使用を決めた際に問題が発生しましたnpm update -g。これは悪い決断でした。npm のよくある悲惨な問題

解決策は、nodejs と npm を再インストールすることです。残念ながら、それを使用して npm をインストールしようとするとsudo apt-get install 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 を適切にインストールして再度実行するにはどうすればよいでしょうか?

ありがとう。

答え1

アップデート

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

Node.js は、現在サポートされているすべての Ubuntu バージョンでスナップ パッケージとして利用できます。Node.js に特化して、開発者は現在サポートされているリリースの 1 つ以上から選択し、NodeSource から直接定期的に自動更新を受けることができます。現在、Node.js バージョン 6、8、9、10、11、13、14、15、16、17、18 が利用可能で、Snap Store は Node.js リリースから数時間または数分以内に更新されます。

Node は 1 つのコマンドでインストールできます。例:

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

ノード スナップnodeには、次のコマンドでアクセスできます。

$ノード -v  
バージョン9.9.0

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

sudo chown -R $USER:$(id -gn $USER) /home/あなたのユーザーネーム.config ファイル

交換する your-username上記のコマンドに自分のユーザー名を入力してください。次に、npm -vnpmのバージョンが最新かどうかを確認します。例として、npmが最新であることを確認し、コマンドですでにインストールされているyarnというパッケージのバージョンを確認しnpm list yarn、コマンドで既存のyarnパッケージを最新バージョンに更新しました。npm update yarn

ユーザーは、nvm (Node Version Manager) などの追加ツールを使用せずに、いつでも Node.js のバージョンを切り替えることができます。次に例を示します。

sudo snap refresh node --channel=8/stable

ユーザーは、次の方法で切り替えることで、最新のエッジ チャネルからインストールできる Node.js の最新バージョンをテストできます。

sudo snap switch node --edge

このアプローチは、アップストリームのテストとバグ報告に参加する意思のあるユーザーにのみ推奨されます。


元の回答

現在サポートされているすべてのバージョンの Ubuntu に最新の LTS バージョンの Node.js (nodejs) と Package manager for 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含まれているため、別途インストールする必要はありません。ただし、一部のパッケージ (ソースからのビルドが必要なパッケージなど) を動作させるには、パッケージをインストールする必要があります。nodejsnpmnpmnpmbuild-essential

sudo apt-get install build-essential  

LTSプラン

Node.js の新しい semver メジャー リリースはmaster6 か月ごとにリリースされます。新しい偶数バージョン (例: 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 開始 メンテナンス開始 メンテナンス終了
6.x 終了 ボロン 2016-04-26 2016-10-18 2018-04-30 2019-04-30
7.x 終了 2017-05-30 2017-06-30
8.x 終了 炭素 2016-10-25 2017-10-31 2019-01-01 2019-12-31
9.x 終了 2017-10-01 2018-06-30
10.x 終了 ドブニウム 2018-04-24 2018-10-30 2020-05-19 2021-04-30
11.x 終了 2018-10-23 2019-06-01
12.x メンテナンス LTS エルビウム 2019-04-23 2019-10-21 2020-11-301 2022-04-30
13.x 終了 2019-10-22 2020-06-01
14.x メンテナンス LTS フェルミウム 2020-04-21 2020-10-27 2021-10-30 2023-04-30
16.x アクティブLTS ガリウム 2021-04-20 2021-10-26 2022-10-18 2024-04-30
17.x 現在 2021-10-19 2022-04-01 2022-06-01
18.x 現在 2022-04-19 2022-10-25 2023-10-18 2025-04-30

関連情報