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?


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/


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.


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


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

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


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

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.


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


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

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.


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


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

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

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.

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.