“Tentando sobrescrever '/usr/share/man/man1/node.1.gz', que também está no pacote nodejs-legacy 0.10.25 ~ dfsg2-2ubuntu1”

9

Estou tentando instalar o nodejs, mas está repetidamente falhando. Anexado é o log

$ sudo apt-get install nodejs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libc-ares2 libv8-3.14.5
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  rlwrap
The following NEW packages will be installed:
  rlwrap
The following packages will be upgraded:
  nodejs
1 upgraded, 1 newly installed, 0 to remove and 11 not upgraded.
Need to get 0 B/4,391 kB of archives.
After this operation, 14.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package rlwrap.
(Reading database ... 263979 files and directories currently installed.)
Preparing to unpack .../rlwrap_0.37-5_amd64.deb ...
Unpacking rlwrap (0.37-5) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_0.10.31-1chl1~trusty1_amd64.deb ...
Unpacking nodejs (0.10.31-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.31-1chl1~trusty1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_0.10.31-1chl1~trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Shash
fonte
você pode correr sudo apt-get updatee sudo apt-get upgrade?
Charles Green
@CharlesGreen Eu poderia fazê-lo funcionar. Eu já respondi minha pergunta.
Shash

Respostas:

10

Potencialmente corrigindo a instalação

Como Charles disse nos comentários, eu tentaria correr sudo apt-get updatee sudo apt-get upgrade. Você também pode executar sudo apt-get autoremovepara remover pacotes que não são mais necessários.

O erro menciona o nodejs-legacypacote. Se você já instalou isso, remova-o.

Uma maneira melhor de instalar o Node no Ubuntu

A menos que você esteja planejando usar o computador como servidor de produção, recomendo fortemente a instalação do Node.js usando a ferramenta NVM . A instalação a partir do repositório requer que você use sudo, o que leva a permissões confusas quando você tenta instalar os módulos Node usando o NPM.

Como bônus, o NVM permite instalar várias versões do Node e manter sua cópia do Node atualizada, mesmo se os repositórios oficiais estiverem atrasados.

Pegue a cópia mais recente do NVM

curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash

Diga ao seu shell para usar nvm

source ~/.nvm/nvm.sh

Em seguida, instale uma versão do nó

nvm install 0.10

E diga à nvm qual versão do Node você deseja usar

nvm use 0.10
Michael Martin-Smucker
fonte
11
Obrigado por isso. Contar-me sobre a nvm realmente me ajudou. Eu estava tão cansado de brigar com permissões.
Chev
Você também pode resolver problemas de permissão atualizando o caminho do prefixo em ~ / .npmrc para apontar para o diretório inicial.
rich remer
8

Uma coisa que eu perdi foi limpar a instalação anterior e reinstalar. Usei o seguinte comando para remover a instalação anterior

sudo apt-get purge nodejs-legacy nodejs

e

sudo apt-get install nodejs

para reinstalar o nodejs.

Vinculando a resposta SO que me ajudou

Shash
fonte
Ah, você descobriu antes que eu terminasse de digitar! :) No entanto, eu ainda recomendaria investigar o NVM, para que você evite fazer isso sudo npm installtoda vez que quiser instalar módulos com o npm.
Michael Martin-Smucker