nodejs vs node di ubuntu 12.04

363

Saya menginstal nodejs di ubuntu dari instruksi yang diberikan di sini

Ketika saya menulis node --versiondi terminal saya melihat ini:
-bash: /usr/sbin/node: No such file or directory

Saya dapat melihat simpul di /usr/sbin/ direktori.

Penulisan npm --versionmenunjukkan 1.3.5
Penulisannodejs --version acarav0.10.15

Juga, saya bisa melihat simpul di /usr/bin/ direktori.

Jadi, bagaimana saya dapatkan node bekerja?

Juga, Jika saya menggunakan zsh bukan bash, maka nodeperintah berfungsi.

Jatin
sumber
1
Jika "Anda melihat simpul di / usr / bin /", lalu apa outputnya ls -l /usr/bin/node?
Randandel
1
@randunel Saya mendapat hasil inilrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
Jatin
Apakah Anda membuat perubahan pada shell rc?
Randandel
Ini terlihat seperti masalah shell setelah diedit, apa export | grep PATHhasilnya bila tidak digunakan zsh? (harus mencetak /usr/binantara lain)
randunel
1
solusi + penjelasan di sini: stackoverflow.com/questions/21168141/…
throbi

Jawaban:

599

Anda harus secara manual membuat symlink /usr/bin/node. Pintasan untuk shell yang kompatibel dengan bash:

sudo ln -s `which nodejs` /usr/bin/node

Atau jika Anda menggunakan cangkang non-standar, cukup cetak kode jalur yang Anda temukan dengan which nodejs:

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

Kemudian edit

Saya menemukan penjelasan ini di tautan yang Anda poskan

Ada konflik penamaan dengan paket simpul (Program Paket Radio Amatir Radio), dan biner nodejs telah diganti nama dari node ke nodejs. Anda harus symlink / usr / bin / node ke / usr / bin / nodejs atau Anda bisa menghapus Program Amateur Node Radio Node Program untuk menghindari konflik itu.

Nanti nanti edit

Sudah lama sejak saya menjawab ini. Meskipun solusi yang saya posting di sini berfungsi untuk saya beberapa kali, pengguna telah melaporkan beberapa solusi dalam komentar:

Dari @ user229115

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

Dari AskUbuntu (pengguna kiri)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs
Randunel
sumber
baik! Meskipun, jika saya gunakan zsh, maka nodeperintah itu berfungsi.
Jatin
1
Juga, bagaimana saya menghapus program Radio Paket Amatir Radio? Saya mencoba sudo apt-get remove nodetetapi dikatakanPackage node is not installed, so not removed
Jatin
Anda tidak perlu menghapusnya, setelah komentar Anda, ini terlihat seperti masalah shell, bukan masalah paket simpul.
randunel
@Randunel jawaban tidak bekerja untuk saya karena /usr/bin/env nodetidak akan berhasil. Solusi @ BennyMcBenBen berhasil
francoisrv
2
@Tino jawaban adalah yang benar, lihat nodejs-legacydeskripsi paket. Jawaban yang ditautkan oleh @BennyMcBenBen telah diperbarui dengan instruksi serupa juga.
tricasse
88

Saya pikir ini dia:

sudo pembaruan-alternatif --instal / usr / bin / node node / usr / bin / nodejs 10

Menggunakan alternatif Debian.

pengguna229115
sumber
3
Ini tampaknya menjadi pilihan yang lebih baik daripada jawaban yang diterima dan tidak secara manual mengubah / usr / bin / folder dan menggunakan infrastruktur untuk perintah alternatif
Dominik Fretz
Belum mencobanya, tapi saya melihat update-alternativedokumen. Jika itu benar-benar berfungsi, maka itu adalah solusi yang lebih baik :)
randunel
3
dapatkah Anda lebih spesifik mengenai apa yang dilakukan ini?
bcorso
@DominikFretz meh. Hasil akhirnya persis sama dengan menggunakan perintah khusus-Debian versus yang sesuai dengan POSIX. (Anda bisa melakukannya update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10.) Untuk masing-masing, tetapi saya lebih suka dataran ln.
kojiro
2
Saya harus source ~/.bashrcmenerapkan hal ini
iNulty
64

