Bagaimana Anda menginstal Node.JS di CentOS?


131

Saya telah menemukan banyak instruksi instalasi untuk Node.js tetapi semuanya tampak sangat rumit - saya bukan admin sistem yang super tetapi saya dapat berkeliling. Saya memiliki yum pada sistem, tetapi saya tidak menemukan paket node.js, dan saya tidak yakin bagaimana cara mengkompilasi kode di server atau di mana harus meletakkannya.


Terima kasih atas jawaban hebat semua orang. Saya yakin Anda dapat menginstal kedua nodejs dan npm sekarang! mengagumkan
qodeninja


... dengan EPEL (instal instruksi jika Anda belum memiliki repo: rackspace.com/knowledge_center/article/… ).
geerlingguy

Saya tidak berpikir EPEL berfungsi lagi - atau tidak berfungsi di Centos 7.
jcollum

Jawaban:


139
su - 
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install

Perhatikan bahwa ini membutuhkan Python 2.6+ untuk digunakan di ./configureatas. Anda dapat memodifikasi file "configure" untuk mengarah ke python2.7baris 1 jika perlu.

Untuk membuat paket RPM, Anda dapat menggunakan FPM :

# wget http://nodejs.org/dist/node-latest.tar.gz
# tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
# ./configure --prefix=/usr/
# make
# mkdir /tmp/nodejs
# make install DESTDIR=/tmp/nodejs/
# tree -L 3 /tmp/nodejs/
/tmp/nodejs/
└── usr
    ├── bin
    │   ├── node
    │   ├── node-waf
    │   └── npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ├── include
    │   └── node
    ├── lib
    │   ├── dtrace
    │   ├── node
    │   └── node_modules
    └── share
        └── man

Sekarang buat nodejspaket:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib

Kemudian instal dan periksa versinya:

# rpm -ivh nodejs-0.8.18-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:nodejs                 ########################################### [100%]

# /usr/bin/node --version
v0.8.18

Sumber: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
tapi itu dengan anggapan saya telah menginstal yang benar? apa id saya tidak?
qodeninja

9
Saya perlu menyertakan yum install gcc-c ++
Yehosef

17
Meskipun ini secara teknis benar, untuk segala jenis rawatan atau pengulangan, sangat dianjurkan untuk mengelola paket melalui RPM (atau apa pun kemasan distro Anda) daripada membangun dan menginstal secara manual dari sumber pada setiap mesin yang dibutuhkan. Sejumlah jawaban di bawah tautan ke paket-paket yang dibuat sebelumnya.
Jason Antman

5
Mencoba mengelola Node.JS dan ekosistemnya melalui RPM sekarang adalah latihan yang sia-sia, dan saya katakan ini sebagai seseorang yang secara singkat menjalankan repo yum yang berisi Node dan sejumlah paket modul.
jgoldschrafe

5
@IsaacRabinovitch Mereka menambahkan ternary if, yang tidak muncul sampai Python 2.5. Karena CentOS mengikuti jalur RHEL untuk mengelompokkan sistem Python ke versi 2.4 yang disesuaikan secara custom, solusi saya adalah untuk yum install python26 python26-develkemudian menjalankan python26 configurealih-alih ./configure. Kemudian, karena Makefilejuga mengeksekusi skrip Python, saya mendefinisikan PYTHONvariabel di sana sebagai python26ganti python. Juga, Anda akan perlu g++di sana, jadi jika Anda belum melakukannya, Anda harus melakukannya yum install gcc-++.
Hank Gay

64

Jika Anda memiliki CentOS 6.x, dan telah mengaktifkan repositori EPEL , Anda dapat menggunakan yum untuk menginstal node / npm:

$ sudo yum install npm

Setelah instalasi selesai, periksa untuk memastikan simpul sudah diatur dengan benar:

$ node -v

(Harus mengembalikan sesuatu seperti v0.10.36).

Jika Anda menginginkan versi Node.js yang lebih baru (mis. 4.x, 5.x, dll.), Anda dapat menggunakan repositori yodes Nodesource bukan EPEL.


2
Ini bekerja dengan baik pada sistem CentOS 6.4 saya dan memberi saya node dan npm. Saya mendapat simpul 0.10.13, hanya sedikit dari tarbal src terbaru 0.10.15. Tampaknya ini perlu upvoting lebih untuk menonjol karena mengalahkan opsi 'install from source'.
Neek

1
Ikuti ini untuk menginstal repo EPEL.
Lee Chee Kiam

1
untuk memperbarui, aktifkan menjalankan repositori epel yum install -y epel-release, maka Anda dapat menginstal node dan npm dengan yum.
svassr

