Làm thế nào để bạn cài đặt Node.JS trên CentOS?


131

Tôi đã tìm thấy nhiều hướng dẫn cài đặt cho Node.js nhưng tất cả chúng đều có vẻ phức tạp - Tôi không phải là quản trị viên siêu sys nhưng tôi có thể tìm hiểu. Tôi có yum trên hệ thống, nhưng tôi không tìm thấy bất kỳ gói node.js nào và tôi không chắc cách biên dịch mã trên máy chủ hoặc nơi đặt nó.


Cảm ơn câu trả lời tuyệt vời của mọi người. Tôi tin rằng bạn có thể cài đặt cả nodejs và npm ngay bây giờ! tuyệt vời
qodeninja


... Với EPEL (hướng dẫn cài đặt nếu bạn chưa có repo: rackspace.com/ledgeledge_center/article/ mẹo ).
geummingguy

Tôi không nghĩ công cụ EPEL hoạt động nữa - hoặc không hoạt động trong Centos 7.
jcollum

Câu trả lời:


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

Lưu ý rằng điều này đòi hỏi Python 2.6+ để sử dụng ./configureở trên. Bạn có thể sửa đổi tệp "configure" để trỏ đến python2.7dòng 1 nếu cần.

Để tạo gói RPM, bạn có thể sử dụng 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

Bây giờ thực hiện nodejsgói:

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

Sau đó cài đặt và kiểm tra phiên bản:

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

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

Nguồn: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
Nhưng đó là giả sử tôi đã cài đặt đúng không? tôi không làm gì
qodeninja

9
Tôi cần bao gồm yum cài đặt gcc-c ++
Yehosef

17
Mặc dù điều này là chính xác về mặt kỹ thuật, đối với bất kỳ loại bảo trì hoặc lặp lại nào, chúng tôi khuyên bạn nên quản lý các gói thông qua RPM (hoặc bất cứ cách đóng gói nào của distro) thay vì xây dựng và cài đặt thủ công từ nguồn trên mọi máy khi cần thiết. Một số câu trả lời dưới đây liên kết đến các gói dựng sẵn.
Jason Antman

5
Cố gắng quản lý Node.JS và bất kỳ hệ sinh thái nào của nó thông qua RPM ngay bây giờ là một bài tập vô ích, và tôi nói điều này như một người chạy nhanh một repo yum có chứa Node và một số gói mô-đun.
jgoldschrafe

5
@IsaacRabinovitch Họ đã thêm một ternary if, điều này không xảy ra cho đến Python 2.5. Do CentOS đi theo con đường RHEL để gắn Python hệ thống vào một số phiên bản 2.4 được vá tùy chỉnh, nên giải pháp của tôi là yum install python26 python26-develvà sau đó thực thi python26 configurethay vì ./configure. Sau đó, vì Makefilecũng thực thi các tập lệnh Python, tôi đã định nghĩa PYTHONbiến trong đó là python26thay thế python. Ngoài ra, bạn sẽ cần g++ở đó, vì vậy nếu bạn chưa có, bạn nên làm yum install gcc-++.
Hank Gay

64

Nếu bạn có CentOS 6.x và đã bật kho lưu trữ EPEL , bạn có thể sử dụng yum để cài đặt nút / npm:

$ sudo yum install npm

Sau khi cài đặt hoàn tất, hãy kiểm tra để đảm bảo nút được thiết lập đúng:

$ node -v

(Nên trả lại một cái gì đó như v0.10.36).

Nếu bạn muốn các phiên bản sau của Node.js (ví dụ: 4.x, 5.x, v.v.), bạn có thể sử dụng kho lưu trữ Nodesource yum thay vì EPEL.


2
Điều này hoạt động rất tốt trên hệ thống CentOS 6.4 của tôi và cho tôi nút và npm. Tôi đã nhận được nút 0.10.13, chỉ cần một chút tarball src mới nhất 0.10.15. Có vẻ như điều này cần nâng cao hơn nữa để nổi bật hơn khi nó bỏ qua tùy chọn 'cài đặt từ nguồn'.
Neek

1
Thực hiện theo điều này để cài đặt repo EPEL.
Lee Chee Kiam

1
để cập nhật kích hoạt kho lưu trữ epel yum install -y epel-release, sau đó bạn có thể cài đặt nút và npm bằng yum.
Svassr

