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.


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

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.


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.


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

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.


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)

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.


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.


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.


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 -



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).


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


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


1

Saya telah membuat symlink, tetapi masih tidak berfungsi.

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


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.


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

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


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
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.