На этот вопрос уже есть ответ здесь:
У меня проблемы с 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
или узел
:
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 до последней версии?
Я все еще не понимаю , почему , но я должен работать 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
Можно обновить 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), Надежный человек (14.04), Дерзкий (13.10), Полный нетерпения (13.04), Quantal (12.10), Точный (12.04), Сновещательный (11.10), Аккуратный (11.04), Lucid (10.04).
Вручную :
можно всегда обновлять его вручную загрузка последняя версия и установка его сами!
<час>Ссылка :
, Чтобы обновить или обновить версию Вашего 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, и 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
Я сталкивался с проблемой. Моя текущая npm версия была 3.3.12
, но я попробовал sudo npm install npm -g
, sudo npm update npm -g
.. ничто не работало.. в то время как я npm --version
я всегда добираюсь 3.3.12
. Я искал каталоги в своей Ubuntu 15.04 и нашел две версии npm в другом каталоге.
/usr/local/lib/node_modules/npm
/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
# 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
Я не вижу оснований для переустановки чего-то, что готово там, просто используйте -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, не регистрирующим флаг после списка пакета.
Когда Вы сначала делаете npm install -g npm
, оболочка (Bash) будет искать npm
в Вашем пути найти /usr/bin/npm
установленный системным пакетом, и затем используют его для установки новой версии npm
. Новая версия будет установлена в /usr/local/bin/npm
.
Теперь, Ваш путь должен иметь /usr/local/bin/
ПРЕЖДЕ /usr/bin/
, таким образом, Вы думали бы, что это теперь возьмет обновленную версию в /usr/local/bin/
, право? Неправильно.
Bash будет КЭШИРОВАТЬ исполняемые пути после первого раза, когда он ищет их, поэтому когда Вы говорите npm
в 2-й раз это все еще использует кэшированную версию, которую это сначала нашло как /usr/bin/npm
.
Чтобы сказать Bash очищать этот кэш и просматривать путь снова, необходимо сделать a hash -r
.
После установки npm
и делая это, моя оболочка взяла новую версию npm
очень хорошо.
Спасибо