Bagaimana cara menginstal Node.JS di Amazon Linux?

251

Saya telah melihat luncuran menggunakan yum untuk menginstal dependensi, dan kemudian menginstal Node.JS & NPM dari sumber. Meskipun ini berhasil, saya merasa seperti Node.JS dan NPM harus berada di repo publik di suatu tempat.

Bagaimana saya bisa menginstal Node.JS dan NPM dalam satu perintah di AWS Amazon Linux?

Tim Fulmer
sumber

Jawaban:

396

Tersandung pada ini, anehnya sulit ditemukan lagi nanti. Menempatkan di sini untuk anak cucu:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: Pada Juli 2016, EDIT 1 tidak lagi berfungsi untuk nodejs 4 (dan EDIT 2 tidak). Jawaban ini ( https://stackoverflow.com/a/35165401/78935 ) memberikan one-liner sejati.

EDIT 1: Jika Anda mencari nodejs 4, silakan coba repo pengujian EPEL:

sudo yum install nodejs --enablerepo=epel-testing

EDIT 2: Untuk memutakhirkan dari nodejs 0.12 diinstal melalui repo EPEL menggunakan perintah di atas, ke nodejs 4 dari repo pengujian EPEL, silakan ikuti langkah-langkah ini:

sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing

Paket-paket yang lebih baru memasukkan binary node /usr/bin, bukan /usr/local/bin.

Dan beberapa latar belakang:

Opsi --enablerepo=epelmenyebabkan yumuntuk mencari paket-paket di repositori EPEL.

EPEL (Paket Ekstra untuk Perusahaan Linux) adalah proyek repositori berbasis komunitas dan open source dari tim Fedora yang menyediakan 100% paket perangkat lunak tambahan berkualitas tinggi untuk distribusi Linux termasuk RHEL (Red Hat Enterprise Linux), CentOS, dan Scientific Linux. Proyek Epel bukan bagian dari RHEL / Cent OS tetapi dirancang untuk distribusi Linux utama dengan menyediakan banyak paket sumber terbuka seperti jaringan, sys admin, pemrograman, pemantauan dan sebagainya. Sebagian besar paket epel dikelola oleh Fedora repo.

Via http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/

Tim Fulmer
sumber
8
Ini jelas merupakan pendekatan tercepat yang pernah saya lihat, tetapi peringatan mungkin berguna - repositori EPEL tidak disinkronkan dengan node stabil saat ini, dan Anda tidak dapat menggunakan "n" untuk memperbaikinya ketika sudah diinstal ini cara (setidaknya, bukan tanpa semacam sihir yang di luar saya). Pendekatan git / make install git yang membosankan adalah satu-satunya cara yang saya temukan untuk memastikan instalasi yang konsisten dan terkini.
Titik koma
22
Saya mendapat node 0.10.36 dan npm 1.3.6 dari ini. Ini sangat ketinggalan zaman.
voltrevo
4
@Semicolon Anda dapat menyiasatinya dengan hanya menginstal npm, lalu sudo npm install -g ndan sudo n v0.12atau versi apa pun yang Anda suka.
unboundev
4
dan perbarui seperti yang diharapkan, tetapi tidak memperbarui tautan simpul dengan benar. Anda harus menjalankan perintah tambahan:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow
4
jawaban ini tidak berfungsi karena sudo yum install nodejs --enablerepo=epel-testingmengembalikan kesalahan: "Tidak ada paket nodejs tersedia." sementara sudo yum install nodejs --enablerepo=epelhanya memberikan versi yang sangat lama ...
goredwards
224

Seperti yang lain, jawaban yang diterima juga memberi saya versi yang sudah ketinggalan zaman.

Berikut cara lain untuk melakukannya yang bekerja dengan sangat baik:

$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs

Anda juga dapat mengganti 12.x dengan versi lain, seperti 10.x, 8.x, dll.

Anda dapat melihat semua versi yang tersedia di halaman NodeSource Github , dan tarik dari sana juga jika diinginkan.

Catatan: Anda mungkin perlu menjalankan menggunakan sudotergantung pada lingkungan Anda.

Matthew Herbst
sumber
4
Inilah yang perlu saya gunakan pada AWS Elastic Beanstalk untuk mendapatkan versi yang lebih baru dari yang sudah diinstal.
Jon Burgess
1
Pekerjaan hanya sempurna sementara aku perlu menjalankan npm installuntuk package.json,
Chetabahana
32
Saya perlu menjalankan ini dengancurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342
16
Jika Anda mendapat izin ditolak, Anda harus menambahkan beberapa sudo. curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -dansudo yum -y install nodejs
sampoh
1
Jika Anda ingin menginstal Node.js 8.x, Anda harus menjalankancurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun
64

Jawaban yang diterima memberi saya simpul 0,10.36 dan npm 1.3.6 yang sangat ketinggalan zaman. Saya mengambil tarball linux-x64 terbaru dari halaman unduhan nodejs dan tidak terlalu sulit untuk menginstal: https://nodejs.org/dist/latest/ .

# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz

Sekarang angkat tar yang baru saja Anda unduh -

tar xzf node.tgz

Jalankan perintah ini dan kemudian tambahkan juga ke .bashrc:

export PATH="$PATH:(your install dir)/(node dir)/bin"

(contoh: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")

Dan perbarui npm(hanya sekali, jangan tambahkan ke .bashrc):

npm install -g npm

Perhatikan bahwa -gada yang berarti global, benar-benar berarti global untuk instance npm yang merupakan instance yang baru saja kita instal dan terbatas pada pengguna saat ini. Ini akan berlaku untuk semua paket yang diinstal npm 'secara global'.

voltrevo
sumber
4
Ini sebenarnya jawaban terbaik, karena Anda mendapatkan versi yang Anda inginkan
Mariusz
1
Seandainya saya membaca jawaban ini dulu - ini harus menjadi jawaban yang diterima karena Anda dapat memilih versi mana yang ingin Anda instal. - terima kasih @voltrevo
Mike W
2
@voltrevo terima kasih atas jawabannya. Ya, ada cara lain untuk menginstal node di Linux. Jawaban yang diterima adalah one-liner, yang terjadi untuk menyambungkan ke sistem paket YUM untuk pembaruan terotomatisasi dan terkelola. Paket-paket dalam repo YUM cenderung sedikit lebih tua, dan juga sedikit lebih baik diuji dengan penyebaran yang lebih luas. Secara pribadi, saya sarankan meninggalkan yang terbaru dan terbaik untuk lingkungan pengembangan lokal, dan menggunakan sesuatu yang lebih seperti jawaban yang diterima untuk lingkungan produksi. Bersulang!
Tim Fulmer
untuk versi centos lama ini adalah cara terbaik untuk pergi
user1336321
Kesalahan setelah menjalankan simpul -v sekarang adalah: 'tidak dapat menjalankan file biner'. Ada ide?
JosFabre
28

Prosedur yang bekerja untuk saya (mengikuti ini petunjuk agak tua dengan beberapa update):

  • check git diinstal git --versionatau menginstalnya melalui:
    sudo yum install git
  • instal gcc dan openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • klon git repo ke direktori bernama node(yang dapat Anda hapus nanti):
    git clone https://github.com/nodejs/node.git
  • tentukan versi node mana yang Anda inginkan di https://github.com/nodejs/node/releases
  • buka direktori simpul yang baru saja dibuat dan instal simpul
    cd node
    git checkout v6.1.0- masukkan versi yang diinginkan setelahv
    ./configure
    make
    sudo make install
  • uji apakah simpul diinstal / bekerja dengan salah satu node --versionatau cukup node(keluar dari simpul melalui process.exit()atau ^Cx 2 atau ^C+exit )
  • periksa versi npm: npm --versiondan perbarui jika perlu melaluisudo npm install -g npm
  • Opsional: hapus nodedirektori denganrm -r node

Catatan:

  1. Jawaban yang diterima tidak berfungsi karena sudo yum install nodejs --enablerepo=epel-testingmengembalikan kesalahan: No package nodejs available.
    ... dan sudo yum install nodejs --enablerepo=epel(yaitu tanpa -testing) hanya memberikan versi yang sangat lama.
  2. Jika Anda sudah menginstal versi lama dari node, Anda dapat menghapusnya dengan:
    sudo npm uninstall npm -g ... karena npm dapat menghapus sendiri
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejsdalam jawaban yang diterima tidak akan berfungsi karena rmbukan perintah yum yang valid, lihat yum --help)
  3. Dimungkinkan untuk mengkloning simpul repo via git clone git://github.com/nodejs/node.gitdaripada git clone https://github.com/nodejs/node.gittetapi Anda mungkin mendapatkan berbagai kesalahan (lihat di sini ).
  4. Jika Anda sudah memiliki /nodedirektori dari instalasi sebelumnya, hapus sebelum menggunakan perintah git clone (atau akan ada konflik):
    rm -r node
  5. Jika Anda memiliki masalah dengan sudo npm...perintah - suka sudo: npm: command not founddan / atau memiliki masalah izin menginstal paket simpul tanpa sudo, edit sudo nano /etc/sudoersdan tambahkan :/usr/local/binke akhir baris Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binsehingga terbacaDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
goredwards
sumber
3
@ Ada banyak jawaban lain untuk dipilih jika yang ini tidak menyenangkan Anda ;-) ... 'dalam satu perintah' bukan bagian terpenting dari pertanyaan IMHO.
goredwards
Ini sangat berguna setelah saya melakukan kesalahan dengan menerima jawaban. Terima kasih
Daron Tancharoen
@talentedandrew etc/sudoersfile mengontrol siapa yang dapat menjalankan perintah apa sebagai pengguna apa di mesin apa - tetapi hanya akan menjalankan / menemukan / mencari perintah yang ada di direktori yang tercantum pada secure_pathNode -nya harus diinstal /usr/local/bindan jika ada sudo harus menemukannya - lihat stackoverflow .com / a / 31734090/3092596 Jika sudo tidak menemukannya, maka jalan itu perlu ditambahkan ke sudo secure_path- lihat juga: superuser.com/a/927599/404543
goredwards
Saya ingin menambahkan bahwa Anda mungkin harus memperbaiki tautan simbolis Anda setelah Anda menginstal menggunakan metode ini: sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
BuffMcBigHuge
23