Saya tidak bisa mendapatkan epel atau rilis-epel untuk bekerja dengan yum untuk v4.2.x. Jawaban nave.sh di bawah ini bekerja dengan baik.
jcollum

1
Menginstal melalui yum memberi saya versi yang sangat lama v0.10.42 ... Bagaimana saya bisa menginstal Node via yum / rpm untuk mendapatkan versi terbaru (saat ini 5.9.0)?
dokaspar

27

Inti "Menginstal Node.js melalui manajer paket" TIDAK berisi instruksi untuk menginstal nodejs di CentOS lagi. Sejak Fedora 18, nodejs menjadi bagian dari repo standar. Saya mencoba repo "epel-fedora-nodejs" , dan menemukannya tidak lagi diperbarui, meninggalkan versi di 0.6.0 yang sudah ketinggalan zaman.

Berita baiknya adalah, kami memiliki nave , Lingkungan Virtual untuk Node, untuk membantu kami.

https://github.com/isaacs/nave

Menginstal nodejs sudah mati mudah sekarang.

$ wget https://raw.github.com/isaacs/nave/master/nave.sh
$ chmod +x nave.sh
$ ./nave.sh install 0.8.8
$ ./nave.sh use 0.8.8
$ node -v  
v0.8.8

Dalam file nave.sh, Anda mungkin harus mengubah url lokal agar sesuai dengan struktur dist terbaru dari nodejs. Untuk 0.11.0 saya mengubah nave.sh untuk memiliki URL berikut

" http://nodejs.org/dist/v $ version / node-v $ version-linux-x64.tar.gz"


1
nodejs.tchol.org sudah mati sekarang
jelaskan

@explunit Saya baru saja memperbarui jawabannya. Silakan coba.
user974312

FYI Ini sepertinya menginstalnya hanya untuk pengguna ini. Jika Anda ingin menginstalnya untuk seluruh sistem: ./nave.sh usemain <versi Anda>
awl

"nodejs menjadi bagian dari repo standar" - pada CentOS 7 ini sangat ketinggalan zaman. Versi yang diinstal adalah v10.x (pada CentOS yang digunakan dept IT kami).
jcollum

13

Untuk CentOS

yum install gcc-c++ make git
cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

2
Anda harus menggunakan versi yang dirilis bukan versi github, kecuali Anda berencana berkontribusi pada proyek node.
BT

11

[Sunting] Terima kasih David untuk menunjukkan di komentar di bawah bahwa situs nodejs.tchol.org sekarang menunjuk ke situs spam (sic!) .. Jadi jawaban ini tidak berfungsi lagi, jangan gunakan itu!

Saya dapat mengkonfirmasi bahwa metode yang dijelaskan oleh Chris dalam solusinya tidak bekerja di CentOS 5.4 (saya telah melakukannya beberapa menit yang lalu :))

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

PS: tentu saja Anda harus root (atau menggunakan sudo) untuk menginstalnya ..

Selain menginstal dari sumber (yang selalu merupakan pilihan) mungkin masih ada alternatif: di sini saya membaca bahwa "node.js telah diterima di Fedora Rawhide pada Desember 2012 dan akan tersedia di Fedora 18." , jadi mungkin akhirnya akan masuk ke repositori CentOS standar

Saya akan melihat ini ..


3
Ini bekerja dengan baik di CentOS 6. Terima kasih!
KyleFarris

12
"nodejs.tchol.org" sudah mati sekarang
David Newcomb

2
Maka Anda hanya perlu menginstal dari sumber. Jangan takut.
John Hunt

2
@JohnHunt Menginstal dari sumber berarti Anda tidak dapat menghapus lagi dengan bersih. Saya punya masalah yang sama dengan Ruby. Untungnya, saya bisa mengembalikan image VM ... Menginstal dari sumber berarti Anda harus memiliki pemahaman yang mendalam tentang paket yang Anda instal. Mengingat ada ribuan paket linux, ini bukan pilihan!
Christian

1
"Tautan di atas"? Jawaban diurutkan berdasarkan suara, dan jawaban Chris ada di bawah Anda.
Isaac Rabinovitch

10

Seperti disebutkan di atas, "tchol.org" sudah tidak ada, meninggalkan orang-orang CentOS yang mengabaikan penggunaan pengelola paket, atau beralih ke OS lain. Saya membuat perjanjian dengan diri saya sendiri terhadap setiap melakukan yang sebelumnya (lagi) pada semua kecuali kotak eksperimental / dev.

Untungnya, masih ada rpms yang tersedia di: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Abaikan saja rpm untuk installer-repo, yang mengarahkan yum ke situs yang mati. Itu seharusnya memberi kita sedikit waktu, kecuali / sampai mereka menjadi usang.

Saya akan tetap membuka mata untuk repo yang lebih baru, dan mengirim kembali jika saya menemukannya.


