Короче...
Во-первых, почему npm предполагает, что он должен работать только как не-root? Я очень не верю, что каждый другой менеджер пакетов (apt
, yum
, gem
, pacman
) ошибочен для запроса sudo.
Во-вторых, когда я следую их предложению (и запускаю npm install
как не-root), он не будет работать (потому что у него нет прав на /usr/local/lib ). Как я следую их предложению? Я не собираюсь chown -R $USER /usr/local/lib
, потому что это кажется мне очень плохой идеей.
Полное описание...
Я установил npm через curl http://npmjs.org/install.sh | sudo sh
(инструкция в их README).
Когда я запускаю sudo npm install mongoose
, npm говорит мне не запускать его как root:
npm ERR! sudon't!
npm ERR! sudon't! Running npm as root is not recommended!
npm ERR! sudon't! Seriously, don't do this!
npm ERR! sudon't!
Но когда я запускаю npm install mongoose
без sudo, я получаю следующее:
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info fetch http://registry.npmjs.org/mongoose/-/mongoose-1.0.7.tgz
npm info calculating sha1 /tmp/npm-1297199132405/1297199132406-0.7044695958029479/tmp.tgz
npm info shasum b3573930a22066fbf3ab745a79329d5eae75b8ae
npm ERR! Could not create /usr/local/lib/node/.npm/.cache/mongoose/1.0.7/package.tgz
npm ERR! Failed creating the tarball.
npm ERR! This is very rare. Perhaps the 'gzip' or 'tar' configs
npm ERR! are set improperly?
npm ERR!
npm ERR! couldn't pack /tmp/npm-1297199132405/1297199132406-0.7044695958029479/contents/package to /usr/local/lib/node/.npm/.cache/mongoose/1.0.7/package.tgz
npm ERR! Error installing [email protected]
npm ERR! Error: EACCES, Permission denied '/usr/local/lib/node/.npm/.cache/mongoose'
npm ERR! There appear to be some permission problems
npm ERR! See the section on 'Permission Errors' at
npm ERR! http://github.com/isaacs/npm#readme
npm ERR! This will get better in the future, I promise.
npm not ok
Итак, это говорит мне, что я не должен использовать sudo, а затем не работает, если я последую их предложению.
Это приводит к моим первоначальным вопросам выше.