Rupanya solusinya berbeda antara versi Ubuntu. Berikut ini berfungsi untuk saya di Ubuntu 13.10:

sudo apt-get install nodejs-legacy

HTH

Sunting: Aturan praktis:

Jika Anda telah menginstal nodejstetapi tidak memiliki /usr/bin/nodebiner, maka instal juga nodejs-legacy. Ini hanya menciptakan softlink yang hilang.

Menurut pengujian saya, Ubuntu 17.10 dan di atasnya sudah memiliki kompatibilitas-softlink /usr/bin/nodedi tempatnya setelah nodejsdiinstal, jadi nodejs-legacyhilang dari rilis ini karena tidak diperlukan lagi.

Tino
sumber
tampaknya nodejs-legacy tidak dipertahankan lagi. pemberhentian bangunan terbaru pada 2013-04-10
francoisrv
8
nodejs-legacytidak perlu banyak perawatan. Itu hanya menambahkan softlink mirip dengan sudo ln -s nodejs /usr/bin/node, setidaknya pada LTS 14,04
Tino
4
Pada Ubuntu 14.04, nodejs dan nodejs-legacy menginstal versi Node yang sama (0.10.25). +1 ke @Tino.
Mark E. Haase
Bekerja untuk saya di Debian Jessie juga. Ini harus menjadi jawaban yang diterima karena ini adalah bagaimana hal itu dimaksudkan. Hanya orang yang menggunakan paket radio amatir yang tidak boleh melakukan ini. Saya bertanya-tanya mengapa mereka tidak mengganti nama paket radio seperti yang mereka lakukan dengan chromium-bsu.
Jérôme
Ini akan menghasilkan 2 instance node pada sistem Anda dan ini tidak lagi dipertahankan ... Sarankan Anda menautkan ke nodejs sebagai gantinya.
PodTech.io
30

Saya memiliki masalah yang sama di Ubuntu 14.04.

Saya telah menginstal "nodejs" dan berfungsi, tetapi hanya jika saya menggunakan perintah "nodejs". Jika saya mencoba menggunakan "simpul" tidak ada yang terjadi.

Saya memperbaiki masalah ini dengan cara berikut:

  1. Instal nodejs-legacy

    sudo apt-get install nodejs-legacy

Setelah itu, ketika saya mengetik "simpul" di baris perintah saya mendapat pesan kesalahan "/ usr / sbin / node: Tidak ada file atau direktori"

  1. Kedua, apa yang saya lakukan, itu adalah tautan simbolis pada "nodejs":

    sudo ln -s / usr / bin / nodejs / usr / sbin / node
Dmytro Medvid
sumber
4
Ada sesuatu yang aneh pada sistem Anda. nodeseharusnya diinstal ke dalam /usr/bin/dan tidak /usr/sbin/. Tampaknya bagi saya seolah-olah Anda telah menginstal nodepaket Ubuntu dari hamradio sebelumnya (lihat packages.ubuntu.com/trusty/all/node/filelist ) dan lupa untuk berjalan hash -rpada level shell, sehingga shell masih mengingat jalur yang salah. Yang kedua lnmemperbaikinya juga, tetapi tidak diperlukan lagi setelah Anda meninggalkan shell itu.
Tino
BTW, bahkan jawaban yang salah baik untuk menjelaskan semua masalah karena tiga paket semua nama yang sangat mirip: node( /usr/sbin/nodeuntuk sesuatu yang sama sekali berbeda), nodejs( /usr/bin/nodejs) dan nodejs-legacy( /usr/bin/node, tergantung pada paket nodejs).
Tino
Ini juga terjadi pada saya. Saya telah menginstal node dari sumber beberapa waktu lalu. node -v => 0.10.2sementara nodejs -v => 5.5.0. Menjalankan perintah which nodeselalu menunjuk ke instalasi lokal ini. Pada akhirnya, saya harus unset NODE_PATH, yang menunjuk ke instalasi lokal untuk memperbaikinya. Setelah ini, node -v => 5.5.0dan npm install mulai bekerja untuk paket tergantung pada Node => 5.0.
CHsurfer
11

Ini juga terjadi pada saya.

node -v => 0.10.2
nodejs -v => 5.5.0

Masalahnya adalah bahwa saya telah menginstal node dari sumber beberapa waktu lalu. Lari

which node

selalu menunjuk ke instalasi lokal ini. Juga,

echo NODE_PATH

menunjuk ke instalasi lokal.

menghapus direktori dengan instalasi sumber tidak membantu. Itu baru saja melanggar perintah simpul. Pada akhirnya, menghapus variabel lingkungan NODE_PATH dan membersihkan kemudian menginstal ulang nodejs melakukan trik.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Setelah ini,

node -v => 5.5.0

dan npm instal mulai bekerja untuk paket tergantung pada Node => 5.0.

CHsurfer
sumber
Ini berhasil untuk saya. Sayang sekali aku mengacau sekitar satu jam sebelum menemukannya.
Dustin Fraker
11

Pengelola Versi Node (nvm)

Jika Anda ingin menginstal beberapa versi nodejs dan dengan mudah beralih di antara mereka, saya akan menyarankan menggunakan Node Version Manger . Ini juga memecahkan masalah penamaan ( nodevs nodejs)

Sederhana saja:

Instal versi nodejs:

$ nvm install 4.4

Sekarang Anda memiliki nodejs 4.4 selain versi yang sudah diinstal dan Anda bisa menggunakan nodeperintah untuk mencapai versi yang baru diinstal:

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

Anda dapat menginstal lebih banyak versi nodejs dan dengan mudah beralih di antara mereka:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)
Rotareti
sumber
2
Bahwa ini menyelesaikan masalah saya, terima kasih banyak, saya menemukan beberapa perintah yang berguna untuk nvmdi Cara Install Node.js pada Ubuntu 14.04 Server
Huy Nguyen
1
ini bekerja untuk saya. Juga panduan tersedia di sini: digitalocean.com/community/tutorials/…
Koen Cornelis
10

Saya baru mengenal semua ini, tetapi bagi saya alias sederhana berfungsi:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

setidaknya untuk menjalankan sesuatu secara langsung di bash dan mengeksekusi file .js.

Phill
sumber
Bekerja tanpa rlwrap. Terima kasih!
Shurik
Terima kasih @Phill, Anda luar biasa!
Yusril Herlian Syah
9

Bagaimana dengan menggunakan instruksi resmi dari situs nodejs :

Untuk v7:

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

Untuk v6:

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

Untuk v4:

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

Saya sudah menguji ini dari Windows bash (via subsistem untuk Linux - 14.04) dan raspbian (berbasis ARM Debian). Menjalankan sudo apt-get install -y nodejstanpa terlebih dahulu menjalankan skrip pengaturan akan menghasilkan Anda mendapatkan simpul 0.10.

Jika Anda berencana memasang modul npm asli yang membutuhkan build, jalankan juga:

sudo apt install -y build-essential

Catatan: ini adalah jalur yang disarankan untuk distro berbasis Debian di semua arsitektur.

cchamberlain
sumber
7

Menambahkan ke jawaban yang benar @ randunel (belum dapat mengomentari SO):

Saya juga harus symlink / usr / local / bin / node ke / usr / bin / nodejs juga.

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

Rupanya, ini mengesampingkan perintah / usr / bin / node.

Tidak tahu bagaimana itu ditetapkan, tetapi berharap itu membantu orang lain karena itu adalah rasa sakit untuk mencari tahu mengapa hal di atas tidak bekerja untuk saya.

kfblake
sumber
7

Jawaban terlambat, tetapi untuk info terbaru ...

Jika Anda menginstal node.js menggunakan metode rekomendasi dari readme instalasi simpul github , disarankan mengikuti petunjuk pada artikel blog nodesource , daripada menginstal dari ketinggalan zaman apt-get repo, node.js harus dijalankan menggunakan nodeperintah, juga nodejsperintahnya, tanpa harus membuat symlink baru.

