Nama juru bahasa NodeJS ( node
) di Ubuntu telah diubah namanya menjadi nodejs
karena konflik nama dengan paket lain. Inilah yang readme. Debian berkata:
Nama upstream untuk perintah penerjemah Node.js adalah "node". Di Debian, perintah penerjemah telah diubah menjadi "nodejs".
Ini dilakukan untuk mencegah tabrakan namespace: perintah lain menggunakan nama yang sama di hulu mereka, seperti ax25-node dari paket "node".
Skrip yang memanggil Node.js sebagai perintah shell harus diubah untuk menggunakan perintah "nodejs".
Namun, menggunakan nodejs akan menginstal paket menggunakan npm
. Instalasi paket gagal dengan kesalahan berikut:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
Bagaimana saya membuat npm mengerti bahwa nodejs sudah diinstal pada sistem tetapi nama interpreternya berbeda?
ln -s nodejs node
di/usr/bin
. Ini semacam retas.Jawaban:
TL; DR:
Pertama-tama izinkan saya mengklarifikasi situasinya sedikit. Di musim panas 2012, pengelola Debian memutuskan untuk mengganti nama Node.js yang dapat dieksekusi untuk mencegah beberapa jenis tabrakan namespace dengan paket lain. Itu adalah keputusan yang sangat sulit bagi Komite Teknis Debian, karena itu merusak kompatibilitas.
Berikut ini adalah kutipan dari draft resolusi Komite, yang diterbitkan dalam milis Debian :
Paragraf 2 adalah solusi aktual untuk masalah OP. OP harus mencoba menginstal paket ini daripada melakukan symlink dengan tangan. Berikut ini tautan ke paket ini di situs web indeks paket Debian .
Itu dapat diinstal menggunakan
sudo apt-get install nodejs-legacy
.Saya belum menemukan informasi tentang mengadopsi semuanya oleh pengembang NPM, tapi saya pikir
npm
paket akan diperbaiki pada beberapa titik dannodejs-legacy
menjadi benar-benar warisan.sumber
sudo apt-get install nodejs-legacy
Coba tautkan node ke nodejs. Pertama cari tahu di mana nodejs berada
Kemudian soft link node ke nodejs
Saya berasumsi / usr / bin ada di jalur eksekusi Anda. Kemudian Anda dapat menguji dengan mengetik simpul atau npm ke dalam baris perintah Anda, dan semuanya akan berfungsi sekarang.
sumber
nodejs-legacy
paket lebih mudah./usr/bin
kecuali kamudpkg
. Solusi yang tepat (jika Anda menyukai pendekatan symlinking manual ini) adalah membuat symlink/usr/local/bin
yang ditujukan untuk pemasangan dan penggantian lokal. Apa pun yang Anda lakukan secara manual dalam/usr/bin
kaleng dan akan ditimpa oleh manajer paket, dan / atau akan membingungkannya.Anda juga dapat menginstal Nodejs menggunakan NVM atau Nodejs Version Manager. Ada banyak manfaat menggunakan pengelola versi. Salah satunya adalah Anda tidak perlu khawatir tentang masalah ini.
Instruksi:
Setelah paket prasyarat terinstal, Anda dapat menarik skrip instalasi nvm dari halaman GitHub proyek. Nomor versi mungkin berbeda, tetapi secara umum, Anda dapat mengunduh dan menginstalnya dengan sintaks berikut:
Ini akan mengunduh skrip dan menjalankannya. Ini akan menginstal perangkat lunak ke dalam subdirektori dari direktori home Anda di
~/.nvm
. Ini juga akan menambahkan baris yang diperlukan ke~/.profile
file Anda untuk menggunakan file tersebut.Untuk mendapatkan akses ke fungsionalitas nvm, Anda harus keluar dan masuk kembali, atau Anda dapat sumber file ~ / .profile sehingga sesi Anda saat ini mengetahui tentang perubahan:
Sekarang Anda telah menginstal nvm, Anda dapat menginstal versi Node.js yang terisolasi.
Untuk mengetahui versi Node.js yang tersedia untuk instalasi, Anda dapat mengetik:
Seperti yang Anda lihat, versi terbaru pada saat penulisan ini adalah v0.11.14. Anda dapat menginstalnya dengan mengetik:
Biasanya, nvm akan beralih untuk menggunakan versi yang paling baru diinstal. Anda dapat secara eksplisit memberi tahu nvm untuk menggunakan versi yang baru saja kami unduh dengan mengetik:
Ketika Anda menginstal Node.js menggunakan nvm, yang dapat dieksekusi disebut node. Anda dapat melihat versi yang saat ini digunakan oleh shell dengan mengetik:
Tutorial lengkap dapat ditemukan di sini
sumber
usr/bin/node
. Jadi berlarisudo ln -s /home/www/.nvm/v0.10.36/bin/node /usr/bin/node
Instal
nvm
dulu menggunakan:Jalankan perintah
Sekarang jalankan ini dan ini akan menunjukkan semua akan menginstal atau versi lain dari paket:
Paket yang diinstal akan berwarna hijau. Instal versi apa pun yang Anda inginkan:
Periksa di mana tidak diinstal:
Periksa versi saat ini:
sumber
Menggabungkan jawaban yang diterima dengan
source ~/.profile
dari komentar yang telah dilipat dan beberapa perintah pembersihan sebelumnya. Kemungkinan besar Anda juga perlu melakukannyasudo apt-get install npm
.sumber
bagi saya masalah diselesaikan oleh,
sumber
Inilah pendekatan lain yang saya gunakan karena saya suka n untuk beralih dengan mudah antar versi node
Pada sistem Ubuntu baru, instal simpul 'sistem' terlebih dahulu:
Kemudian instal modul n secara global:
Karena node sistem diinstal terlebih dahulu (di atas), sistem alternatif dapat digunakan untuk menunjuk ke node yang disediakan oleh n . Pertama, pastikan sistem alternatif tidak memiliki apa pun untuk simpul:
Kemudian tambahkan node yang disediakan oleh n :
Selanjutnya tambahkan node yang disediakan oleh sistem (yang diinstal dengan curl):
Sekarang pilih node yang disediakan oleh n menggunakan menu interaktif (pilih
/usr/local/bin/node
dari menu yang disajikan oleh perintah berikut):Akhirnya, karena
/usr/local/bin
biasanya memiliki prioritas lebih tinggi dalam PATH daripada/usr/bin
, alias berikut harus dibuat (masukkan .bashrc atau .zshrc Anda) jika node sistem alternatif efektif; jika tidak, node yang diinstal dengan n di / usr / local / bin akan selalu diutamakan:Sekarang Anda dapat dengan mudah beralih antara versi node dengan
n <desired node version number>
.sumber
Di Linux Mint 17, saya mencoba kedua solusi (membuat symlink atau menggunakan
nodejs-legacy
paket) tanpa hasil.Satu-satunya hal yang akhirnya berhasil bagi saya adalah menggunakan ppa dari Chris Lea:
Node ini diinstal versi 10.37 dan npm 1.4.28. Setelah itu, saya bisa menginstal paket secara global.
sumber
Seperti yang sudah disebutkan orang lain, saya akan menyarankan untuk tidak menggunakan "sudo apt-get" untuk menginstal node atau perpustakaan pengembangan apa pun. Anda dapat mengunduh versi yang diperlukan dari https://nodejs.org/dist/v6.9.2/ dan mengatur lingkungan Anda sendiri.
Saya akan merekomendasikan alat-alat seperti nvm dan n , untuk mengelola versi simpul Anda. Sangat mudah untuk berganti dan bekerja dengan modul-modul ini. https://github.com/creationix/nvm https://github.com/tj/n
Atau tulis bash dasar untuk mengunduh zip / tar, ekstrak pindahkan folder, dan buat tautan lunak. Kapan pun Anda perlu memperbarui, arahkan saja tautan lunak lama ke versi yang baru diunduh. Seperti yang saya buat sendiri, Anda dapat merujuk: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh
sumber
Solusi sederhana dari sini
Anda dapat menentukan versi dengan mengubah nilai setup_x.x, misalnya ke setup_5.x
sumber
Sistem Anda tidak dapat mendeteksi jalur simpul binary js.
1. simpul mana
2.Lalu soft link node ke nodejs
Saya berasumsi / usr / bin ada di jalur eksekusi Anda. Kemudian Anda dapat menguji dengan mengetik simpul atau npm ke dalam baris perintah Anda, dan semuanya akan berfungsi sekarang.
sumber
Copot versi node apa pun yang Anda miliki
instal nvm (Pengelola Versi Node) https://github.com/creationix/nvm
Sekarang Anda dapat menginstal versi node apa pun yang Anda inginkan dan beralih di antara versi tersebut.
sumber
nvm
,, perhatikan bahwa paket nodejs-legacy adalah v0.10.25. (atau setidaknya, itulah yang saya lihat ketika saya mencobanya.)Saya memperbaikinya unlinking / usr / sbin / node (yang terkait dengan paket ax25-node), maka saya telah membuat tautan ke nodejs menggunakan ini pada baris perintah
Karena paket seperti karma tidak bekerja dengan nama nodejs, namun mengubah baris pertama skrip karma dari node ke nodejs, tapi saya lebih suka menyelesaikan masalah ini sekali dan untuk semua
sumber
Bagi saya perbaikannya adalah menghapus paket * node dan juga paket npm.
Kemudian instal baru sebagai:
sumber
sudo apt-get autoclean
tidak "sama" darisudo apt-get install autoclean
Masalahnya bukan di installer
ganti nodejs dengan node atau ubah path dari / usr / bin / nodejs ke / usr / bin / node
sumber
Ini adalah simpul Anda tidak terpasang dengan benar, pertama-tama Anda perlu menghapus simpul lalu instal lagi. Untuk menginstal node ini dapat membantu Anda http://array151.com/blog/nodejs-tutorial-and-set-up/
setelah itu Anda dapat menginstal paket dengan mudah. Untuk menginstal paket ini dapat membantu Anda
http://array151.com/blog/npm-node-package-manager/
sumber
Anda dapat membuat
ln -s nodejs
simpul tautan dengan/usr/bin
harapan ini menyelesaikan masalah Anda.sumber