Node O Gerenciador de Pacotes foi corrompido de alguma forma, agora não pode ser instalado

11

Encontrei um problema hoje quando decidi usar npm update -g em um diretório de aplicativo do nodejs. Essa foi uma decisão ruim, porque me levou a um problema comum e desastroso com o npm .

A solução é reinstalar o nodejs e o npm. Infelizmente quando vou instalar o npm usando sudo apt-get install npm ele não funciona.

O erro completo no terminal está aqui:

Some packages could not be installed. This may mean that you have requested
an impossible situation or if you are using the unstable distribution that 
some required packages have not yet been created or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
   Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
   Depends: node-ansi but it is not going to be installed
   Depends: node-archy but it is not going to be installed
   Depends: node-block-stream but it is not going to be installed
   Depends: node-fstream (>= 0.1.22) but it is not going to be installed
   Depends: node-fstream-ignore but it is not going to be installed
   Depends: node-github-url-from-git but it is not going to be installed
   Depends: node-glob (>= 3.1.21) but it is not going to be installed
   Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
   Depends: node-inherits but it is not going to be installed
   Depends: node-ini (>= 1.1.0) but it is not going to be installed
   Depends: node-lockfile but it is not going to be installed
   Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
   Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
   Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
   Depends: node-gyp (>= 0.10.9) but it is not going to be installed
   Depends: node-nopt (>= 2.1.1) but it is not going to be installed
   Depends: node-npmlog but it is not going to be installed
   Depends: node-once but it is not going to be installed
   Depends: node-osenv but it is not going to be installed
   Depends: node-read but it is not going to be installed
   Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
   Depends: node-request (>= 2.25.0) but it is not going to be installed
   Depends: node-retry but it is not going to be installed
   Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
   Depends: node-semver (>= 2.1.0) but it is not going to be installed
   Depends: node-sha but it is not going to be installed
   Depends: node-slide but it is not going to be installed
   Depends: node-tar (>= 0.1.18) but it is not going to be installed
   Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

O que posso fazer para instalar e executar o npm corretamente?

Obrigado.

    
por Zach Cook 21.05.2015 / 07:57

1 resposta

22

Atualizar

Em relação ao comentário do Full Decent abaixo desta resposta, existe uma maneira melhor de instalar o Node.js nativamente no Ubuntu como um pacote de snap.

O Node.js está disponível como um pacote instantâneo em todas as versões atualmente suportadas do Ubuntu. Específicos para o Node.js, os desenvolvedores podem escolher uma das versões atualmente suportadas e obter atualizações automáticas regulares diretamente do NodeSource. As versões 6, 8 e 9 do Node.js estão atualmente disponíveis, com o Snap Store sendo atualizado em questão de horas ou minutos de uma versão do Node.js.

O nó pode ser instalado com um único comando, por exemplo:

sudo snap install node --classic --channel 9/stable 

O snap a nó pode ser acessado pelo comando node , por exemplo:

$ node -v  
v9.9.0

Uma versão atualizada do npm será instalada como parte do snap ao nó. npm deve ser executado fora da replicação do nó, no seu shell normal. Depois de instalar o snap do nó, execute o seguinte comando para ativar a verificação de atualização do npm:

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

Substitua your-username no comando acima por seu próprio nome de usuário. Em seguida, execute npm -v para verificar se a versão do npm está atualizada. Como exemplo, verifiquei que o npm estava atualizado, verifiquei a versão de um pacote já instalado chamado yarn com o comando npm list yarn e atualizei o pacote de fios existente para a versão mais recente com o comando npm update yarn

Os usuários podem alternar entre as versões do Node.js a qualquer momento sem precisar envolver ferramentas adicionais como o nvm (Node Version Manager), por exemplo:

sudo snap refresh node --channel=8/stable

Os usuários podem testar as versões mais avançadas do Node.js que podem ser instaladas a partir do canal de borda mais recente, que atualmente está acompanhando o trabalho de desenvolvimento do Node.js versão 10, alternando com:

sudo snap switch node --edge

Essa abordagem é recomendada apenas para aqueles usuários que desejam participar de testes e relatórios de erros do desenvolvedor.

Resposta original

Para instalar as versões mais recentes do Node.js (nodejs) e do Gerenciador de Pacotes do Node.js (npm) em todas as versões suportadas do Ubuntu, abra o terminal e execute os seguintes comandos:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs  

Se você estiver copiando esses três comandos, não negligencie o hífen no final do segundo comando.

O pacote nodejs contém o binário nodejs , bem como npm , portanto, você não precisa instalar npm separadamente. No entanto, para que alguns pacotes de npm funcionem (como aqueles que exigem compilar a partir do código-fonte), você precisará instalar o pacote build-essential :

sudo apt-get install build-essential  

Plano LTS

Novas versões semver-principais do Node.js são cortadas de master a cada seis meses. Novas versões pares (por exemplo, v6, v8, v10, etc.) são cortadas em abril. Novas versões com números ímpares (por exemplo, v5, v7, v9) são cortadas em outubro.

Quando um novo lançamento principal com numeração ímpar é cortado, a versão principal anterior com numeração par é transferida para o plano de Suporte a longo prazo.

Todas as principais versões abrangidas pelo plano LTS serão mantidas ativamente por um período de 18 meses a partir da data em que ele entrar na cobertura LTS. Após esses 18 meses de suporte ativo, a versão principal passará para o modo "manutenção" por mais 12 meses.

instalação não-LTS

De março até março de 2017, os comandos para instalar a última versão não-LTS do Node.js (v8 no momento em que foi publicado) são os seguintes:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs  

Agenda LTS do Node.js

Release LTS Status  Codename    LTS Start       Maintenance Start Maintenance End
6.x     Active      Boron       2016-10-18      April 2018        April 2019
7.x     No LTS              
8.x     Active      Carbon      2017-10-31      April 2019        December 2019
9.x     No LTS              
10.x    Active      Dubnium     October 2018    April 2020        April 2021  
11.x    No LTS                                                    June 2019
    
por karel 21.05.2015 / 08:12

Tags