У меня проблемы с npm в ящике Vagrant, который я настраиваю. Я заметил, что версия npm несколько старая, поэтому я хотел проверить проблему с последней версией.
Насколько я понимаю, вы должны иметь возможность обновлять npm с помощью npm install -g npm, но команда не влияет на используемый npm:
vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10
Я также попытался использовать n (как предложено в разделе «Как я могу обновить nodeJS до последней версии?») для обновления, но он не влияет ни на npm, ни на node:
vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$
vagrant@box:~$ sudo npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
n@1.2.9 /usr/lib/node_modules/n
vagrant@box:~$ sudo n stable
install : v0.10.33
mkdir : /usr/local/n/versions/0.10.33
fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
installed : v0.10.33
vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$ npm -v
1.3.10
Что мне нужно сделать для обновления npm до последней версии?
Вы можете обновить nodejs с помощью самой npm, PPA или вручную.
npm:
Проверьте текущую версию:
node -v
После этого очищается ваш кеш.
sudo npm cache clean -f
Установить n
sudo npm install -g n
Вы можете сказать ему, чтобы установить определенную версию следующим образом:
sudo n 0.8.11
Или просто скажите, чтобы установить последнюю стабильную версию.
sudo n stable
Чтобы проверить, действительно ли он обновлен, запустите:
node -v
npm :
[d11 ] Другой вариант - установить его через PPA с помощью chris-lea;sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Этот PPA поддерживает следующие дистрибутивы: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04) ), [10].
В ручном режиме:
Вы всегда можете обновить его вручную (12.04), Точный (12.04), Oneiric (11.10), Natty (11.04), Lucid PPA от chris-lea последняя версия и установка ее самостоятельно!
Вручную :
Обновление Node.js через NPM Основы Node.js: как обновить версию Node.js | The Holmes Office node.js: chris lea node.js - downloadsКогда вы сначала выполняете npm install -g npm, оболочка (Bash) будет искать npm в вашем пути, найдите /usr/bin/npm, установленную системным пакетом, а затем используйте его для установки новой версии npm. Новая версия будет установлена в /usr/local/bin/npm.
Теперь ваш путь должен иметь /usr/local/bin/ до /usr/bin/, поэтому вы могли бы подумать, что теперь он подберет обновленную версию в /usr/local/bin/, справа ? Неверно.
После первого раза, когда он ищет их, Bash выполнит исполняемые пути CACHE, поэтому, когда вы скажете npm во второй раз, он все еще использует кешированную версию, которую он сначала нашел как /usr/bin/npm.
Чтобы сообщить Bash, чтобы очистить этот кеш и снова просмотреть путь, вам нужно сделать hash -r.
После установки npm и при этом моя оболочка подхватила новая версия npm просто прекрасна.
Спасибо
Чтобы обновить или обновить версию вашего npm, просто введите терминал:
sudo npm install npm@latest -g
Как указано в нижнем колонтитуле Документация NPM
В большинстве случаев я не могу обновить его с помощью глобальной команды. Однако для меня работала над обновлением пакета из источника всех модулей узлов:
Узнайте, где установлена npm и перейдите в эту папку
# Below command shows the destination (remove sed pipe to see the full path of npm-cli)
whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'
# Go in there and install it manually. In my case it was the folder below...
# NOTE: on mac its in /usr/local/lib
cd /usr/lib
sudo npm install npm@latest
[d2 ] Узнайте, где установлена npm и перейдите в эту папку
cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; sudo npm install npm@latest
Любой трюк, который вы делаете, не использует Git, я рекомендую запустить их в Composer terminal. Это, безусловно, будет работать. Это сделал для меня npm install npm -g.
Чтобы обновить npm, вам нужно обновить nodejs до последней версии, которая включает в себя npm
. В debian stretch и jessie используйте этот скрипт:
#install prerequisites
apt-get install apt-transport-https curl git lsb-release -y
#Install NodeJS from external repositories
DISTRO=$(lsb_release -c -s)
if [ "$DISTRO" == "stretch" ]
then
DISTRO="jessie"
fi
if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null
then
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list
echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
apt-get update
# comment out the following line, if you installed nodejs 7 already (check with `apt-cache policy nodejs`)
apt-get remove nodejs nodejs-legacy npm
apt-get install nodejs -y
else
echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. "
fi
В Ubuntu вы можете использовать этот скрипт с https://deb.nodesource.com:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
см. Источник сначала в https://deb.nodesource.com
# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
# Then install with:
sudo apt-get install -y nodejs
Источник from nodesource.com
Я столкнулся с проблемой. Моя текущая версия npm была 3.3.12, но я попробовал sudo npm install npm -g, sudo npm update npm -g .. ничего не работало. While I npm --version Я всегда получаю 3.3.12. Я искал каталоги в своем Ubuntu 15.04 и нашел две версии npm в разных каталогах.
v3.3.12 в /usr/local/lib/node_modules/npm v3.6 в /usr/lib/node_modules/npmИтак, я сделал копию 3.3.12 с mv npm npm_3312, когда я был в старом каталоге npm. Затем я сделал sudo cp -r npm /usr/local/lib/node_modules/, когда был в каталоге / usr / lib / node_modules. Я сделал свой npm --version, и я получил 3.6.0
: D
Я не вижу причин переустанавливать что-то, что там готово, просто используйте update -g, встроенный в диспетчер пакетов, чтобы обновить себя:
$ npm -v
2.15.1
$ sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@3.10.9 /usr/local/lib/node_modules/npm
$ npm -v
3.10.9
Убедитесь, что глобальный флаг update -g находится перед пакетами. У меня были проблемы в прошлом, когда npm не регистрировал флаг после списка пакетов.