Node Package Manager rusak dalam beberapa hal, sekarang tidak dapat diinstal


13

Saya mengalami masalah hari ini ketika saya memutuskan untuk menggunakan npm update -gdirektori aplikasi nodejs. Ini adalah keputusan yang buruk, karena itu menyebabkan saya mengalami masalah umum dan bencana dengan npm .

Solusinya adalah menginstal ulang nodejs dan npm. Sayangnya ketika saya pergi untuk menginstal npm menggunakannya sudo apt-get install npmtidak berfungsi.

Kesalahan penuh di terminal ada di sini:

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.

Apa yang bisa saya lakukan untuk menginstal dan menjalankan npm dengan benar?

Terima kasih.

Jawaban:


29

Memperbarui

Mengenai komentar William Entriken di bawah jawaban ini, ada cara yang lebih baik untuk menginstal Node.js secara asli di Ubuntu sebagai paket snap.

Node.js tersedia sebagai paket snap di semua versi Ubuntu yang saat ini didukung. Khusus untuk Node.js, pengembang dapat memilih dari satu atau lebih rilis yang didukung saat ini dan mendapatkan pembaruan otomatis rutin langsung dari NodeSource. Node.js versi 6, 8, 9, 10, 11, 12, dan 13 saat ini tersedia, dengan Snap Store diperbarui dalam beberapa jam atau menit dari rilis Node.js.

Node dapat diinstal dengan satu perintah, misalnya:

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

Node snap dapat diakses oleh perintah node, misalnya:

$ node -v  
v9.9.0

Versi npm yang terbaru akan dipasang sebagai bagian dari snap node. npm harus dijalankan di luar simpul repl, di shell normal Anda. Setelah menginstal snap node jalankan perintah berikut untuk mengaktifkan memeriksa pembaruan npm:

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

Ganti your-usernamedalam perintah di atas dengan nama pengguna Anda sendiri. Kemudian jalankan npm -vuntuk memeriksa apakah versi npm sudah terbaru. Sebagai contoh saya memeriksa bahwa npm adalah yang terbaru, memeriksa versi paket yang sudah diinstal bernama benang dengan perintah npm list yarndan kemudian memperbarui paket benang yang ada ke versi terbaru dengan perintahnpm update yarn

Pengguna dapat beralih di antara versi Node.js kapan saja tanpa perlu melibatkan alat tambahan seperti nvm (Node Version Manager), misalnya:

sudo snap refresh node --channel=8/stable

Pengguna dapat menguji Node.js versi terbaru yang dapat diinstal dari saluran tepi terbaru yang saat ini melacak Node.js versi 12 dengan beralih dengan:

sudo snap switch node --edge

Pendekatan ini hanya disarankan untuk pengguna yang bersedia berpartisipasi dalam pengujian dan pelaporan bug di hulu.


Jawaban asli

Untuk menginstal versi LTS terbaru dari Node.js (nodejs) dan Package manager untuk Node.js (npm) di semua versi Ubuntu yang saat ini didukung, buka terminal dan jalankan perintah berikut:

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  

Jika Anda menyalin ketiga perintah ini, jangan abaikan tanda hubung di akhir perintah kedua.

The nodejspaket berisi nodejsbinary serta npm, sehingga Anda tidak perlu menginstal npmsecara terpisah. Namun, agar beberapa npmpaket berfungsi (seperti yang membutuhkan bangunan dari sumber), Anda perlu menginstal build-essentialpaket:

sudo apt-get install build-essential  

Paket LTS

Rilis semver-mayor baru Node.js dipotong dari mastersetiap enam bulan. Versi genap baru (mis. V6, v8, v10, dll.) Dipotong pada bulan April. Versi nomor ganjil baru (mis. V5, v7, v9) dipotong pada bulan Oktober.

Ketika rilis besar bernomor ganjil baru dipotong, transisi versi mayor bernomor genap sebelumnya ke rencana Dukungan Jangka Panjang.

Setiap versi utama yang dicakup oleh rencana LTS akan secara aktif dipertahankan untuk jangka waktu 18 bulan sejak tanggal memasuki cakupan LTS. Setelah 18 bulan dukungan aktif, versi utama akan beralih ke mode "pemeliharaan" selama 12 bulan tambahan.

instalasi non-LTS

Saat ini hingga Maret 2017, perintah untuk menginstal Node.js versi non-LTS terbaru (v8 pada saat ini diposting) adalah sebagai berikut:

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  

Jadwal LTS Node.js

Lepaskan Kode Status LTS LTS Mulai Pemeliharaan Mulai Pemeliharaan Akhir
6.x Boron Aktif 2016-10-18 April 2018 April 2019
7.x Tidak Ada LTS              
8.x Karbon Aktif 2017-10-31 April 2019 Desember 2019
9.x Tidak Ada LTS              
10.x Dubnium Aktif Oktober 2018 April 2020 April 2021  
11.x Tidak LTS 2019-04-01 2019-06-30
12.x 2019-10-22 2021-04-01 2022-04-01
13.x Tidak ada LTS 2020-04-20 2020-06-01


menggunakan "sudo apt-get install -y nodejs" bekerja untuk saya
Davinder Kumar

Metode ini membutuhkan kepercayaan banyak pihak dan kemudian memberikan akses penuh ke komputer Anda ke deb.nodesource.com, suatu entitas yang bahkan tidak dapat repot untuk memperbarui situs web mereka setiap versi untuk memasukkan hash konten untuk keamanan Anda. Tidak, terima kasih!
William Entriken

@WilliamEntriken Node.js sekarang adalah paket snap di Ubuntu yang tidak memerlukan menjalankan curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -perintah. Sebaliknya Node.js dapat diinstal sebagai paket snap. Saya menambahkan bagian Pembaruan baru untuk jawaban saya yang berisi instruksi untuk menginstal paket snap Node.js.
karel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.