Cách cài đặt Node.JS trên Amazon Linux


251

Tôi đã thấy bài viết về việc sử dụng yum để cài đặt các phụ thuộc và sau đó cài đặt Node.JS & NPM từ nguồn. Trong khi điều này không hoạt động, tôi cảm thấy như Node.JS và NPM nên ở trong một repo công khai ở đâu đó.

Làm cách nào tôi có thể cài đặt Node.JS và NPM trong một lệnh trên AWS Amazon Linux?


Câu trả lời:


396

Tình cờ gặp phải điều này, thật khó để tìm lại sau này. Đưa vào đây cho hậu thế:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: Kể từ tháng 7 năm 2016, EDIT 1 không còn hoạt động cho nodejs 4 (và EDIT 2 cũng không). Câu trả lời này ( https://stackoverflow.com/a353165401/78935 ) đưa ra một lớp lót thực sự.

EDIT 1: Nếu bạn đang tìm kiếm nodejs 4, vui lòng thử repo thử nghiệm EPEL:

sudo yum install nodejs --enablerepo=epel-testing

EDIT 2: Để nâng cấp từ nodejs 0.12 được cài đặt thông qua repo EPEL bằng lệnh trên, đến nodejs 4 từ repo thử nghiệm EPEL, vui lòng làm theo các bước sau:

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

Các gói mới hơn đặt các nhị phân nút vào /usr/bin, thay vì /usr/local/bin.

Và một số nền tảng:

Tùy chọn --enablerepo=epelgây ra yumđể tìm kiếm các gói trong kho EPEL.

EPEL (Gói bổ sung dành cho doanh nghiệp Linux) là dự án kho lưu trữ dựa trên cộng đồng mã nguồn mở và miễn phí từ nhóm Fedora, cung cấp các gói phần mềm bổ sung chất lượng cao 100% cho phân phối Linux, bao gồm cả RHEL (Red Hat Enterprise Linux), CentOS và Khoa học Linux. Dự án Epel không phải là một phần của hệ điều hành RHEL / Cent nhưng nó được thiết kế cho các bản phân phối Linux lớn bằng cách cung cấp nhiều gói nguồn mở như mạng, quản trị hệ thống, lập trình, giám sát, v.v. Hầu hết các gói epel được duy trì bởi Fedora repo.

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


8
Đây chắc chắn là cách tiếp cận nhanh nhất tôi từng thấy, nhưng một cảnh báo có thể hữu ích - kho lưu trữ EPEL không đồng bộ với nút ổn định hiện tại và bạn không thể sử dụng "n" để khắc phục điều đó khi được cài đặt cách (ít nhất, không phải không có một loại phép thuật nào đó vượt ra ngoài tôi). Phương pháp cài đặt git clone / make tẻ nhạt là cách duy nhất tôi tìm thấy để đảm bảo cài đặt phù hợp và hiện tại.
Dấu chấm phẩy

22
Tôi đã nhận được nút 0.10.36 và npm 1.3.6 trong số này. Đây là rất lỗi thời.
voltrevo

4
@Semicolon bạn có thể khắc phục điều đó bằng cách chỉ cài đặt npm, sau đó sudo npm install -g nsudo n v0.12bất kỳ phiên bản nào khác mà bạn thích.
không giới hạn

4
n cập nhật như mong đợi, nhưng nó không cập nhật liên kết nút đúng cách. Bạn sẽ phải chạy lệnh bổ sung:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow

4
Câu trả lời này không hoạt động vì sudo yum install nodejs --enablerepo=epel-testingtrả về lỗi: "Không có nútjj gói nào khả dụng." trong khi sudo yum install nodejs --enablerepo=epelchỉ đưa ra các phiên bản rất cũ ...
goredwards

224

Giống như những người khác, câu trả lời được chấp nhận cũng cho tôi một phiên bản lỗi thời.

Đây là một cách khác để làm điều đó hoạt động rất tốt:

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

Bạn cũng có thể thay thế 12.x bằng một phiên bản khác, chẳng hạn như 10.x, 8.x, v.v.

Bạn có thể xem tất cả các phiên bản có sẵn trên trang NodeSource Github và kéo từ đó nếu muốn.

Lưu ý: bạn có thể cần chạy bằng cách sử dụng sudotùy thuộc vào môi trường của bạn.


4
Đây là những gì tôi cần sử dụng trên AWS Elastic Beanstalk để có phiên bản mới hơn phiên bản đã cài đặt.
Jon Burgess

1
Công trình chỉ hoàn thiện khi tôi cần phải chạy npm installcho package.json,
Chetabahana

32
Tôi cần chạy cái này vớicurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342

16
Nếu bạn bị từ chối cấp phép, bạn sẽ cần thêm một số sudo. curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -sudo yum -y install nodejs
sampoh

1
nếu bạn muốn cài đặt Node.js 8.x, hãy thực hiện shoudcurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun

64

Câu trả lời được chấp nhận đã cho tôi nút 0.10.36 và npm 1.3.6 rất lỗi thời. Tôi đã lấy tarball linux-x64 mới nhất từ ​​trang tải xuống của nodejs và không quá khó để cài đặt: 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

Bây giờ hãy tải lên tar bạn vừa tải xuống -

tar xzf node.tgz

Chạy lệnh này và sau đó thêm nó vào .bashrc:

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

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

Và cập nhật npm(chỉ một lần, không thêm vào .bashrc):

npm install -g npm

Lưu ý rằng -gcó nghĩa là toàn cầu, thực sự có nghĩa là toàn cầu đối với trường hợp npm đó là trường hợp chúng ta vừa cài đặt và được giới hạn cho người dùng hiện tại. Điều này sẽ áp dụng cho tất cả các gói mà npm cài đặt 'toàn cầu'.


4
Đây thực sự là câu trả lời hay nhất, khi bạn có được chính xác phiên bản bạn muốn
Mariusz

1
Muốn đọc câu trả lời này trước - đây sẽ là câu trả lời được chấp nhận vì bạn có thể chọn phiên bản bạn muốn cài đặt. - cảm ơn bạn @voltrevo
Mike W

2
@voltrevo cảm ơn bạn đã trả lời. Có, có nhiều cách khác để cài đặt nút trên Linux. Câu trả lời được chấp nhận là một lớp lót, tình cờ cắm vào hệ thống gói YUM để cập nhật tự động và được quản lý. Các gói trong repo YUM thường có xu hướng cũ hơn một chút và cũng được thử nghiệm tốt hơn một chút với các triển khai rộng hơn. Cá nhân, tôi khuyên bạn nên để những môi trường phát triển địa phương mới nhất và tốt nhất và sử dụng một cái gì đó giống như câu trả lời được chấp nhận cho môi trường sản xuất. Chúc mừng!
Tim Fulmer

đối với các phiên bản centos cũ, đây là cách tốt nhất để sử dụng
user1336321

Lỗi sau khi chạy nút -v bây giờ là: 'không thể thực thi tệp nhị phân'. Có ý kiến ​​gì không?
JosFabre

28

Quy trình phù hợp với tôi (làm theo các hướng dẫn khá cũ này với một vài cập nhật):

  • kiểm tra git được cài đặt git --versionhoặc cài đặt nó qua:
    sudo yum install git
  • cài đặt gcc và openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • sao chép git repo vào một thư mục có tên node(mà bạn có thể xóa sau):
    git clone https://github.com/nodejs/node.git
  • quyết định phiên bản nút nào bạn muốn tại https://github.com/nodejs/node/release
  • đi đến thư mục nút vừa tạo và cài đặt nút
    cd node
    git checkout v6.1.0- đặt phiên bản bạn muốn sauv
    ./configure
    make
    sudo make install
  • kiểm tra nút đó được cài đặt / làm việc với một trong hai node --versionhoặc đơn giản node(nút thoát thông qua process.exit()hoặc ^Cx 2 hoặc ^C+ exit)
  • kiểm tra phiên bản npm: npm --versionvà cập nhật nếu cần thông quasudo npm install -g npm
  • Tùy chọn: xóa nodethư mục vớirm -r node

Ghi chú:

  1. Câu trả lời được chấp nhận không hoạt động vì sudo yum install nodejs --enablerepo=epel-testingtrả về lỗi: No package nodejs available.
    ... và sudo yum install nodejs --enablerepo=epel(tức là không có -testing) chỉ đưa ra các phiên bản rất cũ.
  2. Nếu bạn đã cài đặt phiên bản nút cũ, bạn có thể xóa nó bằng:
    sudo npm uninstall npm -g ... vì npm có thể tự gỡ cài đặt
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejstrong câu trả lời được chấp nhận sẽ không hoạt động vì rmđây không phải là lệnh yum hợp lệ xem yum --help)
  3. Có thể sao chép repo nút qua git clone git://github.com/nodejs/node.gitchứ không phải git clone https://github.com/nodejs/node.gitbạn có thể gặp một số lỗi khác nhau (xem tại đây ).
  4. Nếu bạn đã có một /nodethư mục từ bản cài đặt trước, hãy xóa nó trước khi sử dụng lệnh git clone (hoặc sẽ có xung đột):
    rm -r node
  5. Nếu bạn gặp sự cố với bất kỳ sudo npm...lệnh nào - như sudo: npm: command not foundvà / hoặc có vấn đề về quyền khi cài đặt các gói nút mà không có sudo, hãy chỉnh sửa sudo nano /etc/sudoersvà thêm :/usr/local/binvào cuối dòng Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binđể nó đọcDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