Instal sederhana dengan NVM ...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node

Untuk menginstal versi tertentu (seperti 12.16.3) Node, ubah baris terakhir menjadi

nvm install 12.16.3

Untuk informasi lebih lanjut tentang cara menggunakan NVM, kunjungi dokumen: https://github.com/nvm-sh/nvm

pencarian fuzz
sumber
1
Ini benar-benar berfungsi. Membutuhkan waktu lebih sedikit daripada jawaban @goredwards juga. Telah mencoba AMI Amazon ECS yang dioptimalkan.
Jayant Bhawal
3
Jawaban yang diterima dan semua EDIT 1-3 tidak bekerja untuk saya, tetapi ini berhasil. Terima kasih!
seantomburke
1
rapi dan kompak.
Stephen Tetreault
1
sederhana dan mengagumkan
Abhinav
2
Ini seharusnya jawabannya. Sejauh ini yang terbaik adalah yang terbaik kecuali seseorang ingin membangun dari sumber.
Kirkland
19

Untuk penggunaan versi v4 LTS:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

Untuk penggunaan Node.js v6:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

Saya juga mengalami beberapa masalah ketika mencoba menginstal addons asli di Amazon Linux. Jika Anda ingin melakukan ini, Anda juga harus menginstal alat membangun:

yum install gcc-c++ make
birnbaum
sumber
Ini jawaban yang fantastis. Tidak perlu lagi 20 menit untuk menginstal Node lagi.
David Webber
jika Anda menjalankan aplikasi php dengan beberapa npm yang dikompilasi frontend pada beanstalk elastis, Anda dapat menggunakan ini. ini adalah bagian dari file install.config saya yang membuatnya berfungsi - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec
14

