ฉันจะถอนการติดตั้ง Node.js ได้อย่างไรและติดตั้งใหม่ตั้งแต่ต้น (Mac OS X)


1290

โหนดเวอร์ชันของฉันใช้ v0.6.1 ล่วงหน้าเสมอแม้หลังจากติดตั้งโหมดชงแล้วและติดตั้ง NVM เป็น v0.6.19

เวอร์ชันโหนดของฉันคือ:

node -v
v0.6.1-pre

NVM พูดว่านี่ (หลังจากที่ฉันติดตั้งเวอร์ชั่นของโหนดเป็นครั้งแรกในเครื่อง bash หนึ่งเครื่อง):

nvm ls
v0.6.19
current:    v0.6.19

แต่เมื่อฉันเริ่ม bash ใหม่นี่คือสิ่งที่ฉันเห็น:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

แล้ว phantom node 0.6.1 รุ่นก่อนอยู่ที่ไหนและฉันจะกำจัดมันได้อย่างไร ฉันกำลังพยายามติดตั้งไลบรารีผ่าน NPM เพื่อให้สามารถทำงานในโครงการได้

ฉันพยายามใช้ BREW การอัปเดตก่อน NVM ใช้และbrew update brew install nodeฉันได้พยายามลบ "โหนด" ไดเรกทอรีของฉัน/usr/local/includeและ "โหนด" และ "node_modules" /usr/local/libในของฉัน ฉันได้ลองถอนการติดตั้ง NPM และติดตั้งใหม่โดยทำตามคำแนะนำเหล่านี้

ทั้งหมดนี้เพราะฉันพยายามอัปเดตโหนดรุ่นเก่ากว่าเพื่อติดตั้งไลบรารี่ "zipstream" ขณะนี้มีโฟลเดอร์ในไดเรกทอรีผู้ใช้ของฉันและรุ่นโหนด STILL ยังไม่เป็นปัจจุบันถึงแม้ว่า NVM จะใช้ 0.6.19

เป็นการดีที่ฉันต้องการถอนการติดตั้ง nodejs, npm และ nvm และเพิ่งติดตั้งสิ่งใหม่ทั้งหมดตั้งแต่เริ่มต้นบนระบบของฉัน



/ usr / bin / node เป็นอีกหนึ่ง ...
Aaron Blenkush

1
สิ่งนี้อาจช่วยให้ใครก็ตามที่ติดตั้งโหนดผ่านไฟล์ pkg superuser.com/questions/36567/…
karthikeayan

Mac 10.13.5 มี / ผู้ใช้ / myusername / node_modules ฉันควรลบโฟลเดอร์นี้ด้วยหรือไม่ ฉันค้นหาในหัวข้อนี้ แต่ไม่มีใครประสบปัญหานี้ดูเหมือนว่า
vikramvi

@Pacerier แม้หลังจากทำตามคำแนะนำในส่วนสำคัญยังคงมีโหนดและ npm ใน Mac OS 10.13.5
vikramvi

คำตอบ:


1699

เห็นได้ชัดว่ามี/Users/myusername/localโฟลเดอร์ที่บรรจุincludeด้วยnodeและlibด้วยและnode node_modulesอย่างไรและทำไมสิ่งนี้จึงถูกสร้างขึ้นแทนที่จะอยู่ใน/usr/localโฟลเดอร์ของฉันฉันไม่รู้

การลบการอ้างอิงท้องถิ่นเหล่านี้แก้ไข phantom v0.6.1-pre หากใครมีคำอธิบายฉันจะเลือกให้เป็นคำตอบที่ถูกต้อง

แก้ไข:

คุณอาจต้องทำตามคำแนะนำเพิ่มเติมด้วย:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

ซึ่งเทียบเท่ากับ (เหมือนข้างบน) ...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

หรือ (เหมือนข้างบน) แยกย่อย ...

หากต้องการถอนการติดตั้งโหนด + npm อย่างสมบูรณ์ให้ทำดังนี้:

  1. ไปที่/ usr / local / libและลบโหนดและnode_modulesใด ๆ
  2. ไปที่/ usr / local / includeและลบไดเร็กทอรีโหนดและnode_modulesใด ๆ
  3. หากคุณติดตั้งด้วยโหนดการติดตั้งชงแล้วเรียกใช้โหนดถอนการติดตั้งชงใน terminal ของคุณ
  4. ตรวจสอบไดเร็กทอรี Home ของคุณสำหรับโลคัลหรือlibหรือรวมโฟลเดอร์และลบโหนดใด ๆหรือnode_modulesจากนั้น
  5. ไปที่/ usr / local / binและลบโหนดใด ๆสามารถเรียกทำงานได้

