Estou tentando instalar globalmente um módulo npm que acabei de publicar. Sempre que tento instalar, a partir do npm ou da pasta, recebo esse erro.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Estou usando o sudo e verifiquei três vezes tudo no pacote, tudo deve funcionar. Pesquisei ao redor e vi alguns casos de simulação, nenhum dos quais foi resolvido. Aqui está o que eu tentei.
- Atualizar npm (
sudo npm install -g npm
) - Limpe o cache npm global (
sudo npm cache clear
) - Limpe o cache npm do usuário (
npm cache clear
)
Notei que o erro tinha a ver com o arquivo que estou vinculando ao caminho, especificamente quando o npm tentou fazer um chmod. Isso não deveria ser um problema, meulib/cli.js
possui permissões normais e o npm possui permissões de superusuário durante esta instalação.
Depois de pesquisar nos documentos do npm, encontrei uma opção que impediria o npm de criar os links bin (--no-bin-links
); quando tentei instalar com ele, funcionou bem.
Então, qual é o problema? Isso é algum bug estranho de franja que ainda não tem solução?
Edit: Para referência, aqui está o módulo que eu enviei
--no-bin-links
apenas interrompe o npm de vincular arquivos no bin
hash do package.json ao caminho na instalação global.