Saya akan mengatakan versi 0,6 di tautan Anda sudah cukup usang. Tampaknya benar-benar tidak ada pilihan yang baik untuk RHEL / CentOS sekarang, yang aneh mengingat bahwa Red Hat sendiri menawarkan node.js PaaS
Explunit

8

Ini bekerja untuk saya di CentOS 5.7:

yum install openssl-devel 
yum install python27
yum install gcc-c++
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v[tab]
python2.7 configure
make PYTHON=python2.7
make install

3
Saya harus menggunakan python 2.6 pada CentOS 5.10 saya, karena python 2.7 tidak dalam repo.
ohho

7

Ada satu pendekatan lagi yang belum saya lihat dalam jawaban lain, dan itu adalah menggunakan distribusi biner untuk Linux yang telah diterbitkan sejak 0.8.6

Berikut skrip yang saya gunakan:

# get the latest stable binary 
latest_node=$(curl http://nodejs.org/dist/latest/SHASUMS.txt | grep 'linux-x64.tar.gz' | awk '{ print $2 }')
wget -O ~/nodestable.tar.gz http://nodejs.org/dist/latest/$latest_node
cd /usr/local/
sudo tar xzvf ~/nodestable.tar.gz --strip=1

Atau, jika Anda menginginkan versi tertentu (mis. Tetap menggunakan seri 0.8):

wget http://nodejs.org/dist/v0.8.22/node-v0.8.22-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.22-linux-x64.tar.gz --strip=1

Dan bagi saya di CentOS 6.3, saya harus menambahkan tautan berikut sehingga perintah simpul dan npm bekerja dari pengguna biasa atau dari sudo. Mungkin tidak diperlukan tergantung pada versi Anda.

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

Terus terang, situasi untuk node.js di CentOS / RHEL agak buruk, karena tidak ada repos yang menyertakan node.js (lihat pertanyaan terkait di sini ). Jawaban ini memiliki kelemahan yang sama seperti yang disebutkan sebelumnya untuk kompilasi dari sumber.


7

Jawaban di atas sudah usang

SEBAGAI ROOT

curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs

dan kamu selesai.

verifikasi pemasangan Anda dengan

node -v

Versi curl saya sepertinya tidak menyukai Otoritas Penandatanganan sertifikat SSL url, sehingga skrip gagal diam-diam. Anda bisa melewatinya menggunakan opsi curl -k.
Spike Williams

Selain itu, setelah Anda menambahkan -k ke perintah curl di atas, Anda juga perlu memperbarui referensi ke curl unduhan dari domain itu di skrip "setup" yang diunduh. Kemudian jalankan skrip itu secara manual menggunakan bash.
Spike Williams

5

Tidak ada yang disebutkan nvmuntuk menangani (banyak) dengan aman dan mudah Instalasi Node https://github.com/creationix/nvm ? Saya merasa sangat berguna.

Bahkan berguna untuk membangun Node file rilis pohon dan paket rpm sehingga kustom tanpa scripting terlalu banyak, latest-node, wget, ./configure, make, make installbla bla.

nvm install 0.10.9

Akan mengunduh binari atau mengkompilasi kode sumber sesuai dengan rilis.


apakah ada pemasangan offline?
amit patel

4

Jalankan sebagai root pada RHEL, CentOS atau Fedora, untuk Node.js v4 LTS Argon:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

Atau untuk Node.js v5:

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

Atau untuk Node.js 0.10:

curl --silent --location https://rpm.nodesource.com/setup | bash -

Kemudian instal, sebagai root:

yum -y install nodejs

sumber: https://nodejs.org/en/download/package-manager/


Satu-satunya jawaban yang berfungsi untuk CentOS 7.2. Dan bekerja sangat cepat dan sempurna.!
writeToBhuwan

rekomendasi: kunjungi proyek NVM di GitHub dan dapatkan instruksi definitif dari README: github.com/creationix/nvm#installation
Kay V

3

Saya memiliki beberapa instruksi yang cukup mudah, bersama dengan file .spec di sini:

http://www.chrisabernethy.com/installing-node-js-on-centos-redhat/

Anda akan mengkompilasi ini dari sumber, jadi Anda harus memastikan bahwa Anda memiliki semua paket yang diperlukan untuk melakukan itu di sistem Anda (gcc dan teman-teman). Serangkaian instruksi ini untuk membuat RPM, jadi jika Anda melewatkan paket yang dibutuhkan, rpmbuild akan memberi tahu Anda paket mana yang perlu Anda instal terlebih dahulu.


1
Selamat Datang di Kesalahan Server! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
user9517

Juga, tautannya merujuk ke / usr / src / redhat, yang sepertinya tidak ada di instalasi CentOS 5 saya (ada di / usr / local / src jika saya mengerti dengan benar)
Kato

2
Perubahan terbaru juga akan mengharuskan orang untuk memperbarui instalasi Python mereka (atau mengkonfigurasi tidak akan bekerja pada server CentOS yang masih menggunakan Python 2.4) .. Pertimbangkan untuk menyegarkan informasi dan menempatkannya di sini?
Tim Post

3

Anda juga akan membutuhkan npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install

tidak lebih itu dilengkapi dengan simpul.
ThomasReggi

3

Anda bisa menggunakan nodebrew . $ curl -L git.io/nodebrew | perl - setup $ export PATH=$HOME/.nodebrew/current/bin:$PATH $ source ~/.bashrc $ nodebrew install-binary latest $ nodebrew use latest $ node -v


2

Untuk Ubuntu, ini bekerja untuk saya untuk versi 0.4.10

cd /usr/local/src/
sudo wget http://nodejs.org/dist/node-v0.4.10.tar.gz
sudo tar zxvf node-v0.4.10.tar.gz 
cd node-v0.4.10/
sudo ./configure 
sudo make
sudo make install

pertanyaannya adalah untuk CentOS
jcollum

2

di sini adalah Dockerfile saya yang menginstal simpul v0.10.36 di centOS 7

FROM centos:7

RUN    yum -y update
RUN    yum -y install vi, vim, unzip, tar
RUN    yum -y install wget, curl, git

RUN    yum -y install epel-release
RUN    yum -y install npm

2

Jawaban saya untuk versi 4+:

yum -y install wget
wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz
tar xzf node-v4.0.0-linux-x64.tar.gz -C /usr/local
rm -rf node-v4.0.0-linux-x64.tar.gz
mv /usr/local/node-v4.0.0-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

Periksa di folder https://nodejs.org/dist/latest/ untuk menemukan tautan unduhan untuk versi terbaru.


Ini menyelamatkan saya di server CentOS yang menjalankan Plesk - membuat versi terbaru (5) dari sumber gagal karena gcc sudah ketinggalan zaman. Saya akan memperbarui gcc tetapi biasanya memperbarui apa pun secara manual melalui yum mengubah Plesk menjadi anak yang berteriak.
twistedpixel

apakah ada tar untuk 4.x stable? Jawabannya akan lebih baik jika bertahan beberapa perubahan versi.
jcollum

Saya mengedit jawaban saya untuk memasukkan tautan ke folder distribusi terbaru tempat Anda dapat menemukan pemasangan khusus distro.
Evan Siroky

1

Kode di bawah ini bekerja dengan sangat baik pada CentOS 6

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

Ini tidak berfungsi lagi, http://nodejs.tchol.org tidak online lagi.


Dulu bekerja. Sepertinya mesin itu tidak ada lagi.
rox0r

1

Saya pergi melalui tugas melakukan instalasi ini sendiri di RHEL 5.8 belum lama ini. Sayangnya, dengan nodejs.tchol.org menjadi offline, satu-satunya pilihan adalah membangunnya dari sumber.

Namun, proses pembuatan menjadi sedikit rumit karena skrip build melibatkan kode python yang tidak berfungsi dengan versi default Python di RHEL. Setelah banyak trial and error (dan banyak googling), saya menemukan posting blog ini yang pada dasarnya menggambarkan langkah demi langkah pada tugas-tugas berikut yang diperlukan.

Sebuah. Instal Python 2.6 b. Atur versi python itu sebagai versi alternatif, lalu atur sebagai default c. mengkonfigurasi dan menginstal node.js d. Mengganti Python kembali ke versi 2.4 standar.

Kuncinya adalah Anda harus beralih kembali ke Python 2.4 sesudahnya; jika tidak, hal-hal sederhana seperti yum akan gagal.

http://www.robeesworld.com/blog/31/installing_node_js_0_8_under_centos_5_8


1

Setelah menginstal menggunakan jawaban berperingkat teratas, saya tidak dapat menginstal modul global (-g) tanpa izin Sudo. Pembaruan NPM menunjukkan kesalahan. Metode di bawah ini berfungsi dengan sempurna bagi saya, tidak perlu izin SU atau SUDO.

Saya menginstal Node.js dan NPM menggunakan metode di bawah ini yang diambil dari ( https://gist.github.com/isaacs/579814 ) tetapi memodifikasi dua baris perintah sesuai saran dari komentar yang diposting oleh deesejohn di halaman itu.

cd
sudo yum install gcc-c++
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=$HOME/local
make install
curl -L https://www.npmjs.org/install.sh | sh

Periksa versi yang diinstal menggunakan node -vdannpm -v

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.