คุณอาจต้องทำ:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

นอกจากนี้ NVM จะปรับเปลี่ยนตัวแปร PATH $HOME/.bashrcซึ่งต้องเป็นหวนกลับด้วยตนเอง

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


82
rm -rf /Users/[homedir]/.npmฉันยังมีการ
brokenindexfinger

17
ต้องลบออกด้วย/Users/[homedir]/.nvm
n0pe

42
ฉันก็วิ่งไปbrew doctorแล้วbrew pruneเพื่อทำความสะอาด symlinks ที่หักสำหรับ NPM
Chris Jacob

54
ฉันได้รวมบทที่ฉันได้ทดสอบแล้วในตอนนี้ ขอบคุณ @DominicTancredi มันใช้งานได้ดีมาก! gist.github.com/brock/5b1b70590e1171c4ab54
บร็อค

13
ฉันยังต้องเพิ่ม: sudo rm -rf ~/.node-gyp. ฉันเพิ่มมันด้วย MacPorts ก่อนที่ฉันจะเปลี่ยนเป็นชง
JESii

519

สำหรับผู้ใช้การต้ม OSX :

เพื่อลบ:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

ติดตั้ง:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

คุณสามารถรันbrew info nodeรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งโหนดของคุณ


พิจารณาใช้ NVM แทนการชง

NVM (ตัวจัดการเวอร์ชันโหนด) เป็นโซลูชันแบบพกพาสำหรับจัดการโหนดหลายเวอร์ชัน

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

คุณสามารถใช้สิ่งนี้กับ AVNเพื่อสลับรุ่นโดยอัตโนมัติในขณะที่คุณกระโดดระหว่างโครงการต่าง ๆ ที่มีการพึ่งพาโหนดที่แตกต่างกัน


2
วิธีการตั้งค่า env vars เพื่อให้โหนดและ npm พร้อมใช้งานหลังจากการติดตั้งดังกล่าว?
Maxim V. Pavlov

13
คุณอาจต้องเรียกใช้ Brew ด้วยการ--forceตั้งค่าสถานะเพื่อให้แน่ใจว่าโหนดทุกรุ่นจะถูกลบออก: $ brew uninstall --force node
magikMaker

-bash: /usr/local/bin/npm: No such file or directoryฉันจะทำอะไรได้ตอนนี้
ValRob

5
> "พิจารณาการใช้ NVM แทนการชง"; แดกดันคุณสามารถติดตั้ง NVM ด้วย Brew!; เคล็ดลับที่ดีขอบคุณ
HankCa

2
การใช้ NVM ช่วย
coderpc

186

ฉันรู้ว่าโพสต์นี้เก่าไปหน่อย แต่อยากจะแบ่งปันคำสั่งที่ทำงานให้ฉันใน Terminal เมื่อลบ Node.js

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

UPDATE: 23 SEP 2016


หากคุณกลัวที่จะใช้คำสั่งเหล่านี้ ...

ต้องขอขอบคุณสำหรับjguixthis quick tutorial

ก่อนอื่นให้สร้างไฟล์ระดับกลาง:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

ตรวจสอบไฟล์ของคุณด้วยตนเอง (อยู่ในHomeโฟลเดอร์ของคุณ)

 ~/filelist.txt

จากนั้นลบไฟล์:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

สำหรับ 10.10.5 ขึ้นไป

ขอบคุณ Lenar Hoyt

สรุปความคิดเห็นที่มา: gistcomment-1572198

สรุปสาระสำคัญต้นฉบับ: TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

15
โอ้โห - นี่ช่างน่ากลัวจริงๆ อย่างน้อย "rm" ตัวแรกไม่ใช่ "rm -rf" ซึ่งหากมีบรรทัดว่างบน outpur of sbom จะลบ / usr / local ทั้งหมด ก่อนที่จะทำอะไรที่หนักหน่วงอย่างนี้ให้ตรวจสอบผลลัพธ์ของ sbom และที่ซึ่ง dir ทั้งหมดเหล่านี้มาจากและตรวจสอบให้แน่ใจว่าคุณรู้ว่าคุณกำลังถอดอะไรอยู่
Don Hatch