Saya baru saja menemukan ini. Saya mencoba beberapa jawaban yang lebih populer, tetapi pada akhirnya, yang berhasil bagi saya adalah panduan pengaturan cepat Amazon.

Tutorial: Mengatur Node.js di Amazon EC2 Instance

Inti dari tutorial ini adalah:

  1. Pastikan Anda ssh'd ke instance.
  2. Ambil nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. Aktif . ~/.nvm/nvm.sh
  4. Instal node menggunakan nvm nvm install 4.4.5(CATATAN: Anda dapat memilih versi yang berbeda. Periksa versi jarak jauh terlebih dahulu dengan menjalankan$ nvm ls-remote )
  5. Terakhir, uji bahwa Anda telah menginstal simpul Node dengan benar dengan menjalankan $ node -e "console.log('Running Node.js' + process.version)"

Semoga ini bisa membantu orang selanjutnya.

troxwalt
sumber
Anda mungkin ingin menjelaskan konten dalam tautan itu. Jawaban yang bagus hanya menggunakan tautan sebagai referensi, bukan topik utama jawabannya.
BusyProgrammer
6

Sepertinya tidak ada yang menyebutkan ini. Di Amazon Linux 2 , cara resmi memuat EPEL adalah:

  • sudo amazon-linux-extras install epel

