EBUSY при отсоединении от "npm install -g oauthd"
Итак, у меня есть открытая проблема в репозитории oauthd: Проблема, но активность в их списке проблем выглядит очень спорадической.
Я пытаюсь выполнить "npm install -g oauthd" из оболочки MINGW32.
Консоль говорит мне, что я делаю это неправильно.
abates@MACHINE /c/dev/tools
$ npm -v
1.4.28
abates@MACHINE /c/dev/tools
$ npm install -g oauthd
npm ERR! Error: EBUSY, unlink 'C:\Users\abates\AppData\Roaming\npm\node_modules\
oauthd\node_modules\hiredis'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodej
s\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "oauthd"
npm ERR! cwd c:\dev\tools
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! path C:\Users\abates\AppData\Roaming\npm\node_modules\oauthd\node_modul
es\hiredis
npm ERR! code EBUSY
npm ERR! errno 10
abates@MACHINE /c/dev/tools
$
Я не смог найти никакой полезной информации об ошибке "EBUSY, unlink...", которая, похоже, вызвала сбой.
1 ответ
Чтобы устранить ошибку "EBUSY, unlink...", я обновил диспетчер пакетов узла до версии 2.1.6. Состояние гонки было устранено
Проверьте свой путь.
Удостоверься что
C:\<install location of node>
загружает до
\user\<user>\AppData\npm
$ cd C:\<install location of node>
$npm install npm@2.1.6
$npm -v
2.1.6
$npm install oauthd -g
\
редактировать
Обратите внимание, что для моей конкретной задачи установки (oauthd) существуют зависимости от hiredis и dtrace-провайдера, которые не удается собрать на моей машине.
Я догадываюсь, что он игнорирует наличие MSBuild.exe в PATH и пытается загрузить мое местоположение MSBuild непосредственно из реестра, но описания ошибок не приводят к следующему естественному шагу, кроме проб и ошибок.
С этим: Докер на помощь.
docker@boot2docker:~$ docker run -d --name redis - p 6379:6379 dockerfile/redis
docker@boot2docker:~$ docker run -d --name oauthd -p 443:443 -p 6284:6284 -e oauthd_host_url=http://auth.domain:6284 --link redis:redis vinc/oauthd-instance
работает как чемпион. Если вы не используете докер, вы делаете это неправильно.