16
ฉันควรจะเพิ่ม ... หากคุณมีสัญชาตญาณการดูแลรักษาสุขภาพที่ดีมันควรจะยากมากสำหรับคุณที่จะพิมพ์หรือคัดลอกวางคำสั่งที่สองซึ่งเริ่มต้นด้วย "sudo rm -rf /" เลย จามหนึ่งครั้งหรือแมวกระโดดบนแป้นพิมพ์ของคุณและคุณได้ทำลายระบบไฟล์ของคุณแล้ว
Don Hatch

2
มันแทนorg.nodejs.node.pkg.bom org.nodejs.pkg.bom
Lenar Hoyt

1
@ DonHatch คัดลอกบรรทัดโดยไม่มีตัวอักษรตัวแรกดังนั้นจึงเริ่มต้นด้วยudo..จากนั้นจึงเติมsก่อนที่จะเรียกใช้
youurayy

1
คำสั่ง lsbom outputs /usr/local/./node/yadaทางญาติจึงสคริปต์ได้พยายามที่จะลบเส้นทางที่ดูเหมือน ในการลบ./คำนำหน้าฉันใช้ cut filter: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
timiscoding

142

บน Mavericks ฉันติดตั้งจากโหนด pkg (จากเว็บไซต์ nodejs) และฉันถอนการติดตั้งเพื่อให้ฉันสามารถติดตั้งใหม่โดยใช้การชง ฉันรันแค่ 4 คำสั่งในเทอร์มินัล:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

หากยังคงมีการติดตั้งโหนดให้ทำซ้ำขั้นตอนที่ 2 หลังจากทั้งหมดเป็น ok ฉันจะติดตั้งโดยใช้ brew install node


50
1 ทำงานได้ แต่ล้มเหลว 2 ครั้ง ฉันได้รับ "no keg: usr / local / Cellar / node"
PositiveGuy

ใช่นี่เป็นวิธีที่ดีที่สุดถ้าคุณใช้งาน Mavericks
Dicer

1
ฉันลองแล้ว แต่ได้รับข้อผิดพลาดเดียวกันอีกครั้งข้อผิดพลาด: brew linkขั้นตอนไม่สำเร็จ
Chandni

ขอบคุณที่สมบูรณ์แบบยกเว้นฉันต้องเพิ่ม - บังคับให้ถอนการติดตั้ง
Medhi

1
FYI: จากการเขียนนี้ -->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. ครั้งแรก:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. เมื่อต้องการสรุปวิธีที่ดีที่สุด (ฉันพบ) เพื่อถอนการติดตั้งอย่างสมบูรณ์โหนด + npm คือการทำต่อไปนี้:

    ไปที่/usr/local/libและลบโหนดและ node_modules ใด ๆ

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. ไปที่/usr/local/includeและลบโหนดใด ๆ และไดเร็กทอรี node_modules

    cd /usr/local/include
    
    sudo rm -rf node*
  4. หากคุณติดตั้งbrew install nodeแล้วให้เรียกใช้brew uninstall nodeใน terminal ของคุณ

    brew uninstall node
  5. ตรวจสอบไดเรกทอรีบ้านของคุณเพื่อหาโฟลเดอร์ "local" หรือ "lib" หรือ "include" และลบ "node" หรือ "node_modules" ออกจากที่นั่น

    ไปที่ / usr / local / bin และลบโหนดที่สามารถเรียกทำงานได้

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. คุณอาจต้องทำตามคำแนะนำเพิ่มเติมด้วย:

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

ที่มา: tonyMtz


7
การลบออกnode*ไม่ใช่วิธีที่ปลอดภัยเป็นพิเศษในการดำเนินการต่อ อาจมีไบนารีอื่น ๆ ที่มีคำนำหน้านั้น
Lenar Hoyt

2
ยอดเยี่ยมในที่สุดหลังจาก 3 วันเมื่อตอนนี้มีปัญหา npm ลบออกอย่างสมบูรณ์และติดตั้งใหม่โดยใช้ brew บน mac ของฉันทำงานเหมือนมีเสน่ห์
Amit Bravo

เมื่อสั่งการครั้งแรกให้ได้รับcan't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.โปรดช่วยด้วย
Ahtesham Shah

