RVM ไม่ใช่ฟังก์ชั่นการเลือกทับทิมด้วย 'rvm use …' จะไม่ทำงาน


160

รายการรุ่นทับทิม

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

# => - current
# =* - current && default
#  * - default

ลองใช้ทับทิมเฉพาะรุ่น

console:~$ rvm use 2.0.0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

1
คุณพยายามจะทำอะไร?
Pavan

เทอร์มินัลใดที่คุณใช้ การตั้งค่าล็อกอินเชลล์แตกต่างกันไปตามเทอร์มินัลแอปพลิเคชัน หรือคุณสามารถsource $HOME/.profileหรือsource $HOME/.bash_profileที่ rvm อาจกำหนดบรรทัดเริ่มต้นไว้
Michael Berkowski

คุณต้องเรียกใช้คอนโซลเป็นเชลล์ล็อกอิน คุณมีระบบอะไร
BroiSatse

เทอร์มินัล Gnome Ubuntu 12.04 lts
user3678471

4
ในกรณีที่คุณสงสัยว่าสิ่งที่แตกต่างระหว่างการเข้าสู่ระบบ VS เปลือกที่ไม่ได้เข้าสู่ระบบนี้: unix.stackexchange.com/questions/38175/...
stephenbez

คำตอบ:


236

คอนโซลของคุณไม่ได้ทำงานเป็นเปลือกเข้าสู่ระบบและด้วยเหตุนี้ไม่สามารถเข้าถึงฟังก์ชั่น rvm หากคุณใช้งาน Ubuntu คุณสามารถ:

  1. เปิดคอนโซล
  2. เลือกแก้ไข -> การตั้งค่าโปรไฟล์
  3. เลือกแท็บ: ชื่อและคำสั่ง
  4. ช่องทำเครื่องหมาย 'เรียกใช้คำสั่งเป็นเปลือกเข้าสู่ระบบ'
  5. รีสตาร์ทเทอร์มินัล

1
ฉันทำอย่างนั้น แต่ไม่ได้ผล ปัญหายังคงมีอยู่ วิธีการลบ rvm สมบูรณ์?
user3678471

16
แน่นอนว่าคุณจะต้องมีสิ่งต่อไปนี้ใน ~ / .profile [[-s "$ HOME / .rvm / สคริปต์ / rvm"]] && "$ HOME / .rvm / สคริปต์ / rvm"
nadersoliman

3
ฉันคิดว่านี่สามารถอธิบายเพิ่มเติมได้ - "และด้วยเหตุนี้ไม่สามารถเข้าถึงฟังก์ชัน rvm"
matanster

1
มันได้ผล คุณช่วยบอกความแตกต่างระหว่างสองคนนี้ได้มั้ย
Krishnadas PC

6
สิ่งที่ใช้ได้กับฉันใน OSX คือ/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh

116

พิมพ์bash --loginจากเทอร์มินัลของคุณ และจากนั้นให้rvm use 2.0.0


@AdityaPednekar ดังนั้นบางครั้งการอ่านข้อผิดพลาด / คอนโซลข้อความช่วยจริง RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use /bin/bash --login as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.ระบุรายละเอียด
อยากรู้อยากเห็น

ใช่มันช่วยให้ตระหนักถึงความซับซ้อนอย่างไร้เหตุผลrvmเมื่อเทียบกับมันnvm
Jannis Ioannou

53

ดูเหมือนว่า rvm ของคุณจะไม่โหลด ".bash_profile" อย่างถูกต้อง ฉันได้ทำการแก้ไขใน MAC OS X หรือ Ubuntu 14.04 โดยเปิดเทอร์มินัลแล้วเขียน:

source ~/.rvm/scripts/rvm

41

env ของฉันคือ OSX Yosemite มีปัญหาเดียวกัน .... แก้ไขได้โดยการเพิ่มสิ่งต่อไปนี้

1) แก้ไขและเพิ่มบรรทัดต่อไปนี้ในไฟล์. bash_profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

