Node Package Manager каким-то образом поврежден, теперь его нельзя установить

Я столкнулся с проблемой сегодня, когда решил использовать 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?

Спасибо.

13
задан 21 May 2015 в 08:57

1 ответ

Обновление

Относительно комментария William Entriken ниже этого ответа существует лучший способ установить Node.js исходно в Ubuntu как поспешный пакет.

Node.js доступен как поспешный пакет во всех в настоящее время поддерживаемых версиях Ubuntu. Характерный для Node.js, разработчики могут выбрать из одного или нескольких в настоящее время поддерживаемых версий и получить регулярные автоматические обновления непосредственно от NodeSource. Версии 6, 8, 9, 10, 11, 12 и 13 Node.js в настоящее время доступны, при этом Поспешное Хранилище обновляется в течение часов или минут выпуска 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 был актуален, проверил версию уже установленного пакета, названного пряжей с командой npm list yarn и затем обновленный существующий пакет пряжи к последней версии с командой npm update yarn

Пользователи могут переключиться между версиями Node.js в любое время, не будучи должен включить дополнительные инструменты как nvm (менеджер по Версии узла), например:

sudo snap refresh node --channel=8/stable

Пользователи могут протестировать новейшие версии Node.js, который может быть установлен от последнего граничного канала, который в настоящее время отслеживает версию 12 Node.js путем переключения с:

sudo snap switch node --edge

Этот подход только рекомендуется для тех пользователей, которые готовы участвовать в тестировании и создании отчетов ошибки в восходящем направлении.


Исходный ответ

Для установки последних версий LTS Node.js (nodejs) и Диспетчера пакетов для Node.js (npm) во всех в настоящее время поддерживаемых версиях Ubuntu откройте терминал и выполните следующие команды:

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  

План LTS

Новые semver-главные-версии Node.js сокращаются из master каждые шесть месяцев. Новые четные версии (например, v6, v8, v10, и т.д.) сокращаются в апреле. Новые нечетные версии (например, v5, v7, v9) сокращаются в октябре.

Когда новая нечетная главная версия сокращается, предыдущие четные переходы основной версии к плану Долговременной поддержки.

Каждая основная версия, охваченная планом LTS, будет активно сохраняться сроком на 18 месяцев с даты, это вводит покрытие LTS. После тех 18 месяцев активной поддержки основная версия перейдет в режим "обслуживания" в течение 12 дополнительных месяцев.

установка non-LTS

Текущий до марта 2017 команды для установки последней non-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

Release LTS Status  Codename    LTS Start       Maintenance Start Maintenance End
6.x     Active      Boron       2016-10-18      April 2018        April 2019
7.x     No LTS              
8.x     Active      Carbon      2017-10-31      April 2019        December 2019
9.x     No LTS              
10.x    Active      Dubnium     October 2018    April 2020        April 2021  
11.x    No LTS                                  2019-04-01        2019-06-30
12.x                            2019-10-22      2021-04-01        2022-04-01
13.x    No LTS                                  2020-04-20        2020-06-01
29
ответ дан 21 May 2015 в 08:57

Другие вопросы по тегам:

Похожие вопросы: