2011-01-05 43 views
14

Tôi muốn hạ cấp phiên bản Ruby tôi đã cài đặt (Ruby 1.9.2) trên Ubuntu 10.04 OS để tôi có thể sử dụng phiên bản thích hợp của Ruby 1.8.7 để chạy Rails 2.0.2. Tôi đang sử dụng phiên bản cũ hơn của Rails cho mục đích dự án.Cách hạ cấp từ Ruby 1.9.2 xuống Ruby 1.8.7 để chạy Rails 2.0.2

Nếu tôi đang sử dụng Rails 2.0.2 với Ruby 1.9.2, nó cho tôi một lỗi nói rằng không thể chuyển đổi Enumerator thành một mảng.

Tôi nghĩ mình có thể sử dụng rvm, nhưng tôi không chắc liệu nó có phù hợp để hạ cấp hay không.

tôi nhận được sau trong terminal khi tôi sử dụng lệnh list RVM biết

[email protected]:~$ rvm list known 
# MRI Rubies 
[ruby-]1.8.6[-p399] 
[ruby-]1.8.6-head 
[ruby-]1.8.7[-p302] 
[ruby-]1.8.7-head 
[ruby-]1.9.1-p243 
[ruby-]1.9.1[-p376] 
[ruby-]1.9.1-p429 
[ruby-]1.9.1-head 
[ruby-]1.9.2-preview1 
[ruby-]1.9.2-preview3 
[ruby-]1.9.2-rc1 
[ruby-]1.9.2-rc2 
[ruby-]1.9.2[-p0] 
[ruby-]1.9.2-head 
ruby-head 

# JRuby 
jruby-1.2.0 
jruby-1.3.1 
jruby-1.4.0 
jruby-1.5.1 
jruby-1.5.2 
/home/mohnish/.rvm/config/known 

tôi nhận được sau trong danh sách các gói ruby ​​được cài đặt trên bằng cách sử dụng lệnh dpkg -l | grep ruby ​​

[email protected]:~$ dpkg -l | grep ruby 
ii libdbm-ruby        4.2            DBM interface for Ruby 
ii libdbm-ruby1.8        1.8.7.249-2          DBM interface for Ruby 1.8 
ii libgdbm-ruby        4.2            GDBM interface for Ruby 
ii libgdbm-ruby1.8       1.8.7.249-2          GDBM interface for Ruby 1.8 
ii libopenssl-ruby       4.2            OpenSSL interface for Ruby 
ii libopenssl-ruby1.8       1.8.7.249-2          OpenSSL interface for Ruby 1.8 
ii libreadline-ruby       4.2            Readline interface for Ruby 
ii libreadline-ruby1.8      1.8.7.249-2          Readline interface for Ruby 1.8 
ii libruby1.8         1.8.7.249-2          Libraries necessary to run Ruby 1.8 
ii libtcltk-ruby        4.2            Tcl/Tk interface for Ruby 
ii libtcltk-ruby1.8       1.8.7.249-2          Tcl/Tk interface for Ruby 1.8 
ii rdoc          4.2            Generate documentation from ruby source file 
ii ruby          4.2            An interpreter of object-oriented scripting 
ii ruby-elisp         4.2            Emacs-lisp ruby-mode for Ruby 
ii ruby-full         4.2            Ruby full installation 
ii ruby1.8         1.8.7.249-2          Interpreter of object-oriented scripting lan 
ii ruby1.8-dev        1.8.7.249-2          Header files for compiling extension modules 
ii ruby1.8-elisp        1.8.7.249-2          ruby-mode for Emacsen 
[email protected]:~$ ^C 

Tôi có cần phải gỡ bỏ cài đặt của Ruby 1.9.2 và chỉ sau đó mới cài đặt của Ruby 1.8.7 hoặc tôi có thể chuyển đổi các phiên bản ?. Nếu tôi có thể chuyển đổi các phiên bản, hãy hướng dẫn tôi cách thiết lập đường dẫn từ Ruby 1.9.2 sang Ruby 1.8.7. Hoặc nếu có một số cách khác xin vui lòng cho tôi biết.

Nếu tôi phải gỡ cài đặt Ruby 1.9.2 và sau đó cài đặt Ruby 1.8.7 mới, vui lòng cho tôi biết cách tôi có thể thực hiện. Tôi đã thử các lệnh sau để gỡ cài đặt Ruby 1.9.2 nhưng có vẻ như không tìm thấy gói Ruby 1.9.2.

sudo aptitude remove ruby 

sudo aptitude remove ruby 1.9.2p0 

sudo purge ruby 

sudo aptitude purge ruby 1.9.2p0 

Khi tôi kiểm tra cho phiên bản hiện tại của Ruby cài đặt nó cho thấy:

[email protected]:~/Downloads/rubygems_postextract/rubygems-1.4.1$ ruby -v 
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux] 

[email protected]:~/Downloads/rubygems_postextract/rubygems-1.4.1$ which ruby 
/home/mgj/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 

Nhờ sự giúp đỡ của bạn .. !!

Trả lời

39

Tổng số điểm của RVM là để bạn có thể có nhiều phiên bản của Ruby và chuyển đổi giữa chúng một cách dễ dàng ..

rvm install 1.8.7 #or some specific version - choose from the rvm list known 
rvm use 1.8.7 
rvm gemset create rails202 #create a gemset called "rails202" for Ruby 1.8.7 
rvm [email protected] #make the gemset the current selection 
gem install rails -v 2.0.2 #install rails (just for this gemset!) 
#now, we have a gemset called "rails202" in Ruby 1.8.7. 
#anytime we want to use it, we do: 
rvm [email protected] 
#create as many gemsets needed, eg for rails 3.0.3 on Ruby 1.8.7 we can do the 
#similar as above. Then to use the new gemset just do: 
rvm [email protected] 
#et voila! we are now using Rails 3.0.3 on Ruby 1.8.7 ! 
+2

+1 cho Zabba, một người rất hữu ích. – Tass

+3

Có, Zabba và Wayne E. Seguin người thực sự đã viết RVM .. :) – DemitryT

+0

sử dụng rvm có thể không hoạt động nếu không có '/ bin/bash --login' – t1gor

7

Sử dụng RVM và tiết kiệm cho mình tuần đau đớn.

Bạn có thể sử dụng nhiều phiên bản Ruby và mỗi phiên bản có bộ đá quý riêng biệt. Bằng cách đó bạn có thể cài đặt đồng thời 1.8.7 và 1.9.2 với Rails 2 và Rails 3 đá quý trên phần trước và sau đó.

Cài đặt phiên bản Ruby đơn giản như nhập rvm install 1.9.2 hoặc rvm install 1.8.7. Để chuyển đổi giữa hai số: rvm 1.9.2 hoặc rvm 1.8.7.

Bạn có thể đặt Ruby mặc định bằng rvm --default 1.9.2 hoặc rvm --default 1.8.7.

RVM sẽ không chạm vào Ruby cục bộ của bạn cũng không phải là đá quý. Bạn có thể quay lại bất kỳ lúc nào: rvm system.

0

nguồn ~/.rvm/scripts/RVM

RVM tải lại (Reload RVM mới nhất được cài đặt)

RVM cài đặt 1.8.7

RVM sử dụng 1.8.7 --default

Các vấn đề liên quan