2) รีสตาร์ท terminal แล้วลองใช้คำสั่ง RVM อีกครั้ง


2
คุณสามารถเพิ่มสิ่งนี้ลงใน ~ / .bashrc หรือ ~ / .zshrc (ถ้าคุณใช้ zsh) ด้วย
adridev

หากคุณไม่ต้องการหรือไม่สามารถรีสตาร์ทเครื่องคุณสามารถเรียกใช้source ~/.bash_profileหลังจากแก้ไขได้
Andre Ravazzi

35

หากคุณไม่ต้องการสิ่งนั้นทุกครั้งที่คุณเปิดเทอร์มินัลทำตามคำแนะนำด้านบนอีกครั้งเพียงเพิ่ม

source ~/.rvm/scripts/rvm

ในตอนท้ายของ ~/.bashrc


อันนี้ช่วยได้
Arup Rakshit

.. และต้องรีสตาร์ทหรือไม่
gordie

16

ข้อผิดพลาดเกิดจากการ rvm ไม่ได้ทำงานเหมือนในการเข้าสู่ระบบเปลือก ลองคำสั่งด้านล่าง:

/bin/bash --login

คุณจะสามารถเรียกใช้คำสั่ง rvm ได้ทันทีในชื่อล็อกอินเชลล์ในเทอร์มินัล

ขอบคุณ!


15

หลักการเดียวกับคำตอบอื่น ๆ แค่คิดว่ามันเร็วกว่าเทอร์มินัลเปิดใหม่ :)

bash -l -c "rvm use 2.0.0"

บางคนควรได้คำตอบที่ดีกว่าสิ่งเหล่านี้ทั้งหมด นี่เป็นรายการเดียวในคำตอบทั้งหมดสำหรับคำถามนี้ที่เหมาะกับฉัน แต่นี่ไม่ใช่สิ่งที่ฉันต้องการทำตลอดเวลา ฉันใช้ Mac OSX Sierra
djangofan

9

คุณจำเป็นต้องเพิ่มการsource ~/.rvm/scripts/rvm ~/.your_shellrc fileจากนี้เมื่อคุณโหลดเชลล์ rvm จะถูกโหลด

ตัวอย่างเช่น:

หากคุณกำลังใช้เปลือก zsh ต้องเพิ่มใน~/.zshrcไฟล์

หากคุณใช้ bash shell คุณจำเป็นต้องเพิ่ม~/.bashrcไฟล์

จากนั้นเปิดแท็บใหม่เพื่อดูเอฟเฟกต์


7

สำหรับฉันใน Ubuntu (18.08) ฉันได้เพิ่มบรรทัดด้านล่างใน. bashrc และใช้งานได้

 source /home/username/.rvm/scripts/rvm

กรุณาเพิ่มบรรทัดนี้


1
ขอบคุณ! สิ่งนี้ใช้ได้กับฉันใน MacOS! เป็นข้อเสนอแนะฉันคิดว่ามันจะดีกว่าที่จะใช้~เพื่ออ้างถึงเส้นทางที่บ้านของผู้ใช้: source ~/.rvm/scripts/rvm:-)
Giovanni Benussi

2

จากการติดตั้ง Ubuntu 16.04 ใหม่

1) เทอร์มินัล => แก้ไข => การตั้งค่าโปรไฟล์

2) แถบคำสั่ง => ตรวจสอบคำสั่งเรียกใช้เป็นเชลล์ล็อกอิน

3) ปิดและเปิดเทอร์มินัลอีกครั้ง

rvm --default use 2.2.4

0

FWIW- ฉันเพิ่งวิ่งข้ามสิ่งนี้เช่นกันมันเป็นบริบทของการเรียกใช้ซีลีเนียมที่ถูกยกเลิก บางทีอาจมี sub-shell ที่ถูกสร้างอินสแตนซ์และปล่อยไว้ การปิดหน้าต่างเทอร์มินัลนั้นและเปิดใหม่เป็นสิ่งที่ฉันต้องทำ (macOS Sierra)

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