Homebrew ติดตั้ง nvm แต่ไม่พบ nvm ในภายหลัง?


98

ฉันใช้homebrewและoh-my-zshติดตั้ง OSX 10.10.1 ใหม่ ฉันnvmผ่านมาhomebrewแล้วพยายามเรียกใช้ แต่บอกว่า - zsh: command not found: nvm

มีความคิดว่าปัญหาคืออะไร? ฉันสามารถติดตั้งและใช้งานคอมไพล์ได้ดี ...

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

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


ปรับปรุงเมื่อ 9/20/2019

ตามที่ระบุไว้โดยคำตอบล่าสุดจากDarkPurple141และเอลิแวน Looij ไม่ได้ดูเหมือนจะเข้ากันได้กับnvm homebrewนี้จะยังระบุอย่างเป็นทางการใน repo NVM-SH ตั้งอยู่ที่นี่

ไม่รองรับการติดตั้ง Homebrew หากคุณมีปัญหากับ nvm ที่ติดตั้ง homebrew โปรดทำการถอนการติดตั้งและติดตั้งโดยใช้คำแนะนำด้านล่างก่อนที่จะยื่นปัญหา

หมายเหตุ: หากคุณใช้ zsh คุณสามารถติดตั้ง nvm เป็นปลั๊กอิน zsh ได้อย่างง่ายดาย ติดตั้ง zsh-nvm และเรียกใช้การอัปเกรด nvm เพื่ออัปเกรด

