คำสั่ง nvm ไม่พร้อมใช้งานในสคริปต์ทุบตี


39

ฉันพยายามสร้างสคริปต์ที่nvmและในที่สุดโหนดจะได้รับการติดตั้ง
ฉันติดตั้งnvmด้วย cURL แล้ว ฉันเห็นการแก้ไขใน.profileหรือ.bashrcไฟล์ (ทั้งทำงาน) และเมื่อพิมพ์nvmที่พรอมต์ bash มันจะแสดงตัวเลือกที่ใช้ได้ ฯลฯ
ดังนั้น nvm ทำงาน ฉันสามารถติดตั้งโหนดด้วยตนเอง แต่ทันทีที่ฉันใส่nvmคำสั่งลงในเชลล์สคริปต์:

nano test.sh

#!/bin/bash
nvm

และเรียกใช้ด้วย:

chmod 755 test.sh
./test.sh

ฉันเข้าใจ:

./test.sh: line 2: nvm: command not found

หากไม่สามารถหาได้nvmฉันก็ไม่ต้องคิด

nvm ls-remote 

หรือ

nvm install ...

ฉันติดตั้ง Ubuntu 14.04 และทุบตีเป็นเปลือกของฉัน


ฉันจะพิมพ์เส้นทางในสคริปต์ก่อนโทร nvm และตรวจสอบว่าถูกต้อง
AProgrammer

คำตอบ:


69

nvm~/.nvm/nvm.shคำสั่งฟังก์ชั่นเชลล์ประกาศใน

คุณอาจแหล่งสคริปต์ใดสคริปต์หนึ่งต่อไปนี้เมื่อเริ่มต้นเพื่อให้nvm()พร้อมใช้งาน:

. ~/.nvm/nvm.sh
. ~/.profile
. ~/.bashrc
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew

สวัสดีขอบคุณ. สิ่งนี้สมเหตุสมผลแล้วเมื่อ nvm ถูก "ติดตั้ง" ใน ~ / .nvm และอาจเป็นเพียงสคริปต์เชลล์ สิ่งที่ฉันขาดหายไปคือฉันสามารถพิมพ์ nvm และทำให้มันใช้งานได้ แต่เมื่อลองเชลล์สคริปต์ใน ~ / .nvm มันจะไม่ทำงาน
okidoki

คุณหมายถึงtrying the shell scripts in ~/.nvmอะไร ฉันอธิบายวิธีเรียกใช้nvmจากเชลล์สคริปต์ด้านบน มีอะไรที่ไม่ชัดเจน?
webKnjaZ

เพื่ออธิบายความคิดเห็นล่าสุดของฉันอย่างละเอียด เมื่อฉัน "sudo find / -iname nvm *" ฉันค้นหาเฉพาะสิ่งในโฟลเดอร์ ~ / .nvm ของฉัน การดำเนินการ ~ / .nvm / nvm-exec หรือ ~ / .nvm / nvm.sh (ไฟล์เดียวใน ~ / .nvm ซึ่งกลายเป็นสคริปต์เชลล์) ไม่ให้ nvm เหมือนให้พิมพ์ "nvm" บน บรรทัดคำสั่ง ดังนั้นลิงก์ระหว่าง nvm และโปรแกรมอยู่ที่ไหน
okidoki

โอ้ .. ฉันคิดว่าnvmมันเป็นaliasสภาพแวดล้อมในเชลล์ของคุณ โปรดโพสต์ผลลัพธ์which nvmและสิ่งนี้จะล้างสิ่งต่างๆ
webKnjaZ

2
ฉันได้ติดตั้งnvmในเครื่องแล้วก็ทำการวิจัย nvmเป็นฟังก์ชั่นของเชลล์ที่ประกาศnvm.shดังนั้นโดยพื้นฐานแล้วคุณเพียงแค่ต้องส่งไป. ~/.nvm/nvm.shที่จุดเริ่มต้นของสคริปต์ของคุณ (หรืออย่างที่ฉันเขียนไว้ด้านบน - source .profile/ .bashrc)
webKnjaZ

2

หากคุณติดตั้งผ่านทาง Brew บน OSX คุณสามารถโหลดสคริปต์ที่มาจากแหล่งชงลงในสคริปต์ env ได้โดยทำการจัดหาตามรายละเอียดในการติดตั้ง

ฉันมีสิ่งนี้ในโครงการที่จะ bootstrap พวกเขา:

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

1

คำบรรยายภาพขนาดเล็กด้านบนของคำตอบที่ได้รับจาก @webKnjaZ: ฉันต้องใช้ฟังก์ชันเชลล์ซอร์สสำหรับทุกคำสั่งเพื่อให้มันทำงานในสคริปต์ทุบตีของฉัน บางสิ่งเช่นนี้

. ~/.nvm/nvm.sh --version
. ~/.nvm/nvm.sh install 4.4.5

1
มันไม่ทำงานสำหรับฉัน ต่อไปนี้ใช้งานได้สำหรับฉัน: ~ / .nvm / nvm.sh nvm --version
jeff musk

0

สิ่งเดียวกันที่ปรากฏอยู่ด้านล่างคือสิ่งที่ทำงานให้ฉัน:

root @ ubuntu: / usr / src / playground # n = $ (โหนดใด); n = $ {n% / bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, share} / usr / local

root @ ubuntu: / usr / src / playground # sudo npm ติดตั้งด่วน '/usr/src/playground/package.json' + express@4.16.2 เพิ่ม 49 แพ็กเกจใน 129.186 วินาที

คำสั่งดังกล่าวค่อนข้างซับซ้อน แต่สิ่งที่มันทำคือการคัดลอกโหนดใด ๆ ก็ตามที่คุณใช้งานผ่าน nvm ไปยังไดเรกทอรี / usr / local / directory (ที่ผู้ใช้ติดตั้งไฟล์ทั่วโลกควรอยู่บน linux VPS) และการตั้งค่าการอนุญาต ผู้ใช้ทุกคนสามารถเข้าถึงได้

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