RVM ไม่ทำงานใน ZSH


96

ฉันอยากจะลองใช้ ZSH shell บน Mac ของฉัน แต่ฉันก็พัฒนา Ruby and Rails หลายอย่างด้วยดังนั้นฉันจึงใช้ RVM ไม่น้อยเช่นกัน ปัญหาคือดูเหมือนว่าฉันจะไม่สามารถให้ RVM ทำงานใน ZSH ได้และมันก็ทำงานได้ดีใน Bash shell เริ่มต้น:

> zsh
> rvm 1.9.2
> ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
> which ruby
/usr/bin/ruby

ฉันสามารถยืนยันได้อย่างแน่นอนว่ามีการติดตั้ง RVM เช่นเดียวกับทับทิม 1.9.2 ภายใต้ RVM ฉันใช้มันตลอดเวลาใน Bash การรันrvm listใน ZSH แสดงให้เห็นสิ่งนี้น่าสนใจ:

rvm rubies

   ruby-1.8.7-p302 [ x86_64 ]
=> ruby-1.9.2-p0 [ x86_64 ]

สิ่งนี้เกิดขึ้นกับทั้ง iMac และ MacBook Pro ของฉัน ฉันใช้ OS X 10.6.6 ทั้งคู่ ZSH 4.3.9 บน iMac (4.3.10 บนแล็ปท็อป) ยังไม่มีอะไรแฟนซีเหมือน oh-my-zsh

ฉันพยายามดูเอกสารในเว็บไซต์ของ RVM แต่ไม่มีอะไรช่วยฉันได้ที่นั่น

คำตอบ:


278

คุณมีบรรทัดนี้ใน~ / .zshrcหรือไม่

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

2
ฮ่าฮ่าฮ่าลืมเรื่องง่ายๆนั้นไปโดยสิ้นเชิง ตอนนี้ฉันรำคาญความดื้อรั้นที่ไม่มาที่นี่เร็วกว่านี้ ขอขอบคุณ :).
swilliams

6
ยินดี. มันเกิดขึ้นในบางครั้ง :) สิ่งหนึ่งที่มีประโยชน์ในการเก็บการตั้งค่าเก่าของฉัน: "source ~ / .profile" และ "source ~ / .bash_profile" ใน ~ / .zshrc ของฉัน นอกจากนี้ยังทำให้. zshrc ของฉันสะอาดขึ้นเล็กน้อย
intellidiot

3
ฉันพบว่าเมื่อฉันใช้ oh-my-zsh เพื่อปรับแต่ง zsh มันได้เพิ่มพา ธ จำนวนมากไปยัง. zshrc ที่นำมาจากเชลล์ที่มีอยู่ของฉันซึ่งรวมถึงพา ธ ที่เพิ่มโดย rvm ภายใต้ bash
Luke Chadwick

1
ฉันใช้เวลาหลายปีในการพยายามคิดออกเช่นกันเนื่องจากบรรทัด[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"อยู่ใน. zlogin ของฉัน แต่ฉันคิดว่ามันไม่ได้ใช้มันเมื่อเปิดหน้าต่างเทอร์มินัลใหม่บน mac ของฉัน (10.7.3 โอ้ zsh ของฉัน) การเพิ่มลงใน. zshrc ก็ใช้งานได้สำหรับฉันเช่นกัน แต่ตามความคิดเห็นของ stackoverflowนี้. zshrc ผิดที่ที่จะใส่สิ่งนี้
waffl

5
ตรวจสอบให้แน่ใจว่าเส้นทางของคุณไปยัง $ HOME / .rvm / bin อยู่ก่อน / usr / bin มิฉะนั้นคุณอาจเรียกใช้งาน Ruby ที่มาพร้อมกับ OS X คุณสามารถตรวจสอบลำดับความสำคัญได้โดยพิมพ์ 'where ruby' ใน ZSH .
เน่าเสียง่าย Dave

22

หมายเหตุมีนาคม 2557:

ด้วย RVM ล่าสุดบรรทัดต่อไปนี้:

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

ไม่จำเป็นอีกต่อไปและไม่ควรอยู่ใน~/.zshrcไฟล์.

เอกสารได้รับการอัปเดตในเอกสาร RVM ด้วย Zsh :

ตรวจสอบให้แน่ใจใน iTerm2 Preferences: ตั้งค่าตัวเลือกLogin shell (อย่าใช้ตัวเลือก Command) สิ่งนี้จำเป็นสำหรับ RVM ในการทำงาน

หากคุณยังคงได้รับ rvm ไม่ใช่ข้อผิดพลาดของฟังก์ชันใน iTerm ให้ลอง:

rvm get stable --auto-dotfiles

อย่างน้อยในการติดตั้ง Arch Linux ของฉัน xterm ไม่ได้ใช้เชลล์ล็อกอินและดูเหมือนว่า rvm จะไม่ได้รับการตั้งค่าอย่างถูกต้องแม้จะรันคำสั่งนั้น
ioquatix

4

หมายเหตุพฤศจิกายน 2557

คำแนะนำในการติดตั้ง rvm เตือนว่า. zshrc ไม่รวม $ PATH เมื่อตั้งค่า PATH ดังนั้นจึงแทนที่เนื้อหาของ PATH โดยไม่คำนึงถึงสิ่งที่มีอยู่แล้วใน PATH

เพื่อแก้ไขปัญหานี้ตอนนี้ผมผนวกเส้นทางที่จะมี.rvm/binแล้วย่อหน้า $PATHที่จุดเริ่มต้นของการตั้งค่าPATHในบรรทัดที่สอง:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

export PATH=$PATH:"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/mysql/bin:/opt/local/bin"

1

ฉันมีปัญหาเดียวกันฉันแก้ไขโดยใช้สิ่งนี้หลังจากการติดตั้ง "ทับทิมบนราง":

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc

และ

source ~/.zshrc

0

ฉันใช้ zsh และมี [[-s "$ HOME / .rvm / scripts / rvm"]] && "$ HOME / .rvm / scripts / rvm" ในไฟล์. zshrc ของฉัน แต่ได้รับข้อผิดพลาดในการแยกวิเคราะห์: 404

เมื่อฉันย้ายบรรทัดนั้นไปยังไฟล์. profile ข้อผิดพลาดก็หยุดลง ดูเหมือนว่ามันจะขัดแย้งกับบางอย่างในไฟล์. zshrc ของฉันและบางทีเรียกใช้ใน. profile เพื่อหลีกเลี่ยงความเข้ากันไม่ได้ของไฟล์. zshrc ฉันไม่สามารถ

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