Подтвердить что ты не робот

Ошибка NPM при установке в глобальном масштабе, даже если каталоги доступны для записи

У меня есть эта ошибка при попытке установить кофе script с помощью этой команды:

npm install -g --verbose coffee-script opal

это сообщение об ошибке:

npm ERR! Error: EACCES, symlink '../lib/node_modules/coffee-script/bin/coffee'
npm ERR!  { [Error: EACCES, symlink '../lib/node_modules/coffee-script/bin/coffee']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '../lib/node_modules/coffee-script/bin/coffee' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm info postuninstall [email protected]
npm ERR! Error: EACCES, symlink '../lib/node_modules/opal/bin/opal-node'
npm ERR!  { [Error: EACCES, symlink '../lib/node_modules/opal/bin/opal-node']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '../lib/node_modules/opal/bin/opal-node' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

папка/usr/local/bin и /usr/local/lib/ node_modules принадлежат и записываются текущим пользователем, и я не хочу запускать эту команду npm с помощью root, как узнать, в какой папке npm попытался сделать символическую ссылку?

Я использую npm 1.2.9-1chl1 ~ quantal1 и nodejs 0.8.19-1chl1 ~ quantal1

4b9b3361

Ответ 1

Ваша установка node использует системные каталоги. Использовать sudo при использовании -g

sudo npm install -g --verbose coffee-script opal

Ответ 2

Вы можете chown NPM bin указать свое имя пользователя с помощью этого одного лайнера для решения этой проблемы:

$ chown -R `whoami` `npm -g bin`

Ответ 3

ah, используя следующую команду:

npm -g bin

он выводит что-то вроде этого:

/usr/bin # this is the folder nodejs wanted to write..

то вы можете chmod или chown, чтобы он мог быть записан для установки.

Ответ 4

У меня была аналогичная проблема в Модули NPM не будут устанавливаться глобально без sudo, проблема заключалась в том, что , когда я установил node, я сделал это с sudo через chris/lea ppa repo.

Моим решением было удалить node, а затем установить его следующим образом:

Загрузите последние стабильные источники node from nodejs.org # в моем случае node -v0.10.20.tar.gz

tar -zxf node -v0.10.20.tar.gz #uncompress sources

cd node -v0.10.20 #enter несжатая папка

sudo chown $USER -R/usr/local

./configure --prefix =/usr/local && & & make && make install

PD: Если вы не хотите изменять право собственности на/usr/локальную папку, вы можете установить ее где-нибудь, у вас уже есть. Проблема такого подхода заключается в том, что вам придется привязать папку установки с командной строкой bash, чтобы мы могли использовать команду node позже в

mkdir ~/opt

./configure --prefix = ~/opt && & make && make install

echo 'export PATH = ~/opt/bin: ${PATH}' → ~/.bashrС#or ~/.profile или ~/.bash_profile или ~/.zshenv в зависимости от текущей Оперативной системы

При любом из этих подходов вы сможете сделать следующее без использования sudo

npm install -g --verbose coffee- script opal

Ответ 5

Была аналогичная проблема. Оказывается, у меня было что-то в каталоге project/node_modules, установленном с помощью sudo. В моем случае это были некоторые из зависимостей И ТАКЖЕ .bin. Я удалил эти плохие каталоги, а затем снова запустил npm install, и это удалось. Я также переустановил глобальный транспортир и phantomjs, но не уверен, что это было необходимо. Я уверен, что это был плохой (т.е. Корневой) каталог .bin, вызывающий это.