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

93

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

    
задан Oliver Salzburg 17.12.2014 в 10:39
источник

10 ответов

111

Я все еще не понимаю why , но мне нужно запустить 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
    
ответ дан Oliver Salzburg 17.12.2014 в 11:31
источник
32

Вы можете обновить 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

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), Точный (12.04), Oneiric (11.10), Natty (11.04), Lucid (10.04).

Вручную

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

Ссылка

ответ дан blade19899 17.12.2014 в 11:38
источник
23

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

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

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

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

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

Спасибо

    
ответ дан Asfand Qazi 14.02.2015 в 12:54
источник
13

Обновление NPM до последней версии с помощью одной команды

Чтобы обновить или обновить версию вашего npm, просто введите терминал:

sudo npm install npm@latest -g

Как указано в нижнем колонтитуле документации NPM

    
ответ дан Jonatas Eduardo Salgado 02.04.2016 в 19:53
источник
12

В большинстве случаев я не могу обновить его с помощью глобальной команды. Однако для меня работала над обновлением пакета из источника всех узлов-модулей системы:

Узнайте, где установлена ​​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...
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
    
ответ дан proxylittle 05.03.2015 в 15:20
источник
1

Любой трюк, который вы делаете, не использует Git , я рекомендую запустить их в Composer terminal . Это, безусловно, будет работать. Это сделало для меня npm install npm -g .

    
ответ дан Gildas Niyigena 14.01.2016 в 19:58
источник
1

Чтобы обновить 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 этот сценарий можно использовать с Ссылка :

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

сначала обратитесь к первому источнику: Ссылка

    
ответ дан rubo77 21.01.2017 в 21:33
источник
0

обновление до 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

Источник from nodesource.com

    
ответ дан Rémi B. 13.07.2015 в 12:04
источник
0

Я столкнулся с проблемой. Моя текущая версия 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     

ответ дан Ariful Haque 29.01.2016 в 10:47
источник
0

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

    
ответ дан SmujMaiku 28.10.2016 в 19:06
источник

Ознакомьтесь с другими вопросами по меткам