วิธีการยำติดตั้ง Node.JS บน Amazon Linux


251

ฉันเห็นการเขียนเกี่ยวกับการใช้ yum เพื่อติดตั้งการอ้างอิงแล้วติดตั้ง Node.JS & NPM จากแหล่งที่มา ในขณะที่ใช้งานได้ฉันรู้สึกว่า Node.JS และ NPM ควรจะอยู่ในที่สาธารณะ repo

ฉันจะติดตั้ง Node.JS และ NPM ในคำสั่งเดียวบน AWS Amazon Linux ได้อย่างไร


คำตอบ:


396

สะดุดเข้ากับเรื่องนี้มันหายากแปลก ๆ อีกครั้งในภายหลัง วางที่นี่เพื่อลูกหลาน:

sudo yum install nodejs npm --enablerepo=epel

แก้ไข 3:ณ เดือนกรกฎาคม 2559 แก้ไข 1ไม่สามารถใช้งานกับ nodejs 4 (และแก้ไข 2ไม่ได้) คำตอบนี้ ( https://stackoverflow.com/a/35165401/78935 ) ให้หนึ่งซับที่แท้จริง

แก้ไข 1:หากคุณกำลังมองหา nodejs 4 โปรดลอง repo การทดสอบ EPEL:

sudo yum install nodejs --enablerepo=epel-testing

แก้ไข 2:หากต้องการอัพเกรดจาก nodejs 0.12 ที่ติดตั้งผ่าน repel EPEL โดยใช้คำสั่งด้านบนเป็น nodejs 4 จาก repo การทดสอบ EPEL โปรดทำตามขั้นตอนเหล่านี้:

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

แพคเกจใหม่ใส่ไบนารีโหนดในแทน/usr/bin/usr/local/bin

และพื้นหลังบางส่วน:

ตัวเลือก--enablerepo=epelทำให้yumการค้นหาแพคเกจในพื้นที่เก็บข้อมูล EPEL

EPEL (Extra Packages สำหรับ Enterprise Linux) เป็นโครงการโอเพ่นซอร์สและพื้นที่เก็บข้อมูลฟรีโดยชุมชนจากทีม Fedora ซึ่งให้บริการซอฟต์แวร์เสริมคุณภาพสูง 100% สำหรับการแจกจ่าย Linux รวมถึง RHEL (Red Hat Enterprise Linux), CentOS และ Scientific Linux โครงการ Epel ไม่ได้เป็นส่วนหนึ่งของ RHEL / Cent OS แต่ได้รับการออกแบบมาสำหรับลีนุกซ์รุ่นใหญ่ ๆ โดยจัดทำแพ็คเกจโอเพนซอร์สมากมายเช่นเครือข่ายผู้ดูแลระบบ sys การเขียนโปรแกรมการตรวจสอบและอื่น ๆ แพ็คเกจ epel ส่วนใหญ่ได้รับการดูแลโดย Fedora repo

ผ่านhttp://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/


8
นี่เป็นวิธีที่เร็วที่สุดที่ฉันเคยเห็น แต่คำเตือนอาจมีประโยชน์ - ที่เก็บ EPEL ไม่ได้ซิงค์กับโหนดที่เสถียรในปัจจุบันและคุณไม่สามารถใช้ "n" เพื่อแก้ไขเมื่อติดตั้งแล้ว ทาง (อย่างน้อยก็ไม่มีเวทย์มนตร์ที่อยู่เหนือฉัน) clit git ที่น่าเบื่อ / ทำการติดตั้งเป็นวิธีเดียวที่ฉันได้พบเพื่อให้แน่ใจว่าการติดตั้งที่สอดคล้องและเป็นปัจจุบัน
Semicolon

22
ฉันได้โหนด 0.10.36 และ npm 1.3.6 จากนี้ สิ่งเหล่านี้ล้าสมัยมาก
voltrevo

4
@Semicolon คุณสามารถแก้ไขได้โดยการติดตั้งเพียง npm จากนั้นsudo npm install -g nและsudo n v0.12หรือรุ่นอื่น ๆ ที่คุณต้องการ
unboundev

4
ไม่มีการอัพเดตตามที่คาดไว้ แต่ไม่ได้อัพเดตลิงก์โหนดอย่างถูกต้อง คุณจะต้องเรียกใช้คำสั่งพิเศษ:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow

4
คำตอบนี้ใช้งานไม่ได้เนื่องจากsudo yum install nodejs --enablerepo=epel-testingส่งคืนข้อผิดพลาด: "ไม่มีแพ็คเกจ nodejs" ในขณะที่sudo yum install nodejs --enablerepo=epelให้รุ่นเก่าเท่านั้น ...
goredwards

224

เช่นเดียวกับคนอื่น ๆ คำตอบที่ได้รับการยอมรับยังทำให้ฉันเป็นรุ่นที่ล้าสมัย

นี่เป็นอีกวิธีในการทำสิ่งที่ได้ผลดี:

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

นอกจากนี้คุณยังสามารถแทนที่ 12.x ด้วยรุ่นอื่นเช่น 10.x, 8.x เป็นต้น

คุณสามารถดูเวอร์ชันทั้งหมดที่มีอยู่ในหน้า NodeSource Githubและดึงจากที่นั่นเช่นกันหากต้องการ

หมายเหตุ: คุณอาจต้องใช้งานโดยsudoขึ้นอยู่กับสภาพแวดล้อมของคุณ


4
นี่คือสิ่งที่ฉันต้องการใช้บน AWS Elastic Beanstalk เพื่อรับเวอร์ชันล่าสุดมากกว่าที่ติดตั้งไว้แล้ว
Jon Burgess

1
ทำงานได้สมบูรณ์แบบในขณะที่ฉันจำเป็นต้องใช้npm installสำหรับpackage.json,
Chetabahana

32
ฉันต้องการเรียกใช้งานด้วยcurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342

16
หากคุณไม่ได้รับอนุญาตคุณจะต้องเพิ่ม sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -และsudo yum -y install nodejs
sampoh

1
ถ้าคุณต้องการติดตั้ง Node.js 8.x, shoud executecurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun

64

คำตอบที่ยอมรับนั้นทำให้ฉันโหนด 0.10.36 และ npm 1.3.6 ซึ่งล้าสมัยมาก ฉันคว้า tarball ลินุกซ์ 64 ล่าสุดจากหน้า nodejs ดาวน์โหลดและมันก็ไม่ยากเกินไปที่จะติดตั้ง: 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

ตอนนี้อัปโหลด tar ที่คุณเพิ่งดาวน์โหลด -

tar xzf node.tgz

เรียกใช้คำสั่งนี้แล้วเพิ่มลงใน.bashrc:

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

(ตัวอย่าง: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")

และอัปเดตnpm(เพียงครั้งเดียวไม่ต้องเพิ่ม.bashrc):

npm install -g npm

สังเกตว่า -gนั่นหมายถึงทั่วโลกจริงๆหมายถึงทั่วโลกเพื่ออินสแตนซ์ npmนั้นซึ่งเป็นอินสแตนซ์ที่เราเพิ่งติดตั้งและถูก จำกัด ไว้ที่ผู้ใช้ปัจจุบัน สิ่งนี้จะใช้กับแพ็คเกจทั้งหมดที่ติดตั้ง 'ทั่วโลก'


4
นี่เป็นคำตอบที่ดีที่สุดเพราะคุณจะได้รับเวอร์ชั่นที่คุณต้องการอย่างแน่นอน
Mariusz

1
หวังว่าฉันจะอ่านคำตอบนี้ก่อน - นี่ควรเป็นคำตอบที่ยอมรับได้เพราะคุณสามารถเลือกรุ่นที่คุณต้องการติดตั้ง - ขอบคุณ @voltrevo
Mike W

2
@ voltrevo ขอบคุณสำหรับคำตอบ ใช่มีวิธีอื่นในการติดตั้งโหนดบน Linux คำตอบที่ยอมรับคือหนึ่งซับซึ่งเกิดขึ้นกับการเสียบเข้ากับระบบแพ็คเกจ YUM สำหรับการอัปเดตอัตโนมัติและที่มีการจัดการ แพ็คเกจใน repos YUM มีแนวโน้มที่จะเก่ากว่าเล็กน้อยและยังได้รับการทดสอบที่ดีขึ้นด้วยการปรับใช้ที่กว้างขึ้น โดยส่วนตัวแล้วฉันขอแนะนำให้ออกจากสภาพแวดล้อมการพัฒนาล่าสุดและยิ่งใหญ่ที่สุดในท้องถิ่นและใช้บางอย่างเช่นคำตอบที่ได้รับการยอมรับสำหรับสภาพแวดล้อมการผลิต ไชโย!
ทิมฟูลเมอร์

สำหรับ centos เวอร์ชั่นเก่านี่เป็นวิธีที่ดีที่สุดในการใช้งาน
user1336321

ข้อผิดพลาดหลังจากรัน node -v ตอนนี้คือ: 'ไม่สามารถเรียกใช้ไฟล์ไบนารี' ความคิดใด ๆ
JosFabre

28

ขั้นตอนที่ใช้งานได้สำหรับฉัน (ทำตามคำแนะนำเหล่านี้ค่อนข้างเก่าด้วยการปรับปรุงเล็กน้อย):

  • ตรวจสอบ git ถูกติดตั้งgit --versionหรือติดตั้งผ่าน:
    sudo yum install git
  • ติดตั้ง gcc และ openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • โคลน repo git ลงในไดเรกทอรีที่เรียกว่าnode(ซึ่งคุณสามารถลบได้ในภายหลัง):
    git clone https://github.com/nodejs/node.git
  • ตัดสินใจว่าคุณต้องการโหนดรุ่นใดที่https://github.com/nodejs/node/releases
  • ไปที่ไดเรกทอรีโหนดที่เพิ่งสร้างและติดตั้งโหนด
    cd node
    git checkout v6.1.0- ใส่รุ่นที่คุณต้องการหลังจากv
    ./configure
    make
    sudo make install
  • ทดสอบว่ามีการติดตั้ง / ทำงานกับโหนดใดโหนดหนึ่งnode --versionหรือเพียงnode(ออกจากโหนดผ่านprocess.exit()หรือ^Cx 2 หรือ^C+exit )
  • ตรวจสอบเวอร์ชัน npm: npm --versionและอัปเดตหากจำเป็นผ่านsudo npm install -g npm
  • ทางเลือก: ลบnodeไดเรกทอรีด้วยrm -r node

หมายเหตุ:

  1. คำตอบที่ยอมรับไม่ทำงานเนื่องจากsudo yum install nodejs --enablerepo=epel-testingส่งคืนข้อผิดพลาด: No package nodejs available.
    ... และsudo yum install nodejs --enablerepo=epel(เช่นไม่มี-testing ) ให้รุ่นที่เก่ามากเท่านั้น
  2. หากคุณติดตั้งโหนดเวอร์ชันเก่าอยู่แล้วคุณสามารถลบออกได้ด้วย:
    sudo npm uninstall npm -g ... เนื่องจาก npm สามารถถอนการติดตั้งตัวเองได้
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejsในคำตอบที่ยอมรับจะไม่ทำงานเนื่องจากrmไม่ใช่คำสั่ง yum ที่ถูกต้องดูyum --help )
  3. เป็นไปได้ที่จะโคลนโหนด repo ผ่านgit clone git://github.com/nodejs/node.gitมากกว่าgit clone https://github.com/nodejs/node.gitแต่คุณอาจได้รับข้อผิดพลาดต่าง ๆ (ดูที่นี่ )
  4. หากคุณมี/nodedir จากการติดตั้งก่อนหน้านี้ให้ลบออกก่อนที่จะใช้คำสั่ง git clone (หรืออาจมีข้อขัดแย้ง):
    rm -r node
  5. หากคุณมีปัญหากับsudo npm...คำสั่งใด ๆเช่นsudo: npm: command not foundและ / หรือมีปัญหาการอนุญาตการติดตั้งแพ็กเกจโหนดโดยไม่ต้อง sudo แก้ไขsudo nano /etc/sudoersและเพิ่ม:/usr/local/binในตอนท้ายของบรรทัดDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/binเพื่อให้อ่านDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

3
@Gio มีคำตอบให้เลือกมากมายหากคนนี้ไม่ถูกใจคุณ ;-) ... 'in one command' ไม่ใช่ส่วนที่สำคัญที่สุดของคำถาม IMHO
goredwards