ขั้นตอนต่อไปนี้จะช่วยได้:

  1. $ brew uninstall nvm
  2. $ brew cleanup(เพียงเพื่อการวัดที่ดี)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. ตรวจสอบ NVM ที่ถูกติดตั้งอย่างถูกต้องโดยการเรียกใช้ command -v nvm$

    4.a หากการตอบสนองเป็นอย่างอื่นที่ไม่ใช่ $ nvmให้เพิ่มสองบรรทัดต่อไปนี้ในไฟล์ ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b รีสตาร์ทคอมพิวเตอร์ (คุณสามารถลองปิด Terminal และรีสตาร์ทก่อน) 4.c ​​$ command -v nvm should now returnnvm`

  5. ตอนนี้อัปเดต Node.js ด้วย $ nvm install --lts

  6. อัปเดต npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. ในที่สุดก็สำเร็จ! สำหรับฉันและฉันก็หวังดีกับคุณเช่นกัน

3
ยังคงมีอยู่หรือไม่หากคุณรีสตาร์ท Terminal
Aaron Brager

ลองพิมพ์ rehash หรือเปิดเชลล์ใหม่ บางครั้ง zsh ไม่ได้รับการเพิ่ม
Doon

ฉันปิดเชลล์ระบบรีบูตและไม่มีอะไรเลย ทำใหม่และไม่มีโชค
Dayan

แล้ว brew link nvm ทำอะไรได้บ้าง?
Doon

คำเตือน: ลิงก์แล้ว: /usr/local/Cellar/nvm/0.20.0 วิธีลิงก์ใหม่: brew ยกเลิกการลิงก์ nvm && brew link nvm
Dayan

คำตอบ:


129

คุณได้ปฏิบัติตามคำแนะนำที่ระบุไว้ในข้อควรระวังหรือไม่?

[~] brew info nvm
nvm: stable 0.20.0, HEAD
https://github.com/creationix/nvm
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb
==> Caveats
Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:

  source $(brew --prefix nvm)/nvm.sh

Node installs will be lost upon upgrading nvm. Add the following above
the source line to move install location and prevent this:

  export NVM_DIR=~/.nvm

หากไม่มีการกำหนดค่าพิเศษดูเหมือนว่าจะไม่พบ NVM ตามค่าเริ่มต้น ..


3
ขอบคุณสำหรับการแจ้งเตือน Doon ฉันไม่ทราบbrew infoยังใหม่สำหรับhomebrew:) ตอนนี้ทำงานได้ดีหลังจากทำตามขั้นตอนเหล่านั้น
Dayan

ควรแสดงหลังจากการติดตั้งเสร็จสิ้นเช่นกัน แต่ถ้าคุณไม่ได้มองหาพวกเขาอาจพลาดได้
Doon

4
ฉันต้องเพิ่มสิ่งนี้โดย~/.bash_profileเพื่อให้มันทำงาน: /
Janaka

1
อืม. ฉันไม่ได้ใช้ bash (ชอบ zsh) แต่ดูเหมือน OSX terminal.app (ฉันไม่ได้ใช้เทอร์มินัลเช่นกันชอบ Iterm2) เปิดแต่ละเชลล์เป็นเชลล์ล็อกอินดังนั้นใช่. bash_profile จะถูกต้องในกรณีนั้น นอกจากนี้ข้อมูลยังมีการเปลี่ยนแปลง ดังนั้นคุณจึงควรดูที่รุ่นล่าสุด ..
ล่าง

ขอบคุณ! ฉันพลาดบรรทัด source $(brew --prefix nvm)/nvm.shนี้ เพิ่มไปยัง. zhouh ของฉัน
John Ottenlips

43

มีสองสิ่งที่คุณต้องทำ ทำตามคำเตือนที่แสดงหลังจากติดตั้ง nvm ผ่านการชงและจากนั้นคุณต้องเปิดใช้งาน / โหลดการเปลี่ยนแปลง. bash_profile ใหม่

  1. วิ่ง brew install nvm
  2. ปฏิบัติตามคำเตือนที่แสดงในคอนโซลของฉันมีดังนี้ของคุณอาจแตกต่างออกไป!:

เพิ่มสิ่งต่อไปนี้ใน ~ / .bash_profile หรือไฟล์คอนฟิกูเรชันเชลล์ที่คุณต้องการ:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. เรียกใช้. ~/.bash_profileเพื่อใช้การเปลี่ยนแปลงที่คุณทำกับไฟล์. bash_profile ของคุณ

สิ่งนี้มีประโยชน์สำหรับผู้ใช้ Bash แต่ OP อยู่บน zsh ฉันเดาเช่นเดียวกัน.zshrcกับการปรับเปลี่ยนที่จำเป็น
tripleee

5

แม้ว่าคำตอบที่ยอมรับจะใช้งานได้ในทางเทคนิค แต่ก็น่าสังเกตว่าการติดตั้ง Homebrew ไม่ได้รับการสนับสนุนอย่างเป็นทางการจากnvmแพ็คเกจ วิธีที่แนะนำเพื่อหลีกเลี่ยงปัญหาเช่นเดียวกับที่ยกมาข้างต้นคือใช้วิธีการติดตั้งอย่างใดอย่างหนึ่งด้านล่าง

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

# or wget:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

แหล่งที่มา: https://github.com/creationix/nvm


3

ฉันใช้เวลาสองสามชั่วโมงในการแก้ไขปัญหานี้ แต่ฉันได้ข้อสรุปว่า DarkPurple141 นั้นถูกต้อง: nvm ไม่สามารถใช้งานร่วมกับ Homebrew ได้เนื่องจากระบุไว้ใน Github nvm-sh / nvm Node จัดการเวอร์ชัน Homebrew จะติดตั้ง nvm และทุกอย่างดูดีจนกว่าจะมีคนพยายามรับ npm เพื่อติดตั้งโมดูล Mocha ในกรณีของฉัน นั่นทำให้ฉันกลับไปสู่ข้อผิดพลาดที่น่ากลัว:

ผิดพลาด! ข้อผิดพลาด: EACCES: การอนุญาตถูกปฏิเสธเข้าถึง '/ usr / local / lib / node_modules'

หมายเหตุ: ในขั้นตอนที่ 3 ตรวจสอบให้แน่ใจว่าได้แทนที่เวอร์ชันด้วยรุ่นที่ถูกต้อง

วิธีแก้ปัญหาบน MacOS 10.14 Mojave คือ:

  1. $ brew uninstall nvm
  2. $ brew cleanup(เพียงเพื่อการวัดที่ดี)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. ตรวจสอบ NVM ที่ถูกติดตั้งอย่างถูกต้องโดยการเรียกใช้ command -v nvm$

    4.a หากการตอบสนองเป็นอย่างอื่นที่ไม่ใช่ $ nvmให้เพิ่มสองบรรทัดต่อไปนี้ในไฟล์ ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b รีสตาร์ทคอมพิวเตอร์ (คุณสามารถลองปิด Terminal และรีสตาร์ทก่อน) 4.c ​​$ command -v nvm should now returnnvm`

  5. ตอนนี้อัปเดต Node.js ด้วย $ nvm install --lts

  6. อัปเดต npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. ในที่สุดก็สำเร็จ! สำหรับฉันและฉันก็หวังดีกับคุณเช่นกัน

