npm -v возвращает ошибку сегментации

npm -v возвращает ошибку сегментации

nodejs, npm раньше работал нормально. КогдаЯ пытаюсь его обновить.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

И введите npm -v, он выдает "Segmentation fault". Я перезапускаю систему и снова ввожу ту же команду, снова показывает ту же ошибку. Поэтому я удаляю nodejs и пакет npm изубунту 14.04черезЦентр программного обеспечения Ubuntuи переустановите его снова.

Затем я пытаюсь установитьтелефонный разрывчерез пакет npm с помощью команды

sudo npm install -g phonegap

Но он не возвращает никакого прогресса. Поэтому я проверяю версию npm, она выдает ошибку "Segmentation fault". Я также пробую sudo npm -v. Она ничего не возвращает.

Поэтому я решил удалить npm из Ubuntu 14.04 с помощью команды

sudo apt-get remove npm 

Затем я набираю sudo npm install -g phonegap«не могу выдать пакет npm недоступен».

Nodejs

Мой вопрос:

  1. Пакета нет, тогда почему я печатаю npm -v, он возвращает «Ошибка сегментации»
  2. Если пакет не удалить, то когда я ввожу sudo npm install -g phonegap, почему не удаётся установить PhoneGap.

Помогите мне решить эту проблему. Или предоставьте способ деинсталляции nodejs, npm, phonegap, expressjs, less clean way и переустановки.

Редактировать:

Телефонный разрыв

Редактировать1:

Согласно ответу @chj1axr0, скрипт выдает ошибку после установки nodejs

введите описание изображения здесь

решение1

Я погуглил, и, похоже (некоторым), в последней версии программного обеспечения Ubuntu Nodejs есть ошибка, которая вызывает ошибку сегментации, которая у вас есть.

Лучший способ установки — получить Node из исходного кода и скомпилировать его.

Я настроил простой скрипт насуть Githubкоторый об этом позаботится.

#!/bin/sh
# Update System
echo "System Update"
apt-get -y update
echo "Update completed"
# Installing the applications needed to build Nodejs
apt-get -y install libssl-dev git-core pkg-config build-essential curl gcc g++ checkinstall
# Download & Unpack Node.js - v7.3.0
echo "Download Node.js - v7.3.0"
mkdir /tmp/node-install
cd /tmp/node-install
wget https://nodejs.org/dist/latest/node-v7.3.0.tar.gz
tar -zxf node-v7.3.0.tar.gz
echo "Node.js download & unpack completed"
# Install Node.js
echo "Compiling and installing Node.js"
cd node-v7.3.0
./configure && make && checkinstall --install=yes --pkgname=nodejs --pkgversion "7.3.0" --default
echo "Node.js install completed! Deleting The /tmp files"
rm -rf /tmp/node-install
echo "If you have made it this far in the script with no errors popping up all is well have a good day" 

Убедитесь и используйте, sudo chmod a+x /path/to/file/install_nodejs_latest.shчтобы убедиться, что он запустится. Затем используйте, sudo sh /path/to/file/install_nodejs_latest.shчтобы запустить его. (Он должен быть запущен с sudo, чтобы все команды сработали правильно)

Скрипт удаляет старые nodejs, npm и все модули node.

В конце скрипта будет обновлен npm.

Время от времени рекомендуется делать это sudo npm install -g npm(если вы хотите последнюю версию), поскольку npm обновляется быстрее, чем node js.

после завершения скрипта запустите его npm -v, и node -vесли появятся версии, запустите sudo npm install -g phonegap, также sudo npm install -g cordova, sudo npm install -g lessесли вы захотите обновить какой-либо из модулей в будущем, все, что вам нужно будет сделать, это установить его снова, и это заменит предыдущий.expressjsпредназначен для приложений, созданных на основе приложений, поэтому не рекомендуется устанавливать его глобально.

решение2

  1. Попробуйте удалить с помощью apt-get remove --purge. Возможно, какие-то файлы остались.

  2. проверьте вывод which npm.

  3. Как вы установили nodejs? Я думаю, что upstream-версия упаковывает npm вместе с node, тогда как в ubuntu они отделены. Если вы установили upstream npm, удаление npm с помощью apt просто переключило вас на использование upstream npm. Если проблема в поврежденных пакетах, которые node/npm загружает при запуске, переключение не исправит ее. Может быть, удаление всего содержимого node/npm из вашей системы и запуск новой версии исправит. Кто знает. Это node.

решение3

У меня была та же проблема, и я ее решил. (Моя ОС — Ubuntu 19.4)

Причина возникновения этой проблемы в том, что вы установили nodejs и npm по отдельности.

Итак, для начала вам следует удалить nodejs и npm.

sudo apt --auto-remove purge npm
sudo apt --auto-remove purge nodejs

а затем установить только nodejs

sudo apt-get install nodejs

Наконец, выполните следующие команды для проверки nodejs и npm

node -v
npm -v

Примечание: поскольку nodejs и npm упакованы вместе, вам не нужно устанавливать npm отдельно.

Связанный контент