มีประโยชน์มากหลังจากฉันทำผิดกับคำตอบที่ยอมรับ ขอบคุณ
Daron Tancharoen

@talentedandrew etc/sudoersควบคุมไฟล์ที่สามารถเรียกใช้คำสั่งอะไรเป็นสิ่งที่ผู้ใช้ในสิ่งที่เครื่อง - แต่จะรัน / ค้นหา / มองหาคำสั่งที่อยู่ในไดเรกทอรีที่ระบุไว้ในsecure_pathโหนดของมันควรจะติดตั้ง/usr/local/binและถ้ามันมี sudo ควรหามัน - ดูstackoverflow .com / a / 31734090/3092596 หาก sudo หาไม่พบเส้นทางนั้นจะต้องเพิ่มเข้าไปใน sudo's secure_path- ดูเพิ่มเติมที่: superuser.com/a/927599/404543
goredwards

ฉันต้องการเพิ่มว่าคุณอาจต้องแก้ไขลิงก์สัญลักษณ์ของคุณหลังจากที่คุณติดตั้งโดยใช้วิธีนี้: 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

ติดตั้งง่ายด้วย NVM ...

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

ในการติดตั้งรุ่นที่แน่นอน (เช่น 12.16.3) ของ Node ให้เปลี่ยนบรรทัดสุดท้ายเป็น

