ฉันจะดาวน์เกรดโหนดหรือติดตั้งเวอร์ชันก่อนหน้าเฉพาะโดยใช้ homebrew ได้อย่างไร?


229

ฉันกำลังใช้ชง ฉันติดตั้งโหนดโดยใช้ชง ฉันต้องการใช้โหนดรุ่นก่อนหน้า

ออนไลน์ผมพบคำแนะนำเช่น , ตัวอย่างเช่น :

cd /usr/local/Library/Formula
brew remove node --force
brew versions node
git checkout 83988e4 /usr/local/Library/Formula/node.rb
brew install node

ปัญหาที่ฉันมีนี่คือbrewดูเหมือนจะไม่มีคำversionsสั่งย่อย:

$ brew versions node
Error: Unknown command: versions
$ brew --version
0.9.5

ฉันใหม่เพื่อก่อ ฉันต้องเปิดใช้งานคำversionsสั่งย่อยอย่างใดหรือไม่? ฉันควรใช้คำสั่งย่อยอื่นแทนหรือไม่ มีวิธีที่แตกต่างอย่างสิ้นเชิงที่ฉันควรลองหรือไม่?

ฉันใช้ OS X Yosemite (10.10.1); ชง 0.9.5


คุณกำลังติดตั้ง node.js เวอร์ชันใด
bmike

เจ้านายของฉันบอกฉัน 10.32 ฉันเดาว่าเขาหมายถึง 0.10.32 ตอนนี้ฉันติดตั้ง 0.12.0 แล้ว
dave4420

ณ วันที่นี้ผู้อ่านควรไปที่คำตอบนี้: stackoverflow.com/a/4158763/48136
Brice

คำตอบ:


352

วันนี้ถ้าคุณต้องการติดตั้งเวอร์ชั่นอื่นให้nodeคุณทำเช่นนี้:

ค้นหาครั้งแรกสำหรับแพ็คเกจที่คุณต้องการ:

brew search node

สิ่งนี้อาจให้ผลลัพธ์ต่อไปนี้กับคุณ:

heroku/brew/heroku-node ✔
llnode
node@10
nodebrew
leafnode
node ✔
node@8
....

จากนั้นติดตั้งเวอร์ชันที่ต้องการ:

brew install node@8

นอกจากนี้โปรดจำไว้ว่าคุณสามารถติดตั้งแพ็คเกจมากกว่า 1 โหนดในเวลาเดียวกัน แต่คุณไม่สามารถใช้พร้อมกันได้ ดังนั้นหากคุณมีnodeแพ็คเกจล่าสุด / แพคเกจทั่วไปติดตั้งอยู่แล้วคุณต้องยกเลิกการเชื่อมโยงก่อน:

brew unlink node

และจากนั้นคุณสามารถเชื่อมโยงเวอร์ชันอื่น:

brew link node@8

สำหรับโหนดรุ่นเก่าบางรุ่น (ซึ่งเป็น keg-only) อาจจำเป็นต้องเชื่อมโยงโหนดเหล่านั้นกับ--forceและ--overwriteตัวเลือก:

brew link --force --overwrite node@8

10
คำตอบที่ดีที่สุดที่นี่
chovy

3
โปรดทราบว่าคุณอาจได้รับแจ้งให้ "ยกเลิกการเชื่อมโยง" โหนดรุ่นที่มีอยู่ก่อนที่คุณจะสามารถติดตั้งหนึ่งในเวอร์ชันอื่นที่ระบุไว้ (ตามคำแนะนำด้านบน) โดย "ยกเลิกการเชื่อมโยง" คุณกำลังออกจากเวอร์ชันอื่นที่ติดตั้งในระบบของคุณ แต่เวอร์ชันที่คุณติดตั้ง (หลังจากยกเลิกการเชื่อมโยง) จะกลายเป็นเวอร์ชัน "เริ่มต้น" ในระบบของคุณ ตัวอย่างเช่นคุณอาจจะต้องพิมพ์ถ้าคุณได้ติดตั้งbrew unlink node brew install nodeจากนั้นคุณสามารถทำbrew install homebrew/versions/node4-lts(ซึ่งคุณควรเห็นว่าเป็นรุ่นที่ระบุไว้ตามคำแนะนำในคำตอบนี้)
xmnboy