Metode dari artikel ini adalah:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

Perhatikan bahwa ini untuk v0.12, yang kemungkinan akan menjadi usang dalam waktu yang tidak lama.

Juga, jika Anda berada di belakang proksi perusahaan (seperti saya), Anda ingin menambahkan opsi -E ke perintah sudo, untuk mempertahankan env vars yang diperlukan untuk proxy:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -

Erresen
sumber
7

Ini bekerja untuk saya:

alias node=nodejs

Setelah mengikuti instruksi di tautan ini .

Burak Tutanlar
sumber
4

Jika Anda menggunakan instance AWS EC2 yang menjalankan instance Ubuntu (diuji pada Ubuntu 16.x), maka langkah-langkah ini mungkin cocok untuk Anda:

    sudo apt-get pembaruan
    sudo apt-get --purge menghapus simpul -y
    sudo apt-get --purge menghapus nodejs -y
    sudo apt-get --purge menghapus legacy-node -y
    sudo rm / usr / bin / node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
    sudo apt-get install nodejs -y
    simpul -v

Jika semuanya benar, perintah terakhir harus memiliki output seperti: v6.xx

Jika tidak, jalankan yang berikut ini:

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

Semoga ini bisa membantu. Ini membantu saya secara ajaib (hehe).

Vivek
sumber
3

Saya memiliki masalah tautan simbolik yang sama membantu saya: sudo ln -s / usr / bin / nodejs / usr / bin / node setelah itu sudo npm install -g phantomjs-prebuilt

berjalan dengan lancar

arr
sumber
2

Cara terbaik untuk menginstal nodejs adalah melalui NVM (Node Version Manager)

Hapus versi sebelumnya:

$ sudo apt-get purge node
$ sudo apt autoremove

Hapus juga semua node_modules $ sudo rm -rf node_modulesdi dalam direktori yang berisi folder ini.

Node & Nodejs secara teknis adalah hal yang sama. Hanya penamaannya yang berubah.

Instal atau perbarui nvm terlebih dahulu

untuk dijalankan sebagai root

$ sudo su 

Kemudian

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | pesta

ATAU

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | pesta

Periksa nvm ke jalur

$ source ~ / .profile
$ nvm ls-remote

jika Anda mendapatkan kesalahan terkait listing tersebut maka instal git.

$ sudo apt-get install git

Jalankan kembali:

$ nvm ls-remote
ATAU
$ sudo nvm ls-remote

$ nvm instal versi yang Anda butuhkan 

Memeriksa Versi

# node --version
nvm gunakan versi yang Anda butuhkan

KURSUS INFORMASI:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps

CSEngineer
sumber
1

Saya telah membuat symlink, tetapi masih tidak berfungsi.

Saya lupa me-restart terminal saya (koneksi dempul saya). Setelah saya berhasil tanpa symlink :)

Jamie Hutber
sumber
1

Akan sangat membantu bagi pemula absolut

Meskipun, Anda sudah mendapatkan jawabannya, hanya ingin menunjukkan bahwa nodeperintah (tanpa parameter apa pun) akan memulai simpul dalam mode baca-eval-print-loop REPL untuk menjalankan kode javascript mentah.

Cara lain untuk menggunakan nodeperintah adalah dengan menyediakan jsfile sebagai parameter. Ini adalah cara kami menggunakannya.

Mohammed Zameer
sumber
0

Ini opsional untuk menghapus node dan nodejs yang ada, tetapi harus melakukan alternatif menginstal 7.x nodejs terbaru.

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

Cukup gunakan NVM (Node Version Manager) - https://github.com/creationix/nvm

Ini telah menjadi standar untuk mengelola Node.js.

Saat Anda membutuhkan versi baru:

nvm install NEW_VER
nvm use XXX

Jika terjadi kesalahan, Anda selalu dapat kembali

nvm use OLD_VER
Dimitar Mazhlekov
sumber
0

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

  ~ which node
/usr/local/bin/node
  ~ node --version
v10.11.0
  ~ which npm
/usr/local/bin/npm
  ~ npm --version
6.4.1
Ashok R
sumber