1

ในการติดตั้ง nvm brew install nvm

ในการรัน nvm หลังการติดตั้งหรือเพียงครั้งเดียว $(brew --prefix nvm)/nvm.sh

ในการเรียกใช้ nvm ทุกครั้งที่zshเปิดขึ้น

  1. nano ~/.zshrc
  2. เพิ่มบรรทัดนี้ source $(brew --prefix nvm)/nvm.sh

1

ฉันต้องการเพิ่มตำแหน่งของ nvm บน github ที่เปลี่ยนไปและเวอร์ชันถูกชน คำสั่ง curl ตอนนี้ควรเป็น:

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

0

เหตุผลที่คุณต้องรีโหลดโปรไฟล์ bash หรือไฟล์ bash อื่น ๆ อาจเป็นเพราะคำสั่ง nvm อาจไม่ใช่โปรแกรม แต่เป็นฟังก์ชันที่กำหนดไว้และสามารถใช้ได้ก็ต่อเมื่อไฟล์ bash นั้นมีที่มาเท่านั้น

ในระบบที่ฉันตรวจสอบ

which nvm 

ไม่ทำงาน แต่

nvm list

ทำ. ซึ่งหมายความว่าคุณสามารถใช้คำว่า "nvm" เพื่อเรียกบางสิ่งได้ นั่นไม่ใช่โปรแกรม ในกรณีปัจจุบันเป็นฟังก์ชันที่สามารถตรวจสอบได้

typeset -F | grep -P ' nvm$'

ซึ่งเอาต์พุต

declare -F nvm

ซึ่งหมายความว่า nvm เป็นฟังก์ชันที่สามารถตรวจสอบร่างกายได้โดยการทำ

type -F nvm

1
ดี .. แต่นี่คือคำตอบอย่างไร?
Dayan

1
ขอบคุณสำหรับการอัปเดต Dayan - แก้ไขคำตอบ - สาเหตุที่หาไม่เจอเพราะพึ่งว่ามันเป็นโปรแกรม แต่ถูกกำหนดให้เป็นฟังก์ชัน ต้องการเน้นว่า
Saurabh Hirani

ในการตรวจสอบว่าได้ติดตั้ง nvm อย่างถูกต้องหรือไม่ให้ใช้ 'command -v nvm' ใน Terminal การตอบสนองควรเป็น "nvm" หากยังไม่ได้ทำตามคำแนะนำบนgithub.com/nvm-sh/nvm#installation-and-update
Elise van Looij

0

ความเป็นไปได้อย่างหนึ่งหากbrewถูกใช้คือnvmอาจถูกยกเลิกการเชื่อมโยงโดยเฉพาะอย่างยิ่งหากมีการติดตั้งโดยผู้ใช้ MAC OS รายอื่น

ในกรณีนี้ให้ดำเนินการ:

brew link nvm


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