แม้หลังจากทำตามขั้นตอนเหล่านี้บน Mac 10.13.5 ฉันยังคงเห็น npm และโหนดสิ่งที่อาจจะผิดหรือเปล่า?
vikramvi

25

ปรับลดโหนดเป็น 0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

อัพเกรดโหนดเป็นเสถียร v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

ฉันเพิ่งทำสิ่งนี้และแปลกมันลดระดับ NPM จาก 6.4.1 เป็น 6.2.0
Capn Sparrow

22

ฉันไม่แน่ใจว่าเป็นเพราะฉันมีเวอร์ชั่นเก่า (4.4.5) หรือถ้าเป็นเพราะฉันใช้โปรแกรมติดตั้งอย่างเป็นทางการ แต่ไฟล์ส่วนใหญ่ที่อ้างถึงในคำตอบอื่นไม่มีอยู่ในระบบของฉัน ฉันต้องลบสิ่งต่อไปนี้เท่านั้น:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

ฉันตัดสินใจที่จะเก็บไว้~/.npmเพราะฉันวางแผนที่จะติดตั้ง Node ด้วย Homebrew


คำตอบนี้ถูกสร้างขึ้นในปี 2012 ดังนั้นฉันแน่ใจว่ามันมีมรดกบางอย่าง ตอนนี้ถ้ามีคำตอบใหม่ปรากฏขึ้นฉันก็ลงคะแนนพวกเขาหลังจากตรวจสอบว่ามีประสิทธิภาพหรือไม่
Dominic Tancredi

15

ฉันได้สรุปคำตอบที่มีอยู่และทำให้แน่ใจว่าโหนด js ถูกลบโดยสมบูรณ์พร้อมกับ NPM

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

บรรทัดที่คัดลอกไปยังเทอร์มินัล:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;

ฉันทำตามขั้นตอนเหล่านี้และดูเหมือนว่าจะได้ผล ฉันยังคงมีไดเรกทอรีในโฟลเดอร์รากของฉันเหมือน.node-gyp/, .npm/, และ.npm-global/ .nvm/ฉันสามารถลบสิ่งเหล่านี้หรือฉันควรเก็บไว้ถ้าฉันวางแผนที่จะติดตั้งโหนดใหม่?
WaterTrash

10
  • ลบโหนดและ / หรือ node_modules จาก / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • ลบโหนดและ / หรือ node_modules จาก / usr / local / include

  • ลบโหนด node-debug และ node-gyp จาก / usr / local / bin
  • ลบ. npmrc จากโฮมไดเร็กตอรี่ของคุณ (นี่คือการตั้งค่า npm ของคุณ, อย่าลบสิ่งนี้หากคุณวางแผนที่จะติดตั้งโหนดอีกครั้งทันที)
  • ลบ. pm จากไดเรกทอรีบ้านของคุณ
  • ลบ. node-gyp จากโฮมไดเร็กตอรี่ของคุณ
  • ลบ. noode_repl_history จากโฮมไดเร็กตอรี่ของคุณ
  • ลบโหนด * จาก / usr / local / share / man / man1 /
  • ลบ npm * จาก / usr / local / share / man / man1 /
  • ลบ node.d จาก / usr / local / lib / dtrace /
  • ลบโหนดออกจาก / usr / local / opt / local / bin /
  • ลบโหนดออกจาก / usr / local / opt / local / include /
  • ลบ node_modules จาก / usr / local / opt / local / lib /
  • ลบโหนดออกจาก / usr / local / share / doc /
  • ลบ node.stp จาก / usr / local / share / systemtap / tapset /

ฉันต้องลบออกnode@6จาก/usr/local/opt/
echo



7

