Я столкнулся с проблемой сегодня, когда решил использовать 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?
Спасибо.
Относительно комментария 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
Новые semver-главные-версии Node.js сокращаются из master
каждые шесть месяцев. Новые четные версии (например, v6, v8, v10, и т.д.) сокращаются в апреле. Новые нечетные версии (например, v5, v7, v9) сокращаются в октябре.
Когда новая нечетная главная версия сокращается, предыдущие четные переходы основной версии к плану Долговременной поддержки.
Каждая основная версия, охваченная планом LTS, будет активно сохраняться сроком на 18 месяцев с даты, это вводит покрытие LTS. После тех 18 месяцев активной поддержки основная версия перейдет в режим "обслуживания" в течение 12 дополнительных месяцев.
Текущий до марта 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
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