„Próbuje nadpisać '/usr/share/man/man1/node.1.gz', który jest również w pakiecie nodejs-legacy 0.10.25 ~ dfsg2-2ubuntu1”

9

Próbuję zainstalować nodejs, ale ciągle się nie udaje. Załączony jest dziennik

$ 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
źródło
umiesz biegać sudo apt-get updatei sudo apt-get upgrade?
Charles Green
@CharlesGreen Mogę to uruchomić. Sam odpowiedziałem na moje pytanie.
Shash

Odpowiedzi:

10

Potencjalne naprawianie instalacji

Jak Charles powiedział w komentarzach, spróbowałbym uciec sudo apt-get updatei sudo apt-get upgrade. Możesz także uruchomić, sudo apt-get autoremoveaby usunąć niepotrzebne pakiety.

Błąd wspomina o nodejs-legacypakiecie. Jeśli kiedykolwiek go zainstalowałeś, możesz go usunąć.

Lepszy sposób na zainstalowanie Node na Ubuntu

O ile nie planujesz używać komputera jako serwera produkcyjnego, zdecydowanie polecam instalację Node.js za pomocą narzędzia NVM . Instalacja z repozytorium wymaga użycia sudo, co prowadzi do niechlujnych uprawnień podczas próby zainstalowania modułów węzła za pomocą NPM.

Jako bonus, NVM pozwala instalować wiele wersji Node i pozwala aktualizować twoją kopię Node, nawet jeśli oficjalne repozytoria są opóźnione.

Pobierz najnowszą kopię NVM

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

Powiedz swojej powłoce, aby użyła nvm

source ~/.nvm/nvm.sh

Następnie zainstaluj wersję węzła

nvm install 0.10

I powiedz nvm, której wersji Węzła chcesz użyć

nvm use 0.10
Michael Martin-Smucker
źródło
1
Dziękuję Ci za to. Opowiadanie mi o nvm naprawdę mi pomogło. Miałem już dość walki z pozwoleniami.
Chev
Możesz także rozwiązać problemy z uprawnieniami, aktualizując ścieżkę prefiksu w ~ / .npmrc, aby wskazywać na katalog domowy.
bogate przypomnienie
8

Jedną z rzeczy, których mi brakowało, było wyczyszczenie poprzedniej instalacji i ponowna instalacja. Użyłem następującego polecenia, aby usunąć poprzednią instalację

sudo apt-get purge nodejs-legacy nodejs

i

sudo apt-get install nodejs

ponownie zainstalować nodejs.

Łączenie odpowiedzi SO, która mi pomogła

Shash
źródło
Ach, wymyśliłeś to, zanim skończyłem pisać! :) Nadal jednak polecam zajrzenie do NVM, więc możesz uniknąć robienia tego za sudo npm installkażdym razem, gdy chcesz instalować moduły z npm.
Michael Martin-Smucker