1
แทนที่จะก็ตอนนี้homebrew/versions/node06 นอกจากนี้ยังทำhomebrew/versions/node6-lts brew link node6-lts
akauppi

1
ฉันได้อัปเดตคำตอบเพื่อให้สอดคล้องกับการเปลี่ยนแปลงครั้งล่าสุดแล้ว ขอบคุณ!
PawełGościcki

2
แต่เราจะติดตั้งเวอร์ชันเฉพาะเช่นโหนด 8.2.1 โดยใช้ brew ได้อย่างไร
Nadav B

39

นี่คือขั้นตอน

เพื่อดูเวอร์ชั่นโหนดปัจจุบันของคุณ

$ node --version

เพื่อดูรุ่นโหนดที่มีอยู่

$ brew search node

หากต้องการยกเลิกการเชื่อมโยงจากเวอร์ชันปัจจุบัน

$ brew unlink node

ติดตั้งเวอร์ชันใด ๆ เช่น 8

$ brew install node@8

เพื่อเชื่อมโยงรุ่นที่ติดตั้ง

$ brew link node@8

หากต้องการดูเวอร์ชันโหนดปัจจุบันของคุณ (อีกครั้ง)

$ node --version

สิ่งที่ฉันต้องการ
Brian Colavito

วิธีแก้ปัญหานี้ Brew link node @ 10 คำเตือน: node @ 10 เป็น keg-only และต้องเชื่อมโยงกับ --force หากคุณจำเป็นต้องมีซอฟต์แวร์นี้ใน PATH ของคุณแทนพิจารณาใช้: echo 'export PATH = "/ usr / local / opt / node @ 10 / bin: $ PATH "'>> ~ / .bash_profile
vikramvi

ไม่ทำงานบน Mac OS 10.13.5, รับข้อผิดพลาดstackoverflow.com/questions/53043476/…
vikramvi

15

ตั้งแต่PR ถึง homebrew / เวอร์ชันและPR นี้เป็น homebrewคำตอบที่เกี่ยวข้องbrew tap homebrew/versionsหรือ*-ltsแพ็คเกจไม่ทำงานอีกต่อไป

คำตอบที่ถูกต้องคือตอนนี้:

brew install node@<version>

ที่ไหน<version>คือ0.10, 0.12, 4ฯลฯ ตัวอย่างเช่นการติดตั้ง Node.js v6 (เช่นการเขียนนี้รุ่น LTS ล่าสุด):

brew install node@6

คุณอาจต้องเรียกใช้brew updateก่อนหน้าคำสั่งเหล่านี้เพื่อให้แน่ใจว่าสูตรเวอร์ชันใหม่เหล่านี้พร้อมใช้งาน หากคุณnodeติดตั้งสูตรอื่นคุณจะต้องเรียกใช้brew unlink nodeก่อน


2
ไม่ทำงานกับ Mac OS 10.13.5 stackoverflow.com/questions/53043476//
vikramvi

11

brew versionsbrewจะต้องมีการติดตั้งในบางจุดหลังจากที่คุณติดตั้ง

$ brew tap homebrew/boneyard

จากนั้นคุณสามารถใช้brew versionsคำสั่งตามคำแนะนำที่สมมติ


4
homebrew/boneyardจะล้าสมัยและจะถูกแทนที่ด้วยgithub.com/Homebrew/homebrew-versionsณ เดือนมีนาคมปี 2015 brew tap homebrew/versionsติดตั้งผ่านทาง
Jakub Holý

12
ด้วยhomebrew/versionsคุณจะได้รับชื่อของแพคเกจ brew search node => leafnode node node010 node04 node06 node08 nodebrew ...versioned: จึงbrew install node010ตามมาด้วยการbrew link --overwrite node010ติดตั้งรุ่น 0.10 ของ Node.JS.
Jakub Holý

3
คุณอาจต้องbrew unlink nodeก่อนหน้าคุณด้วยbrew install node010
Chananelb

