simpul: perintah tidak ditemukan


47

Saya tidak mengerti mengapa nodeperintah tidak akan berfungsi, sedangkan yang nodejsberfungsi:

$ node --version
zsh: command not found: node
$ nodejs --version
v0.10.15

Saya sudah mencoba apt-get install nodejs, tetapi versi terbaru sudah diinstal.

Dan selanjutnya:

$ npm
zsh: command not found: npm

Saya pikir npmtermasuk dalam NodeJS> 0.10?


semoga posting ini menyelesaikan masalah Anda [Stackoverflow] [1] [1]: stackoverflow.com/questions/13593902/node-command-not-found
Ahmed Al-battashi

@ AhmedAl-battashi Tidak membantu, saya sudah membacanya. NodeJS terinstal, nodejsada di PATH, tetapi nodedan npmtidak tersedia, saya tidak dapat menemukannya di sistem saya.
Matthieu Napoli

2
Saya tidak sepenuhnya yakin, tetapi saya ingat bahwa alasan mengapa nodebiner diganti namanya adalah karena bertentangan dengan salah satu paket yang disebut node(Program Paket Node Radio Amatir).
yjwong

Apakah Anda yakin sedang mencari nodedan tidak nodejs? nodebukan apa yang Anda pikirkan.
Braiam

@Braiam nodedigunakan dalam setiap tutorial yang pernah saya lihat
Matthieu Napoli

Jawaban:


44

The nodepaket tidak berhubungan dengan NodeJS. Lihat di sini untuk informasi tentang simpulInstal simpul :

Program Amatir Radio Node (paket transisi)


Anda sebaiknya menginstal nodejs Instal nodejspaket.

sudo apt-get install nodejs

lalu gunakan dengan nodejsperintah.

Alasan nodetidak berfungsi kemungkinan karena konflik dengan nodepaket asli yang ditautkan di atas.


Jika mau npm Pasang npm, Anda harus menginstalnya juga.

sudo apt-get install npm

3
Saya tahu tentang nodepaket itu, namun saya tidak melihat mengapa paket nama memiliki pengaruh pada alat baris perintah. Sebagai contoh, saya tidak menginstal php, tetapi php5-cli. Tapi terima kasih atas jawabannya, saya tidak yakin jika menginstal secara manual npmakan menjadi masalah, ternyata tidak.
Matthieu Napoli

2
Menginstal nodejs-legacypaket memungkinkan Anda menggunakan salah satu nodeatau nodejs.
grooveplex

48

Saya setuju, ini sedikit masalah tapi saya tidak tahu mengapa itu terjadi.

Cara Mengatasinya

Hal pertama yang pertama, cukup buat tautan simbolik dari yang disebut nodemenunjuk ke nodejsbiner.

ln -s /usr/bin/nodejs /usr/bin/node

Masalah

Cukup banyak panduan yang saya temukan untuk menginstal Nodejs (di sini dan di sini ) semua memiliki kode yang sama untuk menguji apakah instalasi terjadi dengan benar. Jadi intinya buat server sederhana seperti:

// hello_node.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

dan kemudian jalankan di nodejs dengan yang berikut ini:

node hello_node.js

Dan kemudian ketika saya mencoba menggunakan npm untuk menginstal sesuatu, itu gagal dan melaporkan node not foundpesan yang sama .


Saya memiliki masalah yang sama, sudo apt-get install npm dan kemudian mengikuti rekomendasi @jlouzado menyelesaikan pekerjaan. Sekarang berfungsi dengan baik
user615274

5
Kiat lucu: ada paket nodejs-legacy yang menyediakan symlink, konon untuk kompatibilitas dengan "kode warisan" yang masih bergantung padanya.
Simón

1
@ Simón Saya pikir ini solusi yang lebih baik daripada membuat tautan simbolik.
grooveplex

Jadi sekarang saya sedang menghitung 3 paket yang harus saya instal jika pada dasarnya saya melakukan sesuatu dengan Node.js. Saya sudah mencoba menginstal perpustakaan Node.js yang satu ini selama satu jam.
sudo

Saya tidak dapat menginstal asciicast2gifkarena selama instalasi berjalan node install.jsdan saya mendapatkan kesalahan sh: 1: node: not found. Ini memperbaikinya.
Vinayak

26

Seperti @ minerz029 sudah mengatakan ada konflik dengan nodepaket. Tetapi jika Anda masih memerlukan nodeperintah (karena skrip hanya menggunakan nodemisalnya), cara yang benar adalah dengan menginstal nodejs-legacypaket:

apt-get install nodejs-legacy

dan tidak membuat symlink sendiri (terutama tidak di /usr/bin/). Ini akan memberikan nodeperintah untuk nodejs.


2
Berhasil. Saya pikir ini lebih baik daripada jawaban @ jlouzado.
Shawn Xie

kecuali Anda sering "mulai dari awal" dengan OS Anda menginstal .... JAUH lebih baik untuk membiarkan apt mengelola symlink di bin. Terima kasih!
mike

2

Coba ini

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs

:)


2
Mengapa Anda tidak menginstal versi terbaru ?:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
karel

setup_6.x stabil
MUHASIN BABU

Kebijakan LTS untuk Node.js versi 8 adalah bahwa ia sedang menunggu LTS sekarang, ia mulai menjadi LTS dalam beberapa bulan pada bulan Oktober 2017, ia memulai periode pemeliharaan pada bulan April, 2019, dan mengakhiri pemeliharaan pada bulan Desember, 2019. Untuk informasi lebih lanjut lihat tabel dalam jawaban ini: askubuntu.com/questions/626383/…
karel

1

mungkin Anda perlu menginstal secara manual

sudo apt-get install npm

1
Saya membaca di mana-mana bahwa saya seharusnya tidak menginstal npm secara manual karena sudah termasuk dalam> v0.10: / Saya agak kehilangan
Matthieu Napoli

0

Perbaikan cepat untuk nvmpengguna. Saya menggunakan nvm(manajer versi simpul) dan bagi saya untuk menggunakan npmperintah saya harus selalu mengeluarkan sebelum npmperintah ini nvm use 0.x(ganti 0.xdengan 0.11atau 0.10misalnya, versi yang ingin Anda gunakan).


0

Seperti yang disebutkan minerz029 , versi tertentu dari nodejspaket tidak akan menyediakan nodebiner karena paket lain yang sebelumnya menggunakan nama itu. Solusinya sesederhana mengikuti langkah-langkah installatoin di situs web Node sendiri:

Menginstal Node.js melalui manajer paket | Distribusi Linux berbasis Debian dan Ubuntu

Saat ini, langkah-langkah tersebut adalah:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Tetapi akan lebih baik untuk memeriksa tautan sumber untuk memastikan Anda menggunakan versi terbaru.

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.