Eu tenho tentado executar uma instalação npm no meu arquivo package.json, mas estou tendo muitos problemas. Ele continua dizendo "Erro: tentativa de desbloquear XXX, que não foi bloqueado" em todas as minhas dependências. Aqui está um deles:
Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
at Object.oncomplete (fs.js:107:15)
Se eu tentar executá-lo como sudo, ele parecerá mais longe e começará a instalar alguns pacotes, mas alguns novos erros aparecerão:
> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
node.js:811
var cwd = process.cwd();
^
Error: EACCES, permission denied
at Function.startup.resolveArgv0 (node.js:811:23)
at startup (node.js:58:13)
at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'
Atualizei recentemente minhas instalações de nó e npm. Então, talvez isso tenha algo a ver com isso. Além disso, a maior parte do meu desenvolvimento foi no escritório e hoje estou trabalhando com VPN, então talvez isso tenha algo a ver com isso também.
Alguma ideia?
node.js
npm
karma-runner
TJ Kirchner
fonte
fonte
Respostas:
Conforme photusenigma em: https://github.com/npm/npm/issues/4815
Execute estes comandos em uma janela de terminal (nota - NÃO substitua a parte $ USER ... é um comando linux para obter o seu usuário!):
... e ... se você estiver em um Mac (como eu sou) e ainda encontrar erros após executar esses comandos, execute este último e você deve ser bom. (Recomenda-se que você teste antes de executar este. Não gosto de alterar as permissões no diretório INTEIRO / usr / local, a menos que pareça realmente necessário!)
fonte
sudo chown -R `whoami` /usr/lib/node_modules/
chown
não alterou as permissões~/.npm/_locks
para mim. Eu tenho o meu trabalhando executando #sudo chown -R myname ~/.npm/_locks
sudo chown -R $USER /usr/local/lib/node_modules
? Corri-lo antes de ler que não é uma boa idéia ..Trabalhei com um colega de trabalho esta tarde e descobri qual era o problema. Minha pasta ".npm" no meu diretório pessoal era de propriedade do usuário root e não de mim mesma. Não sei ao certo o que aconteceu com isso. Talvez eu tenha instalado o nó ou o npm como administrador raiz em um ponto. De qualquer forma, acabei de executar
sudo chown -R [username] .npm
e finalmente consegui executarnpm install
comandos dos meus projetos novamente!fonte
~/tmp/
ou em qualquer local que o Node use como local temporário.No meu caso, o problema estava chamando o npm com um usuário que não possui um diretório HOME; portanto, por exemplo, o seguinte comando falharia:
A solução é fornecer um diretório HOME, onde
someUser
tenha acesso de gravação:fonte
sudo -u someUser -i
, o que inicia um novo shell de logon. Eu examinei isso um pouco mais e o código de cache no npm usa a variável npm.cache, que eu acho que é o padrão$HOME/.npm/
. O sudo também pode ter um comportamento diferente com o que a variável HOME é definida, dependendo da configuração e da presença ou ausência de opções de linha de comando.Teve o mesmo problema e o corrigiu alterando as persmissões conforme a resposta aceita:
No entanto, o segundo comando deve ser evitado, pois diminui as permissões de um recurso do sistema (
sudo chown -R $USER /usr/local/lib/node_modules
). Não é uma boa ideia.Para o registro: "usr"
/usr/local
significa Recursos do sistema Unix .fonte
Nada disso funcionou para mim. Eu tive que executar literalmente como root, fazendo o seguinte:
Em seguida, o pacote instalado no Linux Ubuntu 14.04.
fonte
O comando a seguir deve corrigir problemas de permissão:
Você pode ler sobre outras soluções oficialmente recomendadas aqui:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
fonte
Minha solução:
no meu caso foi:
Mas eu estava tendo o mesmo problema, finalmente depois
funcionou !
fonte
Eu tive o mesmo problema e tentei corrigir a permissão / propriedade de arquivos e diretórios relacionados ao npm por horas, mas não tive sorte com isso.
De repente, descobri que tinha um
~/.npmrc
arquivo com acache
entrada apontando para um diretório inexistente. Removida essacache
propriedade para usar o local padrão do cache e agora está resolvida.fonte
aviso Legal
Eu sou um usuário do Windows . No entanto, eu e minha equipe deparamos com vários problemas relacionados a erros de instalação do npm.
Problemas
A seguir, é apresentada uma lista de lições aprendidas e uma possível solução radical que sempre nos resgatou:
Ative os registros npm para obter mais informações sobre possíveis problemas com:
npm install --loglevel verbose
Radical
Instale o rimraf globalmente
Execute rimraf em node_modules :
Em seguida, tente executar:
Aviso!
Ou falta lá. Seja extremamente cuidadoso com o que segue o comando
rimraf
. Não há avisos, avisos, não há nada. Ele simplesmente apaga o diretório da fase da terra limpa, como se nunca estivesse lá. Tente por sua conta e risco.fonte