วิธีการติดตั้ง Node เวอร์ชันล่าสุดโดยใช้ Brew


154

เวอร์ชั่นล่าสุดของ NodeJs ในขณะนี้คือ 0.4.1

คำสั่งbrew install nodeตอนนี้ติดตั้ง 0.2.6 - ซึ่งไม่เหมาะ ฉันต้องการ 0.4.1

ฉันดูรายการคำสั่งนี้เพื่อชงและลองแล้วbrew install --HEAD node

แต่นั่นติดตั้งโหนด 0.5- ก่อน

เหตุใดจึงไม่ติดตั้งเวอร์ชันที่ถูกต้องและฉันจะบังคับให้เวอร์ชันที่ถูกต้องได้อย่างไร

ในขั้นตอนนี้ดูเหมือนว่าจะง่ายกว่าเพียงแค่ดาวน์โหลด src และติดตั้งด้วยตนเอง แต่ฉันอยากรู้ว่าเกิดอะไรขึ้นกับ Brew


ฉันอยากรู้ ความแตกต่างระหว่างการติดตั้งผ่าน Homebrew และติดตั้งจากแพคเกจที่ดาวน์โหลดมาจากอะไรคือสิ่งที่nodejs.org ?
yihangho

คำตอบ:


126

คุณเคยวิ่งbrew updateก่อนหรือเปล่า? หากคุณไม่ทำเช่นนั้น Homebrew จะไม่สามารถอัปเดตสูตรได้และหากไม่อัปเดตสูตรนั้นจะไม่ทราบวิธีการติดตั้งซอฟต์แวร์เวอร์ชันล่าสุด


2
ใช่ฉันจะลอง 'ชงการอัปเดตโหนด' แต่ฉันเห็นตอนนี้คุณพูดถูก มันไม่ได้เกิดขึ้นกับฉันเพราะ doco บอกว่า 'การอัพเดทชง' จะอัปเดตซอฟต์แวร์ชง - ซึ่งดูเหมือนว่าจะไม่สร้างความแตกต่าง แต่มันพูดถึง 'formulea' - ซึ่งเป็นเพียงคำ (ตรงไปตรง) โง่สำหรับสิ่งที่เป็นพื้นมันเป็น 'ห้องสมุดของรุ่นซอฟต์แวร์' ฉันสามารถทำ 'ชงข้อมูลโหนด' เพื่อค้นหารุ่นที่จะติดตั้ง มันตั้งไว้ที่ 0.4.0 ดังนั้นฉันเลยติดตั้งจาก src ต่อไป แต่นี่ถูกต้อง ขอบคุณ.
PandaWood

เมื่อมีข้อความว่า "อัปเดตซอฟต์แวร์ชง" ไม่ได้หมายถึงอัปเดตซอฟต์แวร์ที่ติดตั้งไว้ซึ่งหมายถึงอัปเดตชุดชงเองรวมถึงไลบรารีของสูตร
Lily Ballard

301

เรียกใช้คำสั่งด้านล่างตามลำดับนี้:

brew update
brew doctor
brew upgrade node

ตอนนี้คุณติดตั้งโหนดเวอร์ชันที่อัพเดตแล้วและอาจไม่ได้เชื่อมโยง ถ้าไม่ใช่ให้พิมพ์: brew link nodeหรือbrew link --overwrite node


1
ได้รับ/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang โปรดดู: แก้ไขสิทธิ์บน / usr / local สำหรับ Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
ข้อผิดพลาด: ไม่มีถังดังกล่าว: / usr / local / Cellar / node
Hos Mercury

ดีนี่แก้ไขความล้มเหลวของ NPM ("Buffer.alloc ไม่ใช่ฟังก์ชัน") เนื่องจากโหนด keg ไม่ได้เชื่อมโยง ต้องการบังคับให้ลิงค์ / เขียนทับไฟล์เก่า
dave

2
brew link --overwrite nodeมันสำคัญจริงๆ! ขอบคุณ
hanzichi

136

หลังจากติดตั้ง / อัพเกรดโหนดผ่านทาง Brew ฉันพบปัญหานี้อย่างแน่นอน: คำสั่ง node ทำงานได้ แต่ไม่ใช่คำสั่ง npm

ฉันใช้คำสั่งเหล่านี้เพื่อแก้ไข

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

ฉันรวบรวมวิธีแก้ปัญหานี้หลังจากการลองผิดลองถูกและใช้ ...


ขอบคุณ! มีปัญหาเดียวกันที่แน่นอนและสิ่งนี้แก้ไขได้
elsurudo

