ฉันเห็นการเขียนเกี่ยวกับการใช้ yum เพื่อติดตั้งการอ้างอิงแล้วติดตั้ง Node.JS & NPM จากแหล่งที่มา ในขณะที่ใช้งานได้ฉันรู้สึกว่า Node.JS และ NPM ควรจะอยู่ในที่สาธารณะ repo
ฉันจะติดตั้ง Node.JS และ NPM ในคำสั่งเดียวบน AWS Amazon Linux ได้อย่างไร
ฉันเห็นการเขียนเกี่ยวกับการใช้ yum เพื่อติดตั้งการอ้างอิงแล้วติดตั้ง Node.JS & NPM จากแหล่งที่มา ในขณะที่ใช้งานได้ฉันรู้สึกว่า Node.JS และ NPM ควรจะอยู่ในที่สาธารณะ repo
ฉันจะติดตั้ง Node.JS และ NPM ในคำสั่งเดียวบน AWS Amazon Linux ได้อย่างไร
คำตอบ:
สะดุดเข้ากับเรื่องนี้มันหายากแปลก ๆ อีกครั้งในภายหลัง วางที่นี่เพื่อลูกหลาน:
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/
sudo npm install -g n
และsudo n v0.12
หรือรุ่นอื่น ๆ ที่คุณต้องการ
sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
sudo yum install nodejs --enablerepo=epel-testing
ส่งคืนข้อผิดพลาด: "ไม่มีแพ็คเกจ nodejs" ในขณะที่sudo yum install nodejs --enablerepo=epel
ให้รุ่นเก่าเท่านั้น ...
เช่นเดียวกับคนอื่น ๆ คำตอบที่ได้รับการยอมรับยังทำให้ฉันเป็นรุ่นที่ล้าสมัย
นี่เป็นอีกวิธีในการทำสิ่งที่ได้ผลดี:
$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs
นอกจากนี้คุณยังสามารถแทนที่ 12.x ด้วยรุ่นอื่นเช่น 10.x, 8.x เป็นต้น
คุณสามารถดูเวอร์ชันทั้งหมดที่มีอยู่ในหน้า NodeSource Githubและดึงจากที่นั่นเช่นกันหากต้องการ
หมายเหตุ: คุณอาจต้องใช้งานโดยsudo
ขึ้นอยู่กับสภาพแวดล้อมของคุณ
npm install
สำหรับpackage.json
,
curl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
และsudo yum -y install nodejs
curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
คำตอบที่ยอมรับนั้นทำให้ฉันโหนด 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นั้นซึ่งเป็นอินสแตนซ์ที่เราเพิ่งติดตั้งและถูก จำกัด ไว้ที่ผู้ใช้ปัจจุบัน สิ่งนี้จะใช้กับแพ็คเกจทั้งหมดที่ติดตั้ง 'ทั่วโลก'
ขั้นตอนที่ใช้งานได้สำหรับฉัน (ทำตามคำแนะนำเหล่านี้ค่อนข้างเก่าด้วยการปรับปรุงเล็กน้อย):
git --version
หรือติดตั้งผ่าน:sudo yum install git
sudo yum install gcc-c++ make
sudo yum install openssl-devel
node
(ซึ่งคุณสามารถลบได้ในภายหลัง):git clone https://github.com/nodejs/node.git
cd node
git checkout v6.1.0
- ใส่รุ่นที่คุณต้องการหลังจากv
./configure
make
sudo make install
node --version
หรือเพียงnode
(ออกจากโหนดผ่านprocess.exit()
หรือ^C
x 2 หรือ^C
+exit
) npm --version
และอัปเดตหากจำเป็นผ่านsudo npm install -g npm
node
ไดเรกทอรีด้วยrm -r node
หมายเหตุ:
sudo yum install nodejs --enablerepo=epel-testing
ส่งคืนข้อผิดพลาด: No package nodejs available.
sudo yum install nodejs --enablerepo=epel
(เช่นไม่มี-testing
) ให้รุ่นที่เก่ามากเท่านั้น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
)git clone git://github.com/nodejs/node.git
มากกว่าgit clone https://github.com/nodejs/node.git
แต่คุณอาจได้รับข้อผิดพลาดต่าง ๆ (ดูที่นี่ )/node
dir จากการติดตั้งก่อนหน้านี้ให้ลบออกก่อนที่จะใช้คำสั่ง git clone (หรืออาจมีข้อขัดแย้ง):rm -r node
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
etc/sudoers
ควบคุมไฟล์ที่สามารถเรียกใช้คำสั่งอะไรเป็นสิ่งที่ผู้ใช้ในสิ่งที่เครื่อง - แต่จะรัน / ค้นหา / มองหาคำสั่งที่อยู่ในไดเรกทอรีที่ระบุไว้ในsecure_path
โหนดของมันควรจะติดตั้ง/usr/local/bin
และถ้ามันมี sudo ควรหามัน - ดูstackoverflow .com / a / 31734090/3092596 หาก sudo หาไม่พบเส้นทางนั้นจะต้องเพิ่มเข้าไปใน sudo's secure_path
- ดูเพิ่มเติมที่: superuser.com/a/927599/404543
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
ติดตั้งง่ายด้วย 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
สำหรับเวอร์ชัน 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
ฉันเพิ่งเจอสิ่งนี้ ฉันลองคำตอบที่ได้รับความนิยมมากกว่านี้ แต่ท้ายที่สุดสิ่งที่ใช้ได้ผลสำหรับฉันคือคู่มือการตั้งค่าแบบรวดเร็วของ Amazon
บทช่วยสอน: การตั้งค่า Node.js ใน Amazon EC2 Instance
ส่วนสำคัญของการสอนคือ:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 4.4.5
(หมายเหตุ: คุณสามารถเลือกเวอร์ชันอื่นลองดูรุ่นระยะไกลก่อนโดยการรัน$ nvm ls-remote
)$ node -e "console.log('Running Node.js' + process.version)"
หวังว่านี่จะช่วยให้คนต่อไป
ฉันติดตั้ง Node.js 6.x และต้องการติดตั้ง Node.js 8.x
นี่คือคำสั่งที่ฉันใช้ (นำมาจากเว็บไซต์ของ Nodejsด้วยขั้นตอนพิเศษไม่กี่ขั้นตอนในการจัดการข้อมูลที่เก็บไว้ใน yum):
sudo yum remove nodejs
: ถอนการติดตั้ง Node.js 6.x (ฉันไม่ทราบว่าจำเป็นหรือไม่)curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum clean all
sudo yum makecache
: สร้างข้อมูลเมตาแคชใหม่ (นี่ไม่ได้อยู่ในเอกสาร แต่ yum พยายามที่จะติดตั้ง Node.jx 6.x ไม่สำเร็จจนกว่าฉันจะออกคำสั่งสองคำสั่งสุดท้ายเหล่านี้)sudo yum install nodejs
: ติดตั้ง Node.js 8.xsudo yum install nodejs npm --enablerepo=epel
Amazon Linux AMI
ทำงานให้กับ
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs
ทำงานให้กับ RedHat
ทางออกที่ง่ายที่สุดคือ (ทำสิ่งเหล่านี้เป็นรูท)
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
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
เอกสารอย่างเป็นทางการสำหรับ 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)"
ตามที่ระบุไว้ในเอกสารอย่างเป็นทางการง่ายๆด้านล่าง 2 ขั้นตอน -
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
สำหรับผู้ที่ต้องการให้มีคำตอบที่ยอมรับใน 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
# ...
คุณสามารถอัปเดต / ติดตั้งโหนดโดยการติดตั้งแพ็กเกจที่ติดตั้งใหม่เป็นเวอร์ชันปัจจุบันซึ่งอาจช่วยเราไม่ให้เกิดข้อผิดพลาดขณะทำการอัปเดต
สิ่งนี้ทำได้โดย nvm ด้วยคำสั่งด้านล่าง ที่นี่ฉันได้อัพเดตเวอร์ชันโหนดของฉันเป็น 8 และติดตั้งแพ็กเกจที่มีอยู่ทั้งหมดเป็น v8 อีกครั้ง!
nvm i v8 --reinstall-packages-from=default
มันทำงานบนอินสแตนซ์ของ AWS Linux เช่นกัน