3
@Gio có rất nhiều câu trả lời khác để lựa chọn nếu câu hỏi này không làm bạn hài lòng ;-) ... 'trong một lệnh' không phải là phần quan trọng nhất của câu hỏi IMHO.
goredwards

Điều này rất hữu ích sau khi tôi mắc lỗi với câu trả lời chấp nhận. Cảm ơn bạn
Daron Tancharoen

@talentsandrew các etc/sudoersđiều khiển tệp có thể chạy lệnh nào như người dùng trên máy nào - nhưng sẽ chỉ chạy / tìm / tìm kiếm các lệnh trong các thư mục được liệt kê trên secure_pathNút của nó nên được cài đặt /usr/local/binvà nếu có sudo thì nên tìm nó - xem stackoverflow .com / a / 31734090/3092596 Nếu sudo không tìm thấy nó, thì đường dẫn đó cần được thêm vào sudo secure_path- xem thêm: superuser.com/a/927599/404543
goredwards

Tôi muốn thêm rằng bạn có thể phải sửa các liên kết tượng trưng của mình sau khi cài đặt bằng phương pháp này: 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

Cài đặt đơn giản với NVM ...

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

Để cài đặt một phiên bản nhất định (chẳng hạn như 12.16.3), hãy thay đổi dòng cuối cùng thành