... maka Anda dapat:

  • sudo yum install nodejs

     

Lihat Perpustakaan Ekstra (Amazon Linux 2)

theaws.blog
sumber
nah ini sepertinya jawaban terbaik!
Regangkan
@ Peregangan Tidak juga. Ini menginstal Node 6. Terlalu lama.
GabrielBB
5

Saya telah menginstal Node.js 6.x dan ingin menginstal Node.js 8.x.

Inilah perintah yang saya gunakan (diambil dari situs Nodejs dengan beberapa langkah tambahan untuk menangani data cache yum):

  1. sudo yum remove nodejs: Copot Node.js 6.x (Saya tidak tahu apakah ini perlu atau tidak)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Regenerate cache metadata (ini tidak ada dalam dokumen, tetapi yum terus berusaha menginstal Node.jx 6.x, tidak berhasil, sampai saya mengeluarkan dua perintah terakhir ini)
  5. sudo yum install nodejs: Instal Node.js 8.x
Brad W
sumber
3

sudo yum install nodejs npm --enablerepo=epelbekerja untuk Amazon Linux AMI. curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs bekerja untuk RedHat.

Xiao Peng - ZenUML.com
sumber
2

Solusi termudah adalah ini (lakukan ini sebagai root)

sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node

masukkan deskripsi gambar di sini

grepit
sumber
Terima kasih, ini membantu
arupjbasu
0

Seperti disebutkan dalam dokumentasi resmi, sederhana di bawah 2 langkah -

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

Bagi mereka yang ingin menjalankan jawaban yang diterima berjalan di Ansible tanpa pencarian lebih lanjut, saya memposting tugas di sini untuk kemudahan dan referensi di masa mendatang.

Rekomendasi jawaban yang diterima: https://stackoverflow.com/a/35165401/78935

Setara tugas yang dimungkinkan

tasks:
  - name: Setting up the NodeJS yum repository
    shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
    args:
      warn: no
  # ...
Andrei Cioara
sumber
0

Anda dapat memperbarui / menginstal node dengan menginstal ulang paket yang diinstal ke versi saat ini yang dapat menyelamatkan kita dari banyak kesalahan, saat melakukan pembaruan.

Ini dilakukan oleh nvm dengan perintah di bawah ini. Di sini, saya telah memperbarui versi simpul saya ke 8 dan menginstal ulang semua paket yang tersedia ke v8 juga!

nvm i v8 --reinstall-packages-from=default

Ini bekerja pada instance AWS Linux juga.

Soundharya AM
sumber