falha na verificação da atualização npm

14

Na verdade, eu estava tentando instalar o nodejs junto com o npm no meu ubuntu 17.04. baixei a versão do linux do nodejs.org e criei o soft link para o node e o nodejs. ao verificar a versão do nodejs, ele mostra a versão que eu instalei e estou bem com isso.

agora eu tentei fazer o mesmo por npm. Eu tentei criar um link suave para o NPM.

 sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm 
    /usr/bin/npm

Não sei se o link que criei está correto ou não. mas ao executar o npm -vcomando, vejo a versão 5.0.3, que é o que estou tentando instalar. a versão é mostrada, mas logo abaixo dela vejo algo parecido com isto.

5.0.3
npm update check failed                 │
│           Try running with sudo or get access           │
│          to the local update config store via           │
│ sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config 
sagar limbu
fonte
Você sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configrecomendou?
George Udosen
Se você estiver usando o Docker, verifique se o sistema de arquivos é somente leitura. Deve ser gravável.
Константин Ван

Respostas:

14

Minha versão do npm é 5.0.3 e tenho o mesmo problema quando uso qualquer comando npm:

mensagem de erro npm

O comando está funcionando bem, mas esse código continua aparecendo sem motivo aparente. Atualizei de 5.0.3 para 5.2.0 com estes comandos:

sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config

npm install -g npmou npm i -g npm.

Agora o npm está funcionando bem.

Arpit
fonte
Trabalhou para mim. Embora, eu tive que atualizar npmcomo root com sudo npm i -g npm. Atualizado npm para 6.0.1
Denialos
3

Exatamente o mesmo problema para mim, mas não parece relacionado à versão (estou usando o npm 5.5.1). A correção dos direitos ~/.configfez o truque para mim:

sudo chown -R $USER:$(id -gn $USER) ~/.config

Eu acho que isso está relacionado a algum problema com o proprietário ~/.config/configstore/update-notifier-npm.json.

Anto
fonte
1

Eu tinha trocado de dono

~/configstore

e

~/configstore/update-notifier-npm.json

para $ USER: $ USER.

Meu palpite é que rodar npmcom o sudo criou esse arquivo. No meu sistema, pelo menos, encontramos o seguinte:

$ env | grep  -e HOME= -e "^USER="
USER=craig
HOME=/home/craig

$ sudo env | grep  -e HOME= -e "^USER="
HOME=/home/craig
USER=root

Portanto, se sudo npmfor codificado para criar, ~/configstore/update-notifier-npm.jsonele fará o diretório inicial do usuário comum. Isso cria um problema ao ser executado posteriormente npmsem o sudoqual também deseja ler e talvez escrever ~/configstore/update-notifier-npm.json. Por algum motivo, as permissões são 600 em ambos.

Seja cauteloso ao chowne chmod-ing tudo sob ~/.config, pode haver algo sensível lá.

Craig Hicks
fonte
1

Por favor, não use o chowncomando fornecido na mensagem de erro. O caminho ~/.configé usado por muitos aplicativos e é um caminho padrão para armazenar informações de configuração. Não é recomendável alterar os direitos do grupo lá. Melhor apenas alterar o caminho necessário, como:

sudo chown -R $USER ~/.config/configstore

Caso especial: Docker

Um caso comum para obter esse erro é usar algo como o Docker (especialmente montando sua própria casa). Considere definir as variáveis ​​de ambiente como NPM_CONFIG_CACHEe XDG_CONFIG_HOME. O primeiro define o caminho do cache e o último está definindo o caminho do configstore. Eu não usaria a .configpasta no diretório inicial para evitar problemas com a propriedade do arquivo. Mas o uso do cache ajuda serviços como o NPM a economizar largura de banda. Tente evitar downloads excessivos em todas as versões e use algo assim (mas verifique se o destino /tmppossui espaço em disco suficiente):

test -d /tmp/$USER/cache || mkdir -p /tmp/$USER/cache
docker run \
  -v /tmp/$USER:/tmp/$USER \
  -e "NPM_CONFIG_CACHE=/tmp/$USER/cache/npm" \
  -e "XDG_CONFIG_HOME=/tmp/$USER/cache/" \
  ...
Trendfischer
fonte
0

Bem, a primeira coisa que podemos fazer para resolver esses problemas é

  1. Marque uma opção na configuração da pasta para ver os arquivos ocultos.
  2. Clique com o botão direito do mouse no arquivo .config, selecione propriedades e clique na guia permissões.
  3. Permissões na pasta e permissões de arquivo para o grupo | proprietário | outros marcam as opções de leitura, gravação e execução.
  4. Na parte inferior, clique em Aplicar permissões aos arquivos anexados.
  5. Agora tente executar novamente os mesmos comandos npm em que você estava vendo essas mensagens e agora elas devem desaparecer para sempre.

Se isso ajudou você a saber o que fazer.

Nota: O mesmo procedimento também pode ser aplicado apenas ao configstore na pasta .config.

Raju
fonte