nvm install 12.16.3

Để biết thêm thông tin về cách sử dụng NVM, hãy truy cập tài liệu: https://github.com/nvm-sh/nvm


1
Điều này hoàn toàn hoạt động. Mất ít thời gian hơn @goredwards trả lời quá. Đã thử trên AMI được tối ưu hóa ECS của Amazon.
Jayant Bhawal

3
Câu trả lời được chấp nhận và tất cả các EDIT 1-3 không phù hợp với tôi, nhưng điều này đã có hiệu quả. Cảm ơn!
seantomburke

1
gọn gàng, nhỏ gọn.
Stephen Tetreault

1
đơn giản và tuyệt vời
Abhinav

2
Đây nên là câu trả lời. Đó là tốt nhất cho đến nay trừ khi ai đó đang tìm cách xây dựng từ nguồn.
Kirkland

19

Đối với phiên bản L4 v4, hãy sử dụng:

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

Đối với Node.js v6, hãy sử dụng:

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

Tôi cũng gặp một số vấn đề khi cố gắng cài đặt các addon gốc trên Amazon Linux. Nếu bạn muốn làm điều này, bạn cũng nên cài đặt các công cụ xây dựng:

yum install gcc-c++ make

Đây là một câu trả lời tuyệt vời. Tôi không còn phải mất 20 phút để cài đặt Node nữa.
David Webber

