
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 недоступен».
Мой вопрос:
- Пакета нет, тогда почему я печатаю
npm -v
, он возвращает «Ошибка сегментации» - Если пакет не удалить, то когда я ввожу
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
Попробуйте удалить с помощью
apt-get remove --purge
. Возможно, какие-то файлы остались.проверьте вывод
which npm
.Как вы установили 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 отдельно.