หากคุณติดตั้งnvmแล้วให้ดำเนินการคำสั่งต่อไปนี้

  • nvm deactivate - สิ่งนี้จะลบ /.nvm/*/bin ออกจาก $ PATH
  • nvm list - เพื่อแสดงรายการเวอร์ชั่นทั้งหมดของโหนดที่ติดตั้งในระบบ
  • nvm uninstall <version> ในคุณสามารถระบุทุกรุ่นที่คุณต้องการถอนการติดตั้ง

เป็นการดีที่คุณติดตั้งโหนดโดยใช้nvmและถอนการติดตั้งโดยใช้nvm มากกว่าbrewมากกว่า

วิธีนี้ใช้ได้ผลสำหรับฉัน

คำสั่งเพิ่มเติม

  • which nodeเพื่อทราบเส้นทางของโหนดที่ติดตั้งในระบบของคุณ คุณสามารถกำหนดไดเรกทอรีนี้เพื่อถอนการติดตั้งโหนดด้วยตนเอง จากนั้นคุณอาจต้องปรับไฟล์ PATH ให้เหมาะสม

6

ด้วยการเพิ่มคำตอบที่ยอดเยี่ยมของ Dominic Tancrediฉันได้นำสิ่งนี้ไปสู่แพ็คเกจ bash และสคริปต์แบบสแตนด์อะโลน หากคุณใช้ "Back Package Manager" ชื่อbpkg อยู่แล้วคุณสามารถติดตั้งสคริปต์ได้โดยเรียกใช้:

bpkg install -g brock/node-reinstall

หรือคุณสามารถดูได้ที่สคริปต์บน Github ที่บร็อค / โหนดติดตั้ง สคริปต์อนุญาตให้คุณติดตั้งโหนดอีกครั้งโดยใช้ nvm หรือ nave และเพื่อระบุเวอร์ชันโหนดเป็นค่าเริ่มต้นของคุณ


1
ฉันกำลังจะโพสต์สิ่งนี้และเห็นว่าผู้เขียนเองโพสต์คำตอบที่เป็นไปได้ที่ดีที่สุดสำหรับปัญหา: ใช้การติดตั้งโหนดอีกครั้งและคุณจะไม่หันกลับมามอง ให้ฉันชนพื้นวิ่งและพร้อมสำหรับการพัฒนาเพิ่มเติม! ไชโยสำหรับ @brockangelo นี้!
Wallace Sidhrée

3
คำเตือน ..... node-reinstallสคริปต์มีบรรทัดนี้: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} ดังนั้นถ้าคุณบังเอิญมีไดเรกทอรีของชื่อใน$HOME( ของฉัน) คุณจะได้รับการอุดตัน!
terrycojones

6

เพิ่มเติมจากคำตอบหลักฉันต้องการลบอินสแตนซ์ npm ทั้งหมดที่พบใน:

rm -rf /usr/local/share/man/man1/npm*

1
นี่ควรเป็นข้อคิดเห็นในคำตอบที่เหมาะสมไม่ใช่คำตอบใหม่
Edward Anderson

5

ฉันประสบปัญหาระหว่างการถอนการติดตั้ง Node.js บน mac ของฉัน ฉันมีพฤติกรรมแปลก ๆ เช่นnpmพวกเขาแม้หลังจากลบมันทั้งหมดแล้ว

เป็นเพราะฉันมีการติดตั้งเก่ากับ macport ดังนั้นคุณต้องถอนการติดตั้งโดยใช้พอร์ต:

sudo port uninstall nodejs

อาจมีการติดตั้ง Node.js หลายรุ่นดังนั้นถอนการติดตั้งทั้งหมด (หนึ่งต่อหนึ่ง)


1
นี่คือสิ่งที่เกิดขึ้นกับฉัน :-) ขอบคุณสำหรับคำตอบเพิ่มเติมของคุณ ฉันเริ่มมีคอร์โดวาหลายเวอร์ชันและหนึ่งน. น. ไม่สามารถลบคอร์โดวาหนึ่งอันและในทางกลับกันได้
peter_the_oak

5

บางทีคุณต้องทำ

hash -r 

ช่วยด้วยปัญหา symlink

$ node -v
$ bash: /opt/local/bin/node: No such file or directory

4

คุณสามารถโคลนhttps://github.com/brock/node-reinstallและรันคำสั่งแบบง่ายตามที่กำหนดใน repository หลังจากนั้นเพียงรีสตาร์ทระบบของคุณ
นี่เป็นวิธีที่ง่ายที่สุดและใช้ได้กับฉันด้วย


4

วิธีที่ดีที่สุดคือการดาวน์โหลดแพ็คเกจตัวติดตั้ง: .pkg บน mac ต้องการเวอร์ชันที่เสถียรล่าสุด

นี่คือลิงค์: Node.js

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


3

ฉันติดตั้ง Node.js จากซอร์สที่ดาวน์โหลดจากที่เก็บ git ฉันติดตั้งด้วย:

./configure
$ make
$ sudo make install

เนื่องจากไฟล์ make รองรับไฟล์ฉันจึงทำได้:

$ sudo make uninstall

วิธีรันแบบขนาน? บอกว่าฉันต้องการที่จะเรียกใช้ 2 รุ่น?

3

ในฐานะเพื่อนร่วมทางกับคำตอบที่อธิบายเกี่ยวกับการล้างข้อมูลและติดตั้งผ่าน homebrew ฉันพบว่า homebrew นั้นให้การบ่งชี้ที่ชัดเจนของการเชื่อมโยง symlink

น่าเสียดายที่มันให้ทีละตัวเพราะมันเจอพวกมันดังนั้นมันลำบากนิดหน่อย แต่ดูเหมือนว่ามันจะพบกับการปะทะทั้งหมดและเป็นวิธีเดียวที่ฉันจะได้รับการติดตั้งที่สะอาดด้วย homebrew

เป็นหลักกระบวนการคือ:

  1. ใช้ homebrew เพื่อถอนการติดตั้งโหนด
  2. ทำความสะอาดโฮมบรูว์
  3. ใช้ homebrew เพื่อติดตั้งโหนดและจดบันทึกไฟล์การปะทะใด ๆ
  4. ลบไฟล์การตั้งค่าสถานะการปะทะกัน (หรือทั้งไดเรกทอรีถ้ามันเป็นไดเรกทอรี 'โหนด')
  5. ข้ามไปขั้นตอนที่ 1 จนกว่าคุณจะได้รับการติดตั้งใหม่ทั้งหมด

diagrammatically:

นี่คือเอาท์พุทหน้าจอจากขั้นตอนสุดท้ายของการติดตั้งของฉัน - คุณสามารถดูผลลัพธ์ในการติดตั้งใหม่ (ในที่สุด ... ):

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0

2

ก่อนอื่นคุณต้องปิดการใช้งานโหนด: (mac) หลังจากติดตั้งเวอร์ชันโหนดใหม่

nvm deactivate

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

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

node --version
v10.9.0

1

นี้คงให้ฉันแก้ไข NPM บน Mac OS X สำหรับผู้ใช้ และไม่ต้องใช้ขั้นตอนมากเกินไป

เพียงไปที่ส่วนการแก้ปัญหาถ้าคุณไม่สนใจว่าทำไม

นี่คือส่วนที่เกี่ยวข้องเพื่อความสะดวก:

สารละลาย

npm update npm -gวิธีการแก้ปัญหานี้จะแก้ไขข้อผิดพลาดที่เกิดจากการพยายามที่จะวิ่ง เมื่อเสร็จแล้วคุณไม่จำเป็นต้องใช้sudoเพื่อติดตั้งโมดูล npm ทั่วโลก

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

รันคำสั่งต่อไปนี้เพื่อลบโมดูล global npm ที่มีอยู่ทั้งหมด, ถอนการติดตั้งโหนด & npm, ติดตั้งโหนดอีกครั้งด้วยค่าดีฟอลต์ที่ถูกต้องกำหนดค่าตำแหน่งสำหรับโมดูล npm โกลบอลที่จะติดตั้งแล้วติดตั้ง npm เป็น pacakge ของตัวเอง

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

ควรติดตั้งโหนดและ npm อย่างถูกต้อง ณ จุดนี้ ขั้นตอนสุดท้ายคือการเพิ่มแพ็กเกจ npm และ global npm ~/.npm-packages/binของคุณPATHให้สามารถใช้งานได้ หากต้องการทำสิ่งนี้ให้เพิ่มบรรทัดต่อไปนี้ใน~/.bash_profile:

export PATH="$HOME/.npm-packages/bin:$PATH"

ตอนนี้คุณสามารถติดตั้งแพคเกจทั่วโลกใหม่ที่คุณต้องการโดยไม่มีปัญหาใด ๆ


4
คำตอบสำหรับลิงก์อย่างเดียวนั้นไม่ควรนำมาใช้กับ Stack Overflow
Andrew Grimm

@AndrewGrimm เหมาะสมฉันคัดลอกส่วนที่เกี่ยวข้อง
pcatre

1
หลังจากใส่คำสั่งต่อไปนี้ฉันได้รับข้อผิดพลาดต่อไปนี้: curl -L npmjs.com/install.sh | sh .... npm ข้อผิดพลาด! บันทึกที่สมบูรณ์ของการทำงานนี้สามารถพบได้ใน: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! รหัส E404 npm ข้อผิดพลาด! ไม่พบ 404: 1.535s@latest npm ERR! บันทึกที่สมบูรณ์ของการทำงานนี้สามารถพบได้ใน: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log มันล้มเหลว
Shoaib Ahmed

1

ในกรณีของฉันคำตอบอื่น ๆ ไม่ทำงานเพราะฉันปรับลดรุ่นเป็น node8 ก่อนหน้านี้ ดังนั้นแทนที่จะทำด้านบนการติดตามสำหรับฉัน:

which node

ซึ่งส่งคืน/usr/local/bin/node@8แทน/usr/local/bin/node

ดังนั้นฉันจึงใช้คำสั่งนี้:

brew uninstall node@8

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


1

หากคุณไม่สามารถที่จะหาโหนดทำงานเพียงwhereis nodeและwhereis npmและwhereis nvmและคุณสามารถลบไดเรกทอรีที่ระบุไว้ตามความจำเป็น

คุณจะต้องปิดเทอร์มินัลทั้งหมดและเปิดใหม่อีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล


0

@ lfender6445 คำตอบทำงานได้ดีสำหรับฉันที่จะถอนการติดตั้ง

ตอนนี้เพื่อติดตั้งใหม่ฉันมีปัญหาในการติดตั้งรุ่นล่าสุดแทนที่จะเป็นรุ่นที่เสถียรที่สุดดังนั้นเมื่อต้องการติดตั้งรุ่นโหนดเฉพาะที่คุณควรทำ:

brew install node@10 // 10 is the version I want
brew link node@10

0

นักเทียบท่า - วิธีทางเลือก

นักเทียบท่าเป็นเครื่องเสมือนจริงที่รวดเร็วเป็นพิเศษซึ่งสามารถใช้เรียกใช้เครื่องมือเช่นโหนด (แทนที่จะติดตั้งโดยตรงบน mac-os) ข้อดีที่ต้องทำมีดังต่อไปนี้

  • ทุกสิ่ง (ไฟล์โหนด 'milions') จะถูกติดตั้งไว้ภายในอิมเมจ / คอนเทนเนอร์ (ซึ่งห่อหุ้มด้วยไฟล์ภายในตัวเทียบท่าเพียงไม่กี่ตัว)

  • คุณสามารถแมปไดเร็กตอรี่ mac ของคุณกับโปรเจ็กต์ไปยังคอนเทนเนอร์นักเทียบท่าของคุณและเข้าถึงโหนด - แต่นอกนักเทียบเคียง, ระบบ Mac-os ไม่ทราบว่าติดตั้งโหนดแล้ว ดังนั้นคุณจะได้รับ 'virtual' console พร้อมคำสั่ง node ที่สามารถใช้งานได้กับไฟล์จริง

  • คุณสามารถฆ่าโหนดได้อย่างง่ายดายโดยค้นหาdocker psและฆ่าโดยdocker rm -f name_or_num

  • คุณสามารถถอนการติดตั้งอิมเมจ / คอนเทนเนอร์ของนักเทียบท่าได้ง่ายๆด้วยคำสั่งเดียวdocker rmi ...และรับพื้นที่ว่าง - และติดตั้งอีกครั้งโดยเรียกใช้สคริปต์ (ด้านล่าง)

  • โหนดของคุณถูกห่อหุ้มอยู่ภายใน docker และไม่มีสิทธิ์เข้าถึงทั้งระบบ - เฉพาะกับโฟลเดอร์ที่คุณจับคู่กับมัน

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

  • คุณสามารถรันหลายโหนดในเวลาเดียวกัน

  • ในทำนองเดียวกันคุณสามารถติดตั้งเครื่องมืออื่น ๆ เช่น (ในหลาย ๆ เวอร์ชั่นในเวลาเดียวกัน): php, ฐานข้อมูล, redis และอื่น ๆ - ใน docker โดยไม่ต้องมีการโต้ตอบกับ mac-os (ซึ่งไม่สังเกตเห็นซอฟต์แวร์ดังกล่าวเลย) เช่นคุณสามารถเรียกใช้ในเวลาเดียวกัน 3 mysql db กับรุ่นที่แตกต่างกันและแอปพลิเคชัน 3 php กับรุ่น php ที่แตกต่างกัน ... - เพื่อให้คุณสามารถมีเครื่องมือมากมาย แต่ระบบที่สะอาด

  • TEAM WORK: สภาพแวดล้อมดังกล่าวสามารถถูกโคลนได้อย่างง่ายดายในเครื่องอื่น ๆ (และแม้แต่กับระบบ windows / linux - ด้วยการดัดแปลงบางอย่าง) และให้สภาพแวดล้อมในระดับนักเทียบท่าที่เหมือนกัน - ดังนั้นคุณสามารถติดตั้งและนำสคริปต์ / dockerfiles สมาชิกใหม่ในทีมอย่างรวดเร็ว (เขาเพียงแค่ต้องติดตั้งนักเทียบท่าและสร้างโครงสร้างโฟลเดอร์ที่คล้ายกันและรับสำเนาสคริปต์ - นั่นคือทั้งหมด) ฉันทำงานด้วยวิธีนี้เป็นเวลา 2 ปีและกับทีมของฉัน - และเรามีความสุขมาก

คำแนะนำ

  • ติดตั้ง docker โดยใช้คำแนะนำนี้

  • เตรียมไดเรกทอรี 'พิเศษ' สำหรับการทำงานเช่นไดเรกทอรีของฉันคือ/Users/kamil/work(ฉันจะใช้ไดเรกทอรีนี้ต่อไป - แต่มันอาจเป็นกฎเกณฑ์) - ไดเรกทอรีนี้จะเป็น 'ส่วนต่อประสาน' ระหว่างคอนเทนเนอร์นักเทียบท่าและไฟล์ mac ของคุณ ภายใน dir นี้สร้างโครงสร้าง dir ต่อไปนี้:

    /Users/kamil/work/code - ที่นี่คุณใส่โครงการของคุณด้วยรหัส

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - ที่นี่เราทำแผนที่เก็บข้อมูลเอาท์พุทเช่นบันทึก (หรือไฟล์ฐานข้อมูลถ้ามีคนใช้ฐานข้อมูล ฯลฯ )

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - ที่นี่เราใส่สคริปต์โหนดนักเทียบท่า

  • ภายในtoolsสร้างไฟล์.envซึ่งจะมีในสถานที่เดียวทั่วโลกเส้นทางที่ใช้ในสคริปต์อื่น ๆ

  • innside dir ../node-cmdสร้างไฟล์ที่dockerfileมีเนื้อหาดังต่อไปนี้

  • Innside dir ../node-cmdสร้างไฟล์ที่run-containerมีเนื้อหาดังต่อไปนี้ (ไฟล์นี้ควรจะสามารถเรียกใช้งานได้เช่นโดยchmod +x run-container) - (โปรดสังเกตว่าเราจับคู่พอร์ตและไดเรกทอรีในรูปแบบ 'โลก' ภายนอกกับระบบไฟล์นักเทียบท่าภายใน)

  • ตกลงตอนนี้คุณสามารถเพิ่มโครงการบางอย่างwork/code/myProjectและเพิ่มลงในไฟล์ดังต่อไปนี้ 'run-cmd' (ต้องปฏิบัติการ)

  • จากนั้นถ้าคุณเรียกใช้สคริปต์ข้างต้น (โดยดับเบิลคลิก) คุณจะเห็นคอนโซลพร้อมคำสั่งโหนดที่มีอยู่ในไดเรกทอรีโครงการเช่น npm install

  • เพื่อเรียกใช้โครงการในพื้นหลัง (เช่น serwice บางอย่าง) เช่นเรียกใช้แอปพลิเคชันเว็บเซิร์ฟเวอร์ angular-cli คุณสามารถใช้สคริปต์ต่อไปนี้ (ชื่อrun-front-must ปฏิบัติการ) - (คุณต้องแก้ไข/etc/hostsไฟล์เพื่อเพิ่มโดเมนที่เหมาะสม)


-7

(เซิร์ฟเวอร์: Ubuntu 14)

1. ) ติดตั้ง nvm (ตัวจัดการเวอร์ชันโหนด) https://github.com/creationix/nvm

2. ) โหนดการติดตั้ง nvm

3. ) npm -v (สอบถามรุ่น npm => 3.8.6)

4. ) node -v (ตรวจสอบ node version => v6.0.0)

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