nếu bạn chạy một ứng dụng php với một số npm được biên dịch trên beanstalk đàn hồi, bạn có thể sử dụng ứng dụng này. nó là một phần của tệp install.config đã làm cho nó hoạt động - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

Tôi vừa đi qua đây. Tôi đã thử một vài câu trả lời phổ biến hơn, nhưng cuối cùng, điều làm việc cho tôi là hướng dẫn thiết lập nhanh của Amazon.

Hướng dẫn: Thiết lập Node.js trên sơ đồ Amazon EC2

Ý chính của hướng dẫn là:

  1. Hãy chắc chắn rằng bạn đang ssh'd vào ví dụ.
  2. Lấy nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. Hoạt động . ~/.nvm/nvm.sh
  4. Cài đặt nút bằng nvm nvm install 4.4.5(LƯU Ý: Bạn có thể chọn một phiên bản khác. Trước tiên hãy kiểm tra các phiên bản từ xa bằng cách chạy $ nvm ls-remote)
  5. Cuối cùng, kiểm tra xem bạn đã cài đặt nút Node đúng chưa bằng cách chạy $ node -e "console.log('Running Node.js' + process.version)"

Hy vọng điều này sẽ giúp người tiếp theo.


Bạn có thể muốn giải thích nội dung te trong liên kết đó. Một câu trả lời tốt chỉ sử dụng một liên kết như một tài liệu tham khảo, không phải là chủ đề chính của câu trả lời.
BusyProgrammer

6

Có vẻ như không ai đề cập đến điều này. Trên Amazon Linux 2 , cách chính thức để tải EPEL là:

  • sudo amazon-linux-extras install epel

... sau đó bạn có thể:

  • sudo yum install nodejs

     

Xem Thư viện Extras (Amazon Linux 2)


Vâng, đây có vẻ như là câu trả lời tốt nhất!
Kéo dài

@Stretch Không hẳn. Nó cài đặt Node 6. Quá cũ.
GabrielBB

5

Tôi đã cài đặt Node.js 6.x và muốn cài đặt Node.js 8.x.

Đây là các lệnh tôi đã sử dụng (được lấy từ trang web của Nodejs với một vài bước bổ sung để xử lý dữ liệu được lưu trong bộ đệm yum):

  1. sudo yum remove nodejs: Gỡ cài đặt Node.js 6.x (Tôi không biết điều này có cần thiết hay không)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Tái tạo bộ đệm siêu dữ liệu (điều này không có trong tài liệu, nhưng yum vẫn cố cài đặt Node.jx 6.x, không thành công, cho đến khi tôi ban hành hai lệnh cuối cùng này)
  5. sudo yum install nodejs: Cài đặt Node.js 8.x

3

sudo yum install nodejs npm --enablerepo=epellàm việc cho Amazon Linux AMI. curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs hoạt động cho RedHat.


2

Giải pháp đơn giản nhất là cái này (làm cái này như 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

nhập mô tả hình ảnh ở đây


Cảm ơn, nó đã giúp
arupjbasu



0

Như đã đề cập trong tài liệu chính thức, đơn giản dưới 2 bước -

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

0

Đối với những người muốn có câu trả lời được chấp nhận chạy trong Ansible mà không cần tìm kiếm thêm, tôi đăng nhiệm vụ ở đây để thuận tiện và tham khảo trong tương lai.

Đề xuất câu trả lời được chấp nhận: https://stackoverflow.com/a/35165401/78935

Nhiệm vụ tương đương

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

0

Bạn có thể cập nhật / cài đặt nút bằng cách cài đặt lại gói đã cài đặt lên phiên bản hiện tại có thể giúp chúng tôi tránh khỏi các lỗi, trong khi thực hiện cập nhật.

Điều này được thực hiện bởi nvm với lệnh dưới đây. Ở đây, tôi đã cập nhật phiên bản nút của mình lên 8 và cài đặt lại tất cả các gói có sẵn cho v8!

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

Nó cũng hoạt động trên phiên bản AWS Linux.

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.