7
sudo brew postinstall nodeจะโยนข้อผิดพลาดเว้นแต่จะเป็นเจ้าของโดยรูต (ไม่แนะนำ) sudo chown -R $(whoami) /usr/localฉันไม่คิดว่ามันควรจะเป็นสิ่งจำเป็นหากคุณไม่ได้อยู่แล้ว คุณควรจะสามารถทำงานbrew postinstall nodeได้
Sam Fen

2
@SamFen ถูกต้องแล้ว sudoไม่ต้องการ. ฉันวิ่งคำตอบที่ได้รับการยอมรับก่อนที่ฉันจะให้รายการคำสั่งนี้ไป หลังจากนั้นฉันก็วิ่งไปnode -vและทุกอย่างก็ดูดีในตอนนี้
6754534367

1
ใช้ sudo chown -R $ (whoami) $ (brew --prefix) / * แทน sudo chown -R $ (whoami) / usr / local
Troy DC Thompson

1
สิ่งนี้ใช้ได้สำหรับฉัน ผมทำในสิ่ง @TroyDCThompson แนะนำตามที่ผมได้รับsudo chown -R $(whoami) $(brew --prefix)/* Operation not permitted
thurzo101


13

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

nvm deactivate

สิ่งนี้จะถูกลบออก /Users/user_name/.nvm/*/bin จาก $ PATH

และหลังจากอัปเดตโหนดแล้ว

node --version
v10.9.0

9

ฉันต้องทำbrew link --overwrite nodeหลังจากbrew install nodeอัปเดตจาก 0.4 เป็น 0.8.18


ข้อผิดพลาด: ไม่มีถังดังกล่าว: / usr / local / Cellar / node
Hos Mercury

7

ลองใช้ "n" the Node ตัวจัดการแพ็กเกจที่แสนง่าย

> npm install -g n

เมื่อคุณติดตั้ง "n" แล้ว คุณสามารถดึงโหนดล่าสุดโดยทำดังต่อไปนี้:

> n latest

ฉันใช้ไปเรียบร้อยแล้วบน Ubuntu 16.0x และ MacOS 10.12 (Sierra)

การอ้างอิง: https://github.com/tj/n


7

หากคุณติดตั้งโหนดปัจจุบันผ่านHomebrewเพียงใช้คำสั่งเหล่านี้

brew update
brew upgrade node

ตรวจสอบเวอร์ชั่นของโหนดโดย

node -v


3

เพิ่งใช้โซลูชันนี้กับ Homebrew 0.9.5 และดูเหมือนเป็นวิธีแก้ปัญหาอย่างรวดเร็วเพื่ออัปเกรดเป็นโหนดเวอร์ชันเสถียรล่าสุด

brew update

สิ่งนี้จะติดตั้งเวอร์ชันล่าสุด

brew install node

ยกเลิกการเชื่อมโยงการใช้โหนดเวอร์ชันปัจจุบันของคุณโหนด -v เพื่อค้นหาสิ่งนี้

brew unlink node012

สิ่งนี้จะเปลี่ยนเป็นโหนดเวอร์ชันล่าสุด

brew link node

หมายเหตุ: วิธีนี้ทำงานได้เนื่องจากฉันได้รับข้อผิดพลาดนี้:

ข้อผิดพลาด: ไม่มีถังดังกล่าว: / usr / local / Cellar / node


2

ฉันทำสิ่งนี้บน Mac OSX Sierra ฉันติดตั้ง Node 6.1 แล้ว แต่ Puppetter ต้องการ Node 6.4 นี่คือสิ่งที่ฉันทำ:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

จากนั้นเปิดหน้าต่างเทอร์มินัลใหม่แล้วเรียกใช้:

node -v
v8.11.2

--overwrite จำเป็นต้องแทนที่ไฟล์ที่ขัดแย้งกันระหว่าง node6 และ node8


2
  1. node -v จะแสดงเวอร์ชันปัจจุบันให้คุณ
  2. npm -v จะแสดงเวอร์ชันปัจจุบันให้คุณ
  3. brew link --overwrite --dry-run node จะบังคับให้ลิงก์และเขียนทับไฟล์ที่ขัดแย้งทั้งหมด
  4. brew install node ทำการติดตั้งใหม่
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    หรือ

    brew link node

ขั้นตอนการอัพเกรดโหนดอยู่ด้านล่าง



0

หากคุณยินดีที่จะลบการbrewอ้างอิงฉันจะแนะนำnvm - ฉันไม่สามารถแนะนำได้มากกว่าโซลูชันการกำหนดรุ่นอื่น ๆ เพราะฉันไม่ต้องการลองสิ่งอื่น การมีความสามารถในการสลับระหว่างเวอร์ชันต่าง ๆ ทันทีขึ้นอยู่กับโครงการที่คุณกำลังดำเนินการอยู่นั้นมีคุณค่ามาก


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