Как вы обновляете npm до последней версии?

У меня проблемы с npm в ящике бродяги я настраиваю. Я заметил, что 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 до последней версии?

10 ответов

Решение

Я до сих пор не понимаю, почему, но я должен бежать npm install -g 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
vagrant@box:~$ sudo npm install -g npm
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/lib/node_modules/npm
vagrant@box:~$ npm -v
2.1.12

Когда вы впервые делаете npm install -g npmОболочка (Bash) будет искать npm на вашем пути, найти /usr/bin/npm установленным системным пакетом, а затем используйте его для установки новой версии npm, Новая версия будет установлена ​​в /usr/local/bin/npm,

Теперь ваш путь должен иметь /usr/local/bin/ ДО /usr/bin/, так что вы бы подумали, что теперь подберут обновленную версию в /usr/local/bin/, право? Неправильно.

Bash будет кэшировать исполняемые пути после первого поиска, поэтому, когда вы говорите, npm во второй раз он все еще использует кэшированную версию, которую он впервые нашел как /usr/bin/npm,

Чтобы сказать Bash очистить этот кеш и снова просмотреть путь, вы должны сделать hash -r,

После установки npm и делая это, моя оболочка подобрала новую версию npm просто хорошо.

Спасибо

Вы можете обновить nodejs, используя сам npm, PPA или вручную.

нпм:

Проверьте текущую версию у вас есть:

node -v

Следующее очищает ваш кеш.

sudo npm cache clean -f

устанавливать n

sudo npm install -g n

Вы можете сказать ему установить конкретную версию следующим образом:

sudo n 0.8.11

Или просто скажите, чтобы установить последнюю стабильную версию. Оба могут занять некоторое время.

sudo n stable

Чтобы увидеть, действительно ли он обновился, запустите:

node -v

PPA:

Другой вариант - установить его через 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), Quantal (12.10), Precise (12.04), Oneiric (11.10), Natty (11.04), Lucid (10.04).

Вручную:

Вы всегда можете обновить его, вручную загрузив последнюю версию и установив ее самостоятельно!


Ссылка:

Обновите 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

Вот могучий лайнер для всех (особенно для ленивых)

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://github.com/nodesource/distributions/blob/master/deb/setup_7.x

Я не вижу смысла переустанавливать что-то, что готово там, просто используйте 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

Убедитесь, что глобальный флаг -g стоит перед пакетами. В прошлом у меня были проблемы с тем, что npm не регистрирует флаг после списка пакетов.

обновление до nodejs v0.12.7

 # 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

Источник от nodeource.com

Я столкнулся с проблемой. Моя текущая версия npm была 3.3.12 но я пытался sudo npm install npm -g, sudo npm update npm -g.. ничего не получалось.. пока я 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

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