節點包管理器以某種方式損壞,現在無法安裝

節點包管理器以某種方式損壞,現在無法安裝

npm update -g今天當我決定在 Nodejs 應用程式目錄中使用時遇到了問題。這是一個錯誤的決定,因為它讓我遇到了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 作為 snap 套件本地安裝。

Node.js 在所有目前支援的 Ubuntu 版本中都以 snap 套件的形式提供。具體到 Node.js,開發人員可以從目前支援的一個或多個版本中進行選擇,並直接從 NodeSource 取得定期自動更新。 Node.js 版本 6、8、9、10、11、13、14、15、16、17 和 18 目前可用,Snap Store 在 Node.js 發布後的幾小時或幾分鐘內更新。

可以使用單一命令安裝節點,例如:

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

可以透過命令存取節點快照node,例如:

$節點-v  
v9.9.0

最新版本的 npm 將作為節點快照的一部分進行安裝。 npm 應該在正常 shell 中的節點 repl 之外運作。安裝節點快照後,執行以下命令啟用 npm 更新檢查:

sudo chown -R $USER:$(id -gn $USER) /home/您的使用者名稱/.config

代替 your-username在上面的命令中使用您自己的用戶名。然後運行npm -v檢查npm的版本是否是最新的。作為範例,我檢查了 npm 是否是最新的,使用命令檢查了已安裝的名為yarn的套件的版本npm list yarn,然後使用命令將現有的yarn套件更新到最新版本npm update yarn

使用者可以隨時在 Node.js 版本之間切換,無需涉及 nvm(Node Version Manager)等額外工具,例如:

sudo snap refresh node --channel=8/stable

使用者可以測試可從最新邊緣通道安裝的 Node.js 的前沿版本,方法是切換:

sudo snap switch node --edge

僅建議那些願意參與上游測試和錯誤報告的用戶使用此方法。


原答案

若要在所有目前支援的 Ubuntu 版本中安裝 Node.js (nodejs) 的最新 LTS 版本和 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  

如果您要複製這三個命令,請不要忽略第二個命令末尾的連字符。

nodejs軟體包包含nodejs二進位檔案以及npm,因此您無需npm單獨安裝。但是,為了使某些npm套件正常工作(例如需要從原始程式碼建置的套件),您需要安裝該build-essential套件:

sudo apt-get install build-essential  

長期支持計劃

Node.js 的新 semver-major 版本master每六個月就會被削減一次。新的偶數版本(例如 v6、v8、v10 等)在 4 月被削減。新的奇數版本(例如 v5、v7、v9)將於 10 月削減。

當新的奇數主要版本被削減時,先前的偶數主要版本將過渡到長期支持計劃。

LTS 計劃涵蓋的每個主要版本將從進入 LTS 覆蓋之日起積極維護 18 個月。在這 18 個月的積極支持之後,主要版本將過渡到「維護」模式另外 12 個月。

非 LTS 安裝

截至 2017 年 3 月,安裝最新非 LTS 版本 Node.js(發佈本文時為 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 時間表

發布 地位 代碼名稱 初始發行 長期支持開始 維護開始 維護結束
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 維護長期支持 2019-04-23 2019-10-21 2020-11-301 2022-04-30
13.x 停產 2019-10-22 2020-06-01
14.x 維護長期支持 2020-04-21 2020-10-27 2021-10-30 2023-04-30
16.x 活躍的長期支持 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

相關內容