"Mencoba menimpa '/usr/share/man/man1/node.1.gz', yang juga ada dalam paket nodejs-legacy 0.10.25 ~ dfsg2-2ubuntu1"

9

Saya mencoba menginstal nodejs tetapi berulang kali gagal. Terlampir adalah 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
sumber
Anda dapat menjalankan sudo apt-get updatedan sudo apt-get upgrade?
Charles Green
@ Charles Green, saya bisa membuatnya bekerja. Saya sendiri telah menjawab pertanyaan saya.
Shash

Jawaban:

10

Berpotensi Memperbaiki Instalasi

Seperti yang dikatakan Charles dalam komentar, saya akan mencoba lari sudo apt-get updatedan sudo apt-get upgrade. Anda mungkin juga ingin menjalankan sudo apt-get autoremoveuntuk menghapus paket yang tidak lagi Anda perlukan.

Kesalahan menyebutkan nodejs-legacypaket. Jika Anda pernah menginstalnya, Anda mungkin ingin menghapusnya.

Cara yang lebih baik untuk menginstal Node di Ubuntu

Kecuali Anda berencana menggunakan komputer Anda sebagai server produksi, saya sangat merekomendasikan untuk menginstal Node.js menggunakan alat NVM . Menginstal dari repositori mengharuskan Anda untuk menggunakan sudo, yang mengarah ke izin berantakan ketika Anda mencoba menginstal modul Node menggunakan NPM.

Sebagai bonus, NVM memungkinkan Anda menginstal beberapa versi Node, dan memungkinkan Anda menyimpan salinan Node Anda terbaru, bahkan jika repositori resmi ada di belakang.

Raih salinan NVM terbaru

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

Beri tahu shell Anda untuk digunakan nvm

source ~/.nvm/nvm.sh

Kemudian instal versi node

nvm install 0.10

Dan beri tahu nvm versi Node yang ingin Anda gunakan

nvm use 0.10
Michael Martin-Smucker
sumber
1
Terima kasih untuk ini. Memberitahu saya tentang nvm sangat membantu saya. Saya jadi muak berkelahi dengan izin.
Chev
Anda juga dapat menyelesaikan masalah izin dengan memperbarui jalur awalan di ~ / .npmrc sehingga Anda menunjuk dir home Anda.
kaya remer
8

Satu hal yang saya lewatkan adalah membersihkan instalasi sebelumnya dan menginstal ulang. Saya menggunakan perintah berikut untuk menghapus instalasi sebelumnya

sudo apt-get purge nodejs-legacy nodejs

dan

sudo apt-get install nodejs

untuk menginstal ulang nodejs.

Menghubungkan jawaban SO yang membantu saya

Shash
sumber
Ah, Anda sudah menemukannya sebelum saya selesai mengetik! :) Saya masih merekomendasikan melihat ke NVM, jadi Anda dapat menghindari melakukan sudo npm installsetiap kali Anda ingin menginstal modul dengan npm.
Michael Martin-Smucker