Я пытаюсь установить последнюю версию npm, следуя инструкциям на the npm doc site.npm установка самостоятельно без зависимостей
Моя проблема заключается в том, что с помощью команды:
npm install -g npm
, чтобы получить самую последнюю версию НПМ, кажется, не работает: он, кажется, не устанавливать какие-либо из необходимых зависимостей, поэтому, когда я запускаю его я получаю ошибки, такие как:
module.js:340
throw err;
^
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/harmic/.node_modules/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
Я использую машину Centos 6, поэтому я начал устанавливать узел + НПМ из Epel, как это:
yum install nodejs npm
Все прошло хорошо. Затем я пошел устанавливать последнюю версию npm, как рекомендовано в приведенной выше ссылке и многих других страницах, которые я видел. Моя первая попытка
sudo npm install -g npm
была не столь велика, по двум причинам:
Он установлен в
/usr/lib/node_modules
, поверх первоначальной установки RPM. Я считал, что это очень плохая практика, потому что в следующий раз, когда я сделалyum update
, в системе все шансы, что новые файлы будут перезаписаны любыми входящими пакетами RPM, оставят нечестивый беспорядок.В любом случае это не сработало: я вообще не мог запустить npm, он постоянно жаловался на отсутствие зависимостей, как описано выше.
Поэтому я удалил RPM, удалил все левые файлы и снова установил RPM. На этот раз я создал ~/.npmrc
файл и поместить его в нем:
prefix = ${HOME}/.node_modules
Я также установить переменные окружения NODE_PATH включить этот путь. После этого НПМ было установить себя в моем нужном месте, но не устанавливать никаких зависимостей:
$ npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 304 https://registry.npmjs.org/npm
/home/harmic/.node_modules/bin/npm -> /home/harmic/.node_modules/lib/node_modules/npm/bin/npm-cli.js
[email protected] /home/harmic/.node_modules/lib/node_modules/npm
Запуск из нового установленного пути дал ошибку в верхней части страницы.
Несмотря на мысль, что я должен делать что-то серьезно не так, я приступил к попытке установить неудовлетворенные зависимости, по одному за раз:
npm install -g are-we-there-yet
npm install -g gauge
npm install -g os-tmpdir
npm install -g os-homedir
npm install -g is-absolute
npm install -g asap
npm install -g path-is-absolute
npm install -g builtins
npm install -g validate-npm-package-license
npm install -g concat-stream
npm install -g json-parse-helpfulerror
npm install -g readdir-scoped-modules
npm install -g debuglog
npm install -g lodash._baseclone
npm install -g lodash._bindcallback
npm install -g lodash._baseflatten
npm install -g lodash._baseuniq
...
и до сих пор жалуется на необходимости больше.
Наконец я пришел к выводу, что я должен пропустить что-то важное, поэтому я решил обратиться за помощью SO сообщества ...
В первоначально установленных версиях узла & НПХ РПХ являются:
- nodejs-0.10.36-3.el6
- npm-1.3.6-5.el6
О, и в случае, если вам интересно, почему я пытаюсь обновить НПМ в первую очередь потому, что при попытке установить this package я столкнулся с ошибкой сборки, решение, которое, по-видимому установить обновлен npm.
Избежание РПМ может быть хорошо для моей среды разработки, но он выиграл» возможно, когда дело доходит до развертывания. Я не могу ожидать, что системные администраторы будут изучать и управлять несколькими системами управления пакетами, менеджерами версий и т. Д. Но я, по крайней мере, проверю nvm для моей среды. – harmic
Но в этот момент на серверах будет их проблемой обновить версию, которая не предоставляется RPM, они могут скомпилировать;) – DevAlien