nvm install 12.16.3

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ NVM โปรดไปที่เอกสาร: https://github.com/nvm-sh/nvm


1
ทั้งหมดนี้ใช้งานได้ ใช้เวลาน้อยกว่า @goredwards ตอบด้วยเช่นกัน พยายามใช้ AMI ของ Amazon ที่ได้รับการปรับปรุงให้ดีที่สุด
Jayant Bhawal

3
คำตอบที่ได้รับการยอมรับและการแก้ไข 1-3 ทั้งหมดไม่ได้ผลสำหรับฉัน แต่ได้ผล ขอบคุณ!
seantomburke

1
เรียบร้อยและกะทัดรัด
Stephen Tetreault

1
เรียบง่ายและยอดเยี่ยม
Abhinav

2
นี่ควรเป็นคำตอบ มันดีที่สุดเท่าที่เคยมีมาหากไม่มีใครต้องการสร้างจากแหล่ง
เคิร์กแลนด์

19

สำหรับเวอร์ชัน v4 LTS ให้ใช้:

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

สำหรับ Node.js v6 ให้ใช้:

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

ฉันเจอปัญหาบางอย่างเมื่อพยายามติดตั้ง addons ดั้งเดิมบน Amazon Linux ถ้าคุณต้องการทำสิ่งนี้คุณควรติดตั้งเครื่องมือสร้าง:

yum install gcc-c++ make

นี่คือคำตอบที่ยอดเยี่ยม ฉันใช้เวลาไม่เกิน 20 นาทีในการติดตั้งโหนดอีกต่อไป
David Webber

หากคุณเรียกใช้แอปพลิเคชัน php ที่มีส่วนหน้าของ npm ที่คอมไพล์แล้วบนฝักถั่วยางยืดคุณสามารถใช้สิ่งนี้ได้ มันเป็นส่วนหนึ่งของไฟล์ install.config ของฉันที่ทำให้มันทำงานได้ - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

ฉันเพิ่งเจอสิ่งนี้ ฉันลองคำตอบที่ได้รับความนิยมมากกว่านี้ แต่ท้ายที่สุดสิ่งที่ใช้ได้ผลสำหรับฉันคือคู่มือการตั้งค่าแบบรวดเร็วของ Amazon

บทช่วยสอน: การตั้งค่า Node.js ใน Amazon EC2 Instance

ส่วนสำคัญของการสอนคือ:

  1. ตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ตัวอย่าง
  2. คว้า nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. คล่องแคล่ว . ~/.nvm/nvm.sh
  4. ติดตั้งโหนดโดยใช้ nvm nvm install 4.4.5(หมายเหตุ: คุณสามารถเลือกเวอร์ชันอื่นลองดูรุ่นระยะไกลก่อนโดยการรัน$ nvm ls-remote )
  5. สุดท้ายทดสอบว่าคุณได้ติดตั้งโหนดโหนดอย่างถูกต้องโดยการเรียกใช้ $ node -e "console.log('Running Node.js' + process.version)"