Tôi không thể làm cho bản phát hành epel hoặc epel hoạt động với yum cho v4.2.x. Câu trả lời nave.sh dưới đây hoạt động rất đẹp.
jcollum

1
Cài đặt qua yum cung cấp cho tôi phiên bản rất cũ v0.10.42 ... Làm cách nào tôi có thể cài đặt Node qua yum / vòng / phút để có phiên bản mới nhất (hiện là 5.9.0)?
dokaspar 18/03/2016

27

Ý chính "Cài đặt Node.js thông qua trình quản lý gói" KHÔNG chứa hướng dẫn cài đặt nodejs trên CentOS nữa. Kể từ Fedora 18, nodejs trở thành một phần của repo tiêu chuẩn. Tôi thử repo "epel-fedora-nodejs" và thấy nó không còn cập nhật nữa, để lại phiên bản ở mức 0.6.0 đã lỗi thời.

Các tin tốt là, chúng ta có gian giữa , một môi trường ảo cho Node, để giúp chúng tôi.

https://github.com/isaacs/nave

Cài đặt nodejs bây giờ rất dễ.

$ 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

Trong tệp nave.sh, bạn có thể phải thay đổi các url cục bộ để khớp với cấu trúc dist mới nhất của nodejs. Đối với 0.11.0 tôi đã thay đổi nave.sh để có URL sau

" http://nodejs.org/dist/v $ phiên bản / nút-v $ phiên bản-linux-x64.tar.gz"


1
nodejs.tchol.org đã chết ngay bây giờ
khám phá

@explunit Mình mới cập nhật câu trả lời. Hãy thử gian giữa.
dùng974312

FYI Điều này dường như chỉ cài đặt nó cho người dùng này. Nếu bạn muốn cài đặt nó cho toàn bộ hệ thống: ./nave.sh hãy sử dụng <phiên bản của bạn>
awl

"nodejs trở thành một phần của repo tiêu chuẩn" - trên CentOS 7, nó đã hết hạn. Phiên bản được cài đặt là v10.x (trên CentOS mà phòng CNTT của chúng tôi vẫn sử dụng).
jcollum

13

Đối với 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
Bạn nên sử dụng phiên bản đã phát hành chứ không phải phiên bản github, trừ khi bạn dự định đóng góp cho dự án nút.
BT

11

[Chỉnh sửa] Cảm ơn David vì đã chỉ ra trong các bình luận bên dưới rằng trang web nodejs.tchol.org hiện đang trỏ đến một trang web spam (sic!) .. Vì vậy, câu trả lời này không còn hoạt động nữa, đừng sử dụng nó!

Tôi có thể xác nhận rằng phương pháp mà Chris đã giải thích trong giải pháp của mình không hoạt động trong CentOS 5.4 (tôi đã thực hiện nó một phút trước :))

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: tất nhiên bạn phải root (hoặc sử dụng sudo) để cài đặt ..

Bên cạnh việc cài đặt từ nguồn (luôn luôn là một tùy chọn), có thể vẫn còn một lựa chọn khác: ở đây tôi đọc rằng "node.js đã được chấp nhận vào Fedora Raw leather kể từ tháng 12 năm 2012 và sẽ có sẵn trong Fedora 18." , vì vậy có lẽ cuối cùng nó sẽ được đưa vào kho CentOS tiêu chuẩn

Tôi sẽ xem xét điều này ..


3
Điều này hoạt động rất tốt trên CentOS 6. Cảm ơn!
KyleFarris

12
"nodejs.tchol.org" đã chết
David Newcomb

2
Do đó bạn chỉ nên cài đặt từ nguồn. Đừng sợ.
John Hunt

2
@JohnHunt Cài đặt từ nguồn có nghĩa là bạn không thể gỡ cài đặt sạch nữa. Tôi cũng gặp vấn đề tương tự với Ruby. May mắn thay, tôi chỉ có thể quay ngược lại hình ảnh VM ... Cài đặt từ nguồn có nghĩa là bạn cần hiểu sâu về gói bạn đang cài đặt. Xem xét có hàng ngàn gói linux, đây không phải là một lựa chọn!
Christian

1
"Liên kết trên"? Câu trả lời được sắp xếp theo phiếu bầu và Chris hiện ở dưới bạn.
Isaac Rabinovitch

10

Như đã lưu ý ở trên, "tchol.org" đã biến mất, khiến mọi người của CentOS đang xem xét từ bỏ việc sử dụng trình quản lý gói hoặc chuyển sang hệ điều hành khác. Tôi đã thực hiện một hiệp ước với chính mình chống lại mọi việc làm trước đây (một lần nữa) trên tất cả trừ các hộp thử nghiệm / dev.

