
今日、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 -v
npmのバージョンが最新かどうかを確認します。例として、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
含まれているため、別途インストールする必要はありません。ただし、一部のパッケージ (ソースからのビルドが必要なパッケージなど) を動作させるには、パッケージをインストールする必要があります。nodejs
npm
npm
npm
build-essential
sudo apt-get install build-essential
LTSプラン
Node.js の新しい semver メジャー リリースは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 開始 | メンテナンス開始 | メンテナンス終了 |
---|---|---|---|---|---|---|
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 |