หวังว่านี่จะช่วยให้คนต่อไป


คุณอาจต้องการอธิบายเนื้อหาในลิงก์นั้น คำตอบที่ดีจะใช้ลิงค์เป็นข้อมูลอ้างอิงไม่ใช่หัวข้อหลักของคำตอบ
BusyProgrammer

6

ดูเหมือนจะไม่มีใครพูดถึงเรื่องนี้ บนAmazon Linux 2วิธีที่เป็นทางการในการโหลด EPEL คือ:

  • sudo amazon-linux-extras install epel

... จากนั้นคุณสามารถ:

  • sudo yum install nodejs

     

ดูไลบรารีพิเศษ (Amazon Linux 2)


อย่างนี้ดูเหมือนจะเป็นคำตอบที่ดีที่สุด!
ยืด

@ ยืดไม่ได้จริงๆ ติดตั้งโหนด 6 เก่าเกินไป
GabrielBB

5

ฉันติดตั้ง Node.js 6.x และต้องการติดตั้ง Node.js 8.x

นี่คือคำสั่งที่ฉันใช้ (นำมาจากเว็บไซต์ของ Nodejsด้วยขั้นตอนพิเศษไม่กี่ขั้นตอนในการจัดการข้อมูลที่เก็บไว้ใน yum):

  1. sudo yum remove nodejs: ถอนการติดตั้ง Node.js 6.x (ฉันไม่ทราบว่าจำเป็นหรือไม่)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: สร้างข้อมูลเมตาแคชใหม่ (นี่ไม่ได้อยู่ในเอกสาร แต่ yum พยายามที่จะติดตั้ง Node.jx 6.x ไม่สำเร็จจนกว่าฉันจะออกคำสั่งสองคำสั่งสุดท้ายเหล่านี้)
  5. sudo yum install nodejs: ติดตั้ง Node.js 8.x


2

ทางออกที่ง่ายที่สุดคือ (ทำสิ่งเหล่านี้เป็นรูท)

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

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณมันช่วยได้
arupjbasu


1

เอกสารอย่างเป็นทางการสำหรับ EC2-Instance ใช้งานได้สำหรับฉัน: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

 1. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
 2. . ~/.nvm/nvm.sh
 3. nvm ls-remote (=> find your version x.x.x =>) nvm install  x.x.x
 4. node -e "console.log('Running Node.js ' + process.version)"

0

ตามที่ระบุไว้ในเอกสารอย่างเป็นทางการง่ายๆด้านล่าง 2 ขั้นตอน -

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

0

สำหรับผู้ที่ต้องการให้มีคำตอบที่ยอมรับใน Ansible โดยไม่ต้องค้นหาเพิ่มเติมฉันโพสต์งานที่นี่เพื่อความสะดวกและอ้างอิงในอนาคต

คำแนะนำคำตอบที่ยอมรับแล้ว: https://stackoverflow.com/a/35165401/78935

เทียบเท่างาน Ansible

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

0

คุณสามารถอัปเดต / ติดตั้งโหนดโดยการติดตั้งแพ็กเกจที่ติดตั้งใหม่เป็นเวอร์ชันปัจจุบันซึ่งอาจช่วยเราไม่ให้เกิดข้อผิดพลาดขณะทำการอัปเดต

สิ่งนี้ทำได้โดย nvm ด้วยคำสั่งด้านล่าง ที่นี่ฉันได้อัพเดตเวอร์ชันโหนดของฉันเป็น 8 และติดตั้งแพ็กเกจที่มีอยู่ทั้งหมดเป็น v8 อีกครั้ง!

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

มันทำงานบนอินสแตนซ์ของ AWS Linux เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.