May mắn thay, vẫn có rpms tại: http : //patches.fedorap People.org/oldnode/ sóng / el6 / x86_64 /

Chỉ cần bỏ qua vòng / phút cho trình cài đặt repo, hướng dẫn yum đến trang web không còn tồn tại. Điều đó sẽ mua cho chúng tôi một ít thời gian, trừ khi / cho đến khi chúng trở nên quá lỗi thời.

Tôi sẽ để mắt mở cho các repos mới hơn và đăng lại nếu tôi tìm thấy chúng.


Tôi muốn nói rằng phiên bản 0.6 trong liên kết của bạn đã khá lỗi thời. Có vẻ như thực sự không có tùy chọn tốt nào cho RHEL / CentOS ngay bây giờ, điều này thật kỳ quặc khi xem xét rằng chính Red Hat cung cấp node.js PaaS
khám phá

8

Điều này làm việc cho tôi trên 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
Tôi phải sử dụng python 2.6 trên CentOS 5.10, vì python 2.7 không có trong repo.
ohho

7

Có một cách tiếp cận khác mà tôi chưa thấy được liệt kê trong bất kỳ câu trả lời nào khác, và đó là sử dụng các bản phân phối nhị phân cho Linux đã được xuất bản từ 0.8.6

Đây là kịch bản tôi sử dụng:

# 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

