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