Ответ 1
Ваша установка node использует системные каталоги. Использовать sudo при использовании -g
sudo npm install -g --verbose coffee-script opal
У меня есть эта ошибка при попытке установить кофе 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
Ваша установка node использует системные каталоги. Использовать sudo при использовании -g
sudo npm install -g --verbose coffee-script opal
Вы можете chown
NPM bin
указать свое имя пользователя с помощью этого одного лайнера для решения этой проблемы:
$ chown -R `whoami` `npm -g bin`
ah, используя следующую команду:
npm -g bin
он выводит что-то вроде этого:
/usr/bin # this is the folder nodejs wanted to write..
то вы можете chmod
или chown
, чтобы он мог быть записан для установки.
У меня была аналогичная проблема в Модули 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
Была аналогичная проблема. Оказывается, у меня было что-то в каталоге project/node_modules
, установленном с помощью sudo
. В моем случае это были некоторые из зависимостей И ТАКЖЕ .bin
. Я удалил эти плохие каталоги, а затем снова запустил npm install
, и это удалось. Я также переустановил глобальный транспортир и phantomjs, но не уверен, что это было необходимо. Я уверен, что это был плохой (т.е. Корневой) каталог .bin
, вызывающий это.