Ответ 1
Это решило проблему для меня:
sudo chown -R `whoami` ~/.node/lib/node_modules/bower/
npm install -g bower
bower -v
1.3.12
Вам не нужно запускать npm install как sudo.
Т заранее заблаговременно за любую помощь, которую я могу получить.
Я пытаюсь установить такие пакеты, как grunt, bower и yoman, используя nodejs и NPM в моем Mac OSX 10.8.
Я проверяю версии node и NPM, чтобы убедиться, что они установлены правильно и обнаружили, что это правда. Однако, когда я начинаю запускать команду для установки пакета, такого как беседка, используя следующее:
npm install -g bower
Я получаю различные ошибки. Я пытаюсь избежать использования команды sudo. Я попытался использовать sudo, но потом получил бы ответ "команда не найдена". У меня есть ощущение, что пакеты могут быть не в правильных папках или каталогах, но я не понимаю, что делать дальше.
Для справки это ошибки, которые я получаю:
npm ERR! Error: EACCES, unlink '/Users/myname/.node/lib/node_modules/bower/.editorconfig'
npm ERR! { [Error: EACCES, unlink '/Users/myname/.node/lib/node_modules/bower/.editorconfig']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/myname/.node/lib/node_modules/bower/.editorconfig' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 12.5.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "bower"
npm ERR! cwd /Users/myname
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! path /Users/myname/.node/lib/node_modules/bower/.editorconfig
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/Users/myname/.node/lib/node_modules/bower/.editorconfig'
npm ERR! error rolling back Error: EACCES, unlink '/Users/myname/.node/lib/node_modules/bower /.editorconfig'
npm ERR! error rolling back { [Error: EACCES, unlink '/Users/myname/.node/lib/node_modules/bower/.editorconfig']
npm ERR! error rolling back errno: 3,
npm ERR! error rolling back code: 'EACCES',
npm ERR! error rolling back path: '/Users/myname/.node/lib/node_modules/bower/.editorconfig' }
npm ERR! not ok code 0
В целях конфиденциальности я заменил свое имя прокси myname на пути. Более того, эта проблема сохраняется, когда я пытаюсь установить хрюканье и йоман.
При дальнейшем осмотре я заметил, что у меня две папки. Один из названных "пользователей" и одно имя "usr". Внутри "пользователей" я вижу папку с именем node_modules. Тем не менее, в 'usr/local/lib/node_modules/npm/node_modules' я заметил, что нет файлов беседы, ворчания или йомана. Это просто предположение, но файлы не установлены должным образом в нужные папки для их запуска в npm?
Любая помощь или ввод будет чрезвычайно оценена!
Для ссылки на людей я попробовал команду sudo, чтобы увидеть, будет ли она работать, и она отображает следующее:
/Users/myname/.node/bin/bower -> /Users/myname/.node/lib/node_modules/bower/bin/bower
[email protected] /Users/myname/.node/lib/node_modules/bower
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], strip- [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], tough-cook[email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
================================ Однако вышеизложенное не является правильным решением. Когда я пытаюсь запустить проверку, чтобы проверить, установлена ли беседка, например, набрав bower -v или bower -version или любую другую команду bower, я получаю команду "не найдена". Что происходит?
Итак, ничто из того, что я до сих пор не пробовал, дало мне возможность запускать команду "npm install -g bower". Из любопытства, как я уже упоминал ранее, я запустил команду sudo npm install -g bower, которая появилась для установки беседки. Тем не менее, при наборе команд любой команды bower по-прежнему появляется команда "command not found". При попытке команды sudo bower приводит к тому, что команда тоже не найдена. Что я не понимаю, так это то, что когда я запускаю команду "npm ls", чтобы посмотреть, что установлен NPM, у меня есть список следующих установленных пакетов. Вам не нужно читать список, так как он длинный, но обратите внимание на то, как первый элемент выглядит на грани. Если это правда, и это означает, что беседа была фактически установлена npm, почему поэтому команды лайнера не работают?
/Users/myname.
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ └── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ └── [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
└─┬ [email protected]
└── [email protected]
Это решило проблему для меня:
sudo chown -R `whoami` ~/.node/lib/node_modules/bower/
npm install -g bower
bower -v
1.3.12
Вам не нужно запускать npm install как sudo.
Это сработало для меня:
Я в основном предоставил свои права на доступ к указанному выше директорию сразу после этого → stack Error: EACCES, unlink...
, в вашем случае это будет что-то вроде sudo chown -R USERNAME /Users/myname/
.
Для людей, которые не знакомы с этим, не забудьте изменить USERNAME в приведенной выше команде с вашим собственным, если вы не знаете свое имя пользователя, просто запустите whoami
, чтобы получить его.
После этого вы можете установить любой пакет без, чтобы использовать sudo, npm install -g SomePackage
.
Запустите глобальную (-g) установку как admin.
> sudo npm install -g bower
Вы получили эту ошибку -
npm ERR! Please try running this command again as root/Administrator.
***** UPDATE НИЖЕ *****
Проверьте, установлен ли он и получите версию
> bower -v
Возможно, вы не сможете увидеть беседу, потому что он установлен как администратор. Попробуйте получить номер версии, запустив
> sudo bower -v
Теперь вы должны увидеть номер версии.
Соблюдайте пакет с chown
> cd /Users/<username>/.npm
> chown <username> bower*
Я лично беру на себя все права в каталоге /Users/. Это ваш каталог, а не глобальный.
> chown <username> *
***** ОБНОВЛЕНИЕ 2 НИЖЕ *****
Похоже, это проблема PATH. Вы видите каталог npm в PATH при вводе
> echo $PATH
Я использую MacPorts, поэтому npm и node устанавливаются в каталогах /opt/local/bin и/opt/local/sbin. Я сделал быструю проверку в сети, и похоже, что вы должны иметь следующий /usr/local/bin, если вы установили пакет с сайта node.
Ознакомьтесь с в этой статье об установке node (особенно в части PATH.
Эта ссылка также ссылается на в этой статье о том, как изменить свой PATH.
Надеюсь, что это поможет.
У меня возникли подобные проблемы при попытке установить подставку через NPM.
Я не эксперт по этому вопросу, но был уверен, что он был связан с $PATH и нашел 2 статьи, которые в комбинации исправили это для меня отлично.
Во-первых, это дан Дэн Хэрберт: https://gist.github.com/DanHerbert/9520689
Дэн говорит
"Если вы являетесь пользователем Mac Homebrew и вы установили node через Homebrew, существует серьезная философская проблема с тем, как Homebrew и NPM работать вместе. Если вы установите node с Homebrew, а затем попытаетесь сделать npm update npm -g, вы увидите такую ошибку:"
Ошибка, которую он показывает, очень похожа на вашу исходную ошибку.
Его решение состоит в том, чтобы переустановить node, но чтобы убедиться, что NPM не установлен через homebrew, поскольку он говорит:
npm - это собственный менеджер пакетов, и поэтому лучше иметь npm управлять собой и его пакетами вместо того, чтобы позволять Homebrew это делает. Кроме того, с использованием версии для начинающих npm требуется sudo для установки глобальных пакетов. Это тоже очень плохая идея.
Он говорит, чтобы удалить node, а затем переустановить его со следующими командами:
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.org/install.sh | sh
И затем, чтобы закончить с
export PATH="$HOME/.node/bin:$PATH"
Это работало для меня и исправляло все мои проблемы. Мне удалось запустить "npm install -g bower", не получив сообщение об ошибке.
Наконец, прежде чем я сделал шаги выше, я хотел убедиться, что я полностью удалил node и npm. Для этого я выполнил следующие шаги из вопроса stackoverflow 11177954, в частности, из ответа Доминика Танкреди, который говорит:
Напомним, лучший способ (я нашел) полностью удалить node + npm заключается в следующем:
- перейдите в /usr/local/lib и удалите любые node и node_modules
- перейдите в /usr/local/include и удалите все node и node_modules каталог
- если вы установили с помощью brew install node, затем запустите brew удалить node в ваш терминал
- проверьте свой домашний каталог для любых локальных или lib или включенных папок и удалите из него node или node_modules
- перейдите в /usr/local/bin и удалите исполняемый файл node. Возможно, вам понадобится выполнить Дополнительные инструкции:
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
Я надеюсь, что это поможет кому-то: -)
У меня была аналогичная проблема с моим mac. Я решил сделать следующее.
вам нужно chmod и изменить разрешение файла для всех файлов внутри /Users//. config/configstore/
должен работать нормально после этого. Пользователям Mac, возможно, придется переключиться на root, используя su, которые они должны включить из системных настроек перед запуском команды chmod.