O que pode estar causando o erro Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
?
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log
Respostas:
altere suas permissões de arquivo .. assim
verifique primeiro quem é o proprietário do diretório
está negando acesso porque a pasta node_module pertence à raiz
portanto, isso precisa ser alterado alterando-se root para seu usuário, mas primeiro execute o comando abaixo para verificar seu usuário atual Como obtenho o nome do usuário ativo através da linha de comando no OS X?
OU
whoami
então mude o dono
OU
OU
fonte
sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules
. Para listar corretamente o nome do grupo que eu fizid -gn myuser
.illegal group name
. Então mudei o comando parasudo chown -R ownerName: /usr/local/lib/node_modules
e funcionou.chown
. github.com/nvm-sh/nvmPara minimizar a chance de erros de permissão, você pode configurar o npm para usar um diretório diferente. Neste exemplo, você criará e usará um diretório oculto no seu diretório pessoal.
Faça backup do seu computador. Na linha de comandos, em seu diretório inicial, crie um diretório para instalações globais:
mkdir ~/.npm-global
Configure o npm para usar o novo caminho do diretório:
npm config set prefix '~/.npm-global'
No seu editor de texto preferido, abra ou crie um
~/.profile
arquivo e adicione esta linha:
export PATH=~/.npm-global/bin:$PATH
Na linha de comandos, atualize as variáveis do sistema:
source ~/.profile
Para testar sua nova configuração, instale um pacote globalmente sem usar o sudo
fonte
npm config set prefix
(especialmente se estiver escrevendo um instalador não raiz), pode substituir oPREFIX
env var ou fornecer a--prefix
opção, que é equivalente anpm config set prefix
. (não tenho certeza que substitui qual)Tudo que você precisa fazer é adicionar USER ao proprietário de / local / lib
fonte
chown
você corre o risco de destruir a estrutura de permissões de todo o seu sistema de arquivos.sudo chmod -R 777 /
.tente acrescentar sudo antes de qualquer comando que você esteja tentando.
assim: sudo npm install
O uso do sudo com um comando no Linux / UNIX geralmente eleva suas permissões aos níveis de superusuário. No Windows, a conta de superusuário geralmente é chamada de 'Administrador'. No Linux / Unix, a conta do superusuário geralmente é chamada de 'root'.
O usuário root tem permissão para acessar, modificar ou excluir quase qualquer arquivo no seu computador. Contas de usuário normais podem acessar, modificar ou excluir muitos menos arquivos. As restrições em uma conta normal protegem seu computador contra programas ou usuários não autorizados ou prejudiciais. Alguns processos exigem que você execute ações em arquivos ou pastas que você normalmente não tem permissão para acessar. Instalar um programa que todos possam acessar é uma dessas ações.
No seu caso, a execução do comando de instalação com o sudo fornece as permissões do superusuário e permite modificar arquivos que seu usuário normal não tem permissão para modificar.
fonte
Tentei a solução da resposta dada pelo @okanda, mas não funcionou para mim.
No entanto, funcionou perfeitamente quando fiz isso para várias pastas, como mencionado neste tópico: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493
fonte
Ao instalar pacotes globais no ubuntu , você precisa de permissões especiais de gravação enquanto escreve na
usr/bin
pasta. É por razões de segurança. Portanto, sempre que você instalar um pacote global, use:Para o seu caso específico, será:
fonte
Parece que você está tendo problemas de permissão. Se você estiver instalando
npm-packages
, é possível que você esteja recebendo umEACCES
erro ao tentar instalar um pacote globalmente. Isso significa que você não tem permissão para gravar nos diretóriosnpm
utilizados para armazenar pacotes e comandos globais.Tente executar comandos:
sudo chmod u+x -R 775 ~/.npm
esudo chown $USER -R ~/.npm
ou você pode simplesmente executar qualquernpm
comando comsudo
, que deve começar a resolver o problema.Se você estiver instalando um
npm-package
local, deve estar no diretório do projeto local e pode tentar executar osudo npm install <pkg-name>
comando para instalar o pacote necessário. o objetivo do usosudo
é alterar as permissões do proprietário para permitir que o usuário atual seja autorizado a executarnpm
comandos.Eu recomendo que você dê uma olhada em https://docs.npmjs.com/getting-started/fixing-npm-permissions
fonte
Eu estava tentando instalar o react expo e, além do sudo, tive que adicionar --unsafe-perm
como isso. Isso resolve meu problema
fonte
Se você está enfrentando esse problema no seu Mac. Siga esses passos
Primeiro, verificando quem é o proprietário deste arquivo usando o comando abaixo
você encontrará algum arquivo como abaixo um deles está abaixo
você notou que o arquivo acima é de propriedade do root, para fazer alterações internas, você precisa alterar o caminho do proprietário.
você pode usar check quem é o usuário atual por este comando
e então você pode alterar chamando este comando (basta substituir seu nome de usuário por ownerName)
no meu caso, como você sabe, o usuário é "yamsol", chamarei esse comando dessa maneira
é isso aí.
fonte
Tenha cuidado com todas as respostas que alteram o proprietário de todos os diretórios em / usr / local Basicamente, não mexa no sistema linux !!!
Eu acho que a melhor maneira é usar sua própria pasta para localizar todos os pacotes globais: https://www.competa.com/blog/how-to-run-npm-without-sudo/
fonte
Você pode instalar o npm através do gerenciador de versão do Node ou de um instalador do Node. Nos documentos afirmava:
Como você possui o erro de permissão , provavelmente instalou o npm por meio de um instalador do Node e agora precisa reinstalá-lo com um nvm (gerenciador de versão do nó).
Felizmente, isso é muito simples. Você nem precisa remover sua versão atual do npm ou Node.js.
Tudo que você precisa fazer é
Instale o nvm. Para OSX ou Linux Node, use:
Isso cria uma pasta nvm no seu diretório pessoal.
Então
Instale o npm e o node.js através do nvm. Para fazer isso, basta ligar
Agora você pode instalar o seu pacote global sem usar
sudo
ou alterar o proprietário denode_modules
nausr
pasta.fonte
fish
, a fim de funcionar corretamente, a nvm precisa de um invólucro de peixe github.com/FabioAntunes/fish-nvmUse este comando para instalar
npm
como o usuário sudo:em vez do npm, instale -g create-react-a pp.
fonte
Consegui corrigir o problema usando o seguinte no mac.
fonte
Para usuários nvm
e
substitua
v8.9.1
pela versão do nó que você está usando.fonte
sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
Parece que você tentou instalar um pacote npm globalmente, e não localmente, como
man npm install
descrito a seguir :Geralmente, quando você está configurando um projeto npm (entre muitos outros que você poderia ter), não é uma boa ideia instalar pacotes nos módulos globais do Node.js. (/ usr / local / lib / node_modules), como o log de depuração sugerido.
Em vez de usar
-g
, use--save
, que salvará automaticamente o pacote como uma dependência do seupackage.json
arquivo:Como isso:
Mas, como as outras respostas mencionadas, se você for usar
-g
, precisará usá-losudo
( se o usuário tiver privilégios de sudo: consulte / etc / sudoers ) ao executarnpm install express-generator -g
, mas, na verdade, não é uma boa ideia, possivelmente causando problemas de permissão.AVISO PRÉVIO
Existem instruções para instalar
express-generator
com a-g
opção, a fim de disponibilizar o scriptexpress-cli.js
no caminho do sistema, mas você também pode usar o script instalado localmente, localizado nonode_modules
projeto if your npm:IMHO, usar
-g
(também usarsudo
) é como dracones hic sunt , se você não tiver certeza das consequências.Para mais informações:
fonte
Isso ocorreu como resultado de
npm
não conseguir acessar seunode_modules
diretório global localmente, executandopor exemplo
corrige o problema, agora você pode executar o comando que executou novamente.
fonte
Simplesmente você pode mudar o proprietário ou simplesmente usar o sudo antes de comandar assim
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules
( mudar proprietário )ou
é isso aí.
fonte
Para linux / ubuntu se o comando
npm install -g <package_name>
Correção: instalar com permissões de root
sudo npm install <package_name> -g
fonte
Você precisa da permissão dos níveis de superusuário para instalar o React. No Linux / Unix, a conta do superusuário geralmente é chamada de 'root'.
Para obter privilégios de superusuário, execute o seguinte comando no seu terminal:
e então simplesmente execute o comando para instalar o React:
No entanto, a equipe reactjs nos incentiva a usar o seguinte comando em vez de instalar um pacote global.
fonte
create-react-app
precisam de privilégios de root, devem ser instalados como pacotes globais; caso contrário, você não poderá instalá-lo. No entanto, a equipe reactjs nos incentiva a usar o seguinte comando emnpx create-react-app app_name
vez de instalar um pacote global.sudo chown -R $ USER / usr / local / lib / node_modules
fonte
Ajudou apenas isso:
fonte
Após uma longa pesquisa, entendi que nada é necessário para o Mac OS instalar o angular cli. Basta usar
sudo npm install -g @angular/cli
o terminal e a senha será solicitada. Funcionou para mim.fonte
Semelhante à resposta de POsha, mas é isso que funcionou para mim no ubuntu 19
A partir deste link
https://github.com/inconshreveable/ngrok/issues/429
fonte
Se você estiver executando o Linux (ou seja: Arch)
Por padrão, este comando instala o pacote em / usr / lib / node_modules / npm e requer privilégios de root para fazê-lo.
Para permitir instalações em todo o usuário
Para permitir instalações globais de pacotes para o usuário atual, configure a
npm_config_prefix
variável de ambiente. Isso é usado por npm e fio.Faça login novamente ou na fonte para atualizar as alterações.
Você também pode especificar o
--prefix
parâmetro paranpm install
. No entanto, isso não é recomendado, pois você precisará adicioná-lo sempre que instalar um pacote global.Então você não precisa mostrar a permissão da pasta
fonte
Consegui me livrar desse problema instalando
nvm
e definindo o nó para a versão mais recente.nvm
usandocurl
(para a versão mais recente, vá para nvm.sh )Após seguir os comandos acima, você poderá instalar o react / angular no Ubuntu.
fonte
Use 'sudo npm install xyz', ele funcionará.
fonte
Basta adicionar "sudo" antes do comando npm. É isso aí.
fonte
Usei o sudo, mas ele não resolveu o problema. Corrigi o problema alterando a permissão da pasta node_modules,
Se desejar, você pode substituir o 777 por qualquer outro código, se não definir a permissão para todos os usuários / grupos.
fonte
Para aqueles que ainda não conseguiram resolver o problema depois de usar as soluções acima mencionadas. Tente isto
Isso deve funcionar, felicidades!
fonte