"Tratando de sobrescribir '/usr/share/man/man1/node.1.gz', que también está en el paquete nodejs-legacy 0.10.25 ~ dfsg2-2ubuntu1"

9

Estoy tratando de instalar nodejs pero falla repetidamente. Adjunto está el registro

$ 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
fuente
puedes correr sudo apt-get updatey sudo apt-get upgrade?
Charles Green
@CharlesGreen Podría hacerlo funcionar. Yo mismo he respondido mi pregunta.
Shash

Respuestas:

10

Posiblemente arreglando la instalación

Como dijo Charles en los comentarios, trataría de correr sudo apt-get updatey sudo apt-get upgrade. También puede ejecutar sudo apt-get autoremovepara eliminar paquetes que ya no necesita.

El error menciona el nodejs-legacypaquete. Si alguna vez lo instaló, es posible que desee eliminarlo.

Una mejor manera de instalar Node en Ubuntu

A menos que esté planeando usar su computadora como servidor de producción, le recomiendo instalar Node.js usando la herramienta NVM . La instalación desde el repositorio requiere su uso sudo, lo que genera permisos desordenados cuando intenta instalar módulos Node usando NPM.

Como beneficio adicional, NVM le permite instalar varias versiones de Node, y le permite mantener actualizada su copia de Node, incluso si los repositorios oficiales están atrasados.

Tome la última copia de NVM

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

Dile a tu caparazón que use nvm

source ~/.nvm/nvm.sh

Luego instale una versión de nodo

nvm install 0.10

Y dile a nvm qué versión de Node quieres usar

nvm use 0.10
Michael Martin-Smucker
fuente
1
Gracias por esto. Hablarme sobre nvm realmente me ayudó. Me estaba hartando de pelear con permisos.
Chev
También puede resolver problemas de permisos actualizando su ruta de prefijo en ~ / .npmrc para que apunte a su directorio de inicio.
rico remer
8

Una cosa que me había perdido era purgar la instalación anterior y reinstalarla. Usé el siguiente comando para eliminar la instalación anterior

sudo apt-get purge nodejs-legacy nodejs

y

sudo apt-get install nodejs

para reinstalar nodejs.

Vincular la respuesta SO que me ayudó

Shash
fuente
¡Ah, lo descubriste antes de que terminara de escribir! :) Sin embargo, todavía recomendaría buscar en NVM, por lo que puede evitar hacerlo sudo npm installcada vez que desee instalar módulos con npm.
Michael Martin-Smucker