Hoặc, nếu bạn muốn có một phiên bản cụ thể (ví dụ: nằm trong loạt 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

Và đối với tôi trên CentOS 6.3, tôi đã phải thêm các liên kết sau để các lệnh nút và npm hoạt động từ người dùng thông thường hoặc từ sudo. Có thể không cần thiết tùy thuộc vào phiên bản của bạn.

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

Thành thật mà nói, tình huống cho node.js trên CentOS / RHEL khá tệ, vì không có bản repos nào bao gồm node.js (xem câu hỏi liên quan ở đây ). Câu trả lời này có những nhược điểm giống như được đề cập trước đây để biên dịch từ nguồn.


7

Các câu trả lời ở trên đã lỗi thời

NHƯ ROOT

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

và bạn đã hoàn thành.

xác minh cài đặt của bạn với

node -v

Phiên bản curl của tôi dường như không thích Cơ quan ký kết chứng chỉ SSL của url và do đó, tập lệnh thất bại trong âm thầm. Bạn có thể vượt qua nó bằng cách sử dụng tùy chọn curl -k.
Spike Williams

Ngoài ra, sau khi bạn thêm -k vào lệnh curl ở trên, bạn cũng cần cập nhật tham chiếu để tải xuống curl từ tên miền đó trong tập lệnh "thiết lập" được tải xuống. Sau đó chạy tập lệnh đó bằng tay bằng cách sử dụng bash.
Spike Williams

5

Không ai được đề cập nvmđể xử lý (nhiều) cài đặt Node an toàn và dễ dàng https://github.com/creationix/nvm ? Tôi thấy nó rất hữu ích.

Thậm chí hữu ích để xây dựng một Node file phát hành cây và các gói rpm để tùy chỉnh mà không cần kịch bản quá nhiều, latest-node, wget, ./configure, make, make installblah blah.

nvm install 0.10.9

Sẽ tải về nhị phân hoặc biên dịch mã nguồn theo bản phát hành.


Có cài đặt ngoại tuyến không?
amit patel

4

Chạy với quyền root trên RHEL, CentOS hoặc Fedora, cho Node.js v4 LTS Argon:

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

Ngoài ra, đối với Node.js v5:

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

Ngoài ra, đối với Node.js 0.10:

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

Sau đó cài đặt, với quyền root:

yum -y install nodejs

nguồn: https://nodejs.org/en/doad/package-manager/


Câu trả lời duy nhất hoạt động cho CentOS 7.2. Và làm việc rất nhanh chóng và hoàn hảo.!
writeToBhuwan

đề xuất: truy cập dự án NVM trên GitHub và nhận các hướng dẫn dứt khoát từ README: github.com/creationix/nvm#installation
Kay V

3

Tôi có một số hướng dẫn khá đơn giản, cùng với tệp .spec tại đây:

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

Bạn sẽ biên dịch cái này từ nguồn, vì vậy bạn sẽ cần đảm bảo rằng bạn có tất cả các gói cần thiết để thực hiện điều đó trên hệ thống của bạn (gcc và bạn bè). Bộ hướng dẫn này là để xây dựng RPM, vì vậy nếu bạn đang thiếu bất kỳ gói yêu cầu nào, rpmbuild sẽ cho bạn biết những gói nào bạn cần cài đặt trước.


1
Chào mừng bạn đến với Lỗi Máy chủ! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
dùng9517

Ngoài ra, liên kết đề cập đến / usr / src / redhat, dường như không tồn tại trong bản cài đặt CentOS 5 của tôi (nó ở / usr / local / src nếu tôi hiểu chính xác)
Kato

2
Những thay đổi gần đây cũng sẽ yêu cầu mọi người cập nhật cài đặt Python của họ (hoặc cấu hình sẽ không hoạt động trên bất kỳ máy chủ CentOS nào vẫn sử dụng Python 2.4) .. Hãy xem xét làm mới thông tin và đặt nó ở đây?
Tim Post


3

Bạn có thể sử dụng gật đầu . $ 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

Đối với Ubuntu, điều này làm việc với tôi cho phiên bản 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

câu hỏi dành cho CentOS
jcollum

2

đây là Dockerfile của tôi đã cài đặt nút v0.10.36 trong 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

Câu trả lời của tôi cho phiên bản 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

Kiểm tra trong thư mục https://nodejs.org/dist/latest/ để tìm liên kết tải xuống cho phiên bản mới nhất.


Điều này đã tiết kiệm cho tôi trên máy chủ CentOS chạy Plesk - xây dựng phiên bản mới nhất (5) từ nguồn không thành công do gcc đã quá lỗi thời. Tôi sẽ cập nhật gcc nhưng thường cập nhật mọi thứ thủ công qua yum biến Plesk thành một đứa trẻ đang la hét.
twistpixel

Có tar cho 4.x ổn định không? Câu trả lời sẽ tốt hơn nếu nó tồn tại một vài thay đổi phiên bản.
jcollum

Tôi đã chỉnh sửa câu trả lời của mình để bao gồm một liên kết đến thư mục phân phối mới nhất nơi bạn có thể tìm thấy bản cài đặt dành riêng cho bản phân phối.
Evan Siroky

1

Mã bên dưới hoạt động khá tốt trên 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

Nó không hoạt động nữa, http://nodejs.tchol.org không còn trực tuyến nữa.


Nó được sử dụng để làm việc. Cái máy đó không còn tồn tại nữa.
rox0r

1

Tôi đã tự mình thực hiện nhiệm vụ cài đặt này trên RHEL 5.8 cách đây không lâu. Thật không may, với nodejs.tchol.org sẽ ngoại tuyến, tùy chọn duy nhất là xây dựng nó từ nguồn.

Tuy nhiên, quá trình xây dựng khá phức tạp vì tập lệnh xây dựng liên quan đến mã python không hoạt động với phiên bản mặc định của Python trên RHEL. Sau rất nhiều thử nghiệm và sai sót (và rất nhiều sự choáng váng), tôi đã tìm thấy bài đăng trên blog này về cơ bản mô tả một bước để thực hiện các nhiệm vụ sau đây.

a. Cài đặt Python 2.6 b. Thiết lập phiên bản python đó làm phiên bản thay thế, sau đó đặt nó làm mặc định c. cấu hình và cài đặt node.js d. Chuyển Python trở lại phiên bản 2.4 mặc định.

Điều quan trọng là bạn nên chuyển trở lại Python 2.4 sau đó; nếu không, những điều đơn giản như yum sẽ thất bại.

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


1

Sau khi cài đặt bằng câu trả lời được xếp hạng cao nhất, tôi không thể cài đặt bất kỳ mô-đun toàn cầu (-g) nào mà không có quyền Sudo. Cập nhật NPM cho thấy lỗi. Phương pháp dưới đây hoạt động hoàn hảo đối với tôi, không cần phải có quyền SU hoặc SUDO.

Tôi đã cài đặt Node.js và NPM bằng phương pháp bên dưới được lấy từ ( https://gist.github.com/isaacs/579814 ) nhưng đã sửa đổi hai dòng lệnh theo lời khuyên từ một nhận xét được đăng bởi deesejohn trong trang đó.

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

Kiểm tra phiên bản đã cài đặt bằng node -vnpm -v

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.