10

ถ้าคุณเคยติดตั้งรุ่นเก่ามาก่อนและยังไม่ได้ทำงานbrew cleanup(ซึ่งจะลบรุ่นเก่า) คุณสามารถสลับกับบางอย่างเช่นbrew switch node 5.7.0

โหนดเวอร์ชันที่ติดตั้งทั้งหมดสามารถแสดงได้โดยการรันbrew info nodeหรือls -l /usr/local/Cellar/node/

ดูแผ่นโกงคำสั่งชง: http://ricostacruz.com/cheatsheets/homebrew.html


ทำงานตั้งแต่วันที่ 2017/12! Homebrew 1.4.0-17-gc912d26
Jason Harrison

5

nvmหากคุณจำเป็นต้องใช้มันเพียงเฉพาะสำหรับโหนดคุณสามารถใช้ มันสะดวกมากถ้าคุณทำงานกับโหนดมาก


ตาม nvm docs Brew และ nvm ไม่ใช่คำสั่งผสมที่รองรับ ฉันแสดงความคิดเห็นในที่นี่ github.com/angular/angular-cli/issues/…ฉันสนใจที่จะได้ยินเรื่องราวสงครามเกี่ยวกับเรื่องนี้ เพราะบนพื้นผิวดูเหมือนว่าฉันจะทำงานนี้ได้แม้ว่าจะเป็น "ไม่รองรับ"
JGFMK

3

คุณสามารถทำได้โดยไม่มี homebrew

คุณสามารถถอนการติดตั้งแล้วติดตั้งโหนดด้วยตนเอง

คุณต้องดาวน์โหลดเวอร์ชันที่ใช้อยู่ในปัจจุบัน นี่คือรายการ

ดาวน์โหลด node-v {your-current-version-number} .tar.gz แตกออกแล้วไปที่บรรทัดรับคำสั่ง

cd node-v{your-current-version-number}
./configure
make
sudo make install

หากต้องการถอนการติดตั้ง sudo make uninstall

จากนั้นดาวน์โหลดเวอร์ชันที่คุณต้องการติดตั้งและทำตามขั้นตอนเดียวกันด้านบน

จากโพสต์บล็อกนี้


+1 คำตอบนี้ FWIW ฉันสามารถคัดลอกbin/โฟลเดอร์untarred ไปที่ PATH ของฉันเพื่อให้ใช้งานได้
shicholas

ยิ่งไปกว่านั้นคุณสามารถดาวน์โหลดไฟล์. pkg ได้จากนั้นคลิกสองครั้งเพื่อติดตั้ง
Henrik N

3

หากคุณต้องเผชิญปัญหากับ homebrew เพื่อติดตั้งรุ่นของโหนดใด ๆ ที่คุณก็สามารถดาวน์โหลดไฟล์ .pkg สำหรับ OSX จากhttps://nodejs.org/dist/[VERSION_YOU_NEED] นี่เป็นเพียงช่วยฉันติดตั้งโหนด


3

มีคำตอบมากมายที่นี่และสถานที่อื่น ๆ ที่บอกว่าใช้เวอร์ชัน homebrew แต่มีตัวเลือกที่ จำกัด มากสำหรับ Node เวอร์ชันที่คุณสามารถติดตั้งได้

ใช้ NVM ได้ง่ายกว่ามากและช่วยให้คุณสลับระหว่างรุ่นต่าง ๆ ได้อย่างง่ายดาย

homebrew install nvm

จากนั้นทำตามคำแนะนำในคำเตือน - mkdir ~/.nvmและเพิ่มสองบรรทัดในของคุณ.bash_profileและsource .bash_profile

จากนั้นเรียกใช้nvm install <version>สำหรับทุกรุ่นที่คุณต้องการ จากนั้นจึงnvm use <version>เปลี่ยน


นี่ไม่ใช่คำตอบที่ได้รับการยอมรับ แต่มันเป็นคำตอบเดียวที่เหมาะกับฉัน ฉันหวังว่าฉันจะลองมันเป็นครั้งแรกเพราะฉันจะได้ประหยัดเวลาได้มาก
อเล็กซ์

1

มาสร้างอิมเมจว่าคุณมีเวอร์ชั่น 0.12 * ในการติดตั้ง (ลดระดับ) รุ่นโหนด 0.10 ให้ส่งการต้มใน OSX คุณต้อง:

$ sudo brew tap homebrew-versions
$ brew unlink node
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/node010.rb
$ node -v

รายการเวอร์ชันโหนดทั้งหมดอยู่ที่นี่


1

วิธีที่ต้องการในโลก NodeJS คือการใช้เครื่องมือn

  • การติดตั้ง: npm install -g n
  • ติดตั้งโหนด 8.8.4 n 8.8.4
  • แสดงรายการโหนดเวอร์ชันที่พร้อมใช้งานในพื้นที่ของคุณทั้งหมดและเลือกหนึ่งรายการ: n

ดูเหมือนว่าจะคล้ายกับnvmแต่ฉันมีปัญหากับnvmและnทำงานนอกกรอบ


0

https://nodejs.org/en/blog/release/

คุณสามารถไปที่นี่และติดตั้งรุ่นที่คุณต้องการ

ก่อนการติดตั้งคุณอาจต้องการเรียกใช้brew unlink nodeเพื่อยกเลิกการเชื่อมโยงเวอร์ชันปัจจุบัน


1
สิ่งที่ได้เปรียบคือทำอย่างนี้แทนที่จะใช้ Brew (ตามคำตอบอื่น ๆ อีกหลายข้อ) หรือถอนการติดตั้งโหนดแล้วทำการติดตั้งด้วยตนเอง (ตามคำตอบของ @ Terente-Ionut-Alexandru)?
John N

@ เวอร์ชันชงของ JohnN เลิกใช้แล้วในขณะนี้ทางเลือกของมันไม่ใช่เรื่องง่ายที่จะเข้าใจ นอกจากนี้ยังเป็น kinda complex ผ่าน brew เพื่อติดตั้งเวอร์ชันที่แน่นอน
Anant Simran Singh

@ คำตอบPaweł-Gościcki (คะแนนสูงสุดด้วย 140 โหวต) ดูเหมือนจะเข้าใจง่ายและไม่ซับซ้อนเลย - ซึ่งตรงกับประสบการณ์ล่าสุดของฉันกับการชงและสูตรที่แตกต่างกัน ประเด็นของฉันคือคำตอบของคุณดูเหมือนจะไม่เพิ่มในสิ่งที่ยังไม่ได้กล่าวถึงในคำตอบอื่น ๆ - เว้นแต่จะมีเหตุผลในการยกเลิกการเชื่อมโยง + ติดตั้งด้วยตนเองแทนที่จะถอนการติดตั้ง + ติดตั้งด้วยตนเอง
John N

@JohnN หลักสูตรนั้นเข้าใจง่าย แต่คุณจะถูก จำกัด โดยตัวเลือกที่ก่อให้เกิดการค้นหา สำหรับเช่น ถ้าคุณต้องการโหนด 4.4.6 แต่ผู้สร้างจะให้ตัวเลือกโหนด @ 4 เท่านั้น ด้วยเหตุนี้
Anant Simran Singh

มีฉันคิดว่า 3 คำตอบที่ดีสำหรับคำถาม: (1) ใช้ชง, (2) ใช้ nvm และ (3) ถอนการติดตั้งและติดตั้งด้วยตนเอง สิ่งที่ฉันพยายามทำให้คุณทำคืออธิบายว่าทำไมคำตอบของคุณเพิ่มในคำตอบที่มีอยู่เหล่านี้ ทำไมคุณถึงรู้สึกว่าการยกเลิกการเชื่อมโยง + การติดตั้งด้วยตนเองนั้นเป็นสิ่งที่ดีกว่าสำหรับคำตอบที่มีอยู่ ทำไมคุณถึงรู้สึกว่าการถอนการติดตั้ง * ยกเลิกการเชื่อมโยงด้วยตนเองดีกว่าการถอนการติดตั้งการติดตั้งด้วยตนเองตามคำตอบของ Terente
John N
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.