Làm thế nào để cập nhật Ruby lên 1.9.x trên Mac?


107

Tôi đã tạo một tài khoản người dùng mới trên máy Mac của mình và tôi đang cố gắng cập nhật lên phiên bản ruby ​​hiện tại trên đó (1.9.2) từ mặc định snow leopard là 1.8.7. Ai đó có thể chỉ cho tôi hướng dẫn hoặc giải thích phương pháp tốt nhất để cập nhật Ruby trên mac của tôi từ 1.8 lên 1.9.2 không? Cảm ơn

Câu trả lời:


66

Tôi sẽ đưa ra một đề nghị mạnh mẽ cho rvm .

Đó là một cách tuyệt vời để quản lý nhiều bộ Hồng ngọc và đá quý mà không va chạm với phiên bản hệ thống.


Tôi sẽ nói thêm rằng bây giờ (4/2/2013), tôi sử dụng rbenv rất nhiều, vì nhu cầu của tôi rất đơn giản. RVM rất tuyệt, nhưng nó có rất nhiều khả năng mà tôi không bao giờ cần đến, vì vậy tôi có nó trên một số máy và rbenv trên máy tính để bàn và máy tính xách tay của mình. Bạn nên kiểm tra cả hai và xem cái nào phù hợp nhất với nhu cầu của bạn.


Đã đồng ý. Và ngay cả khi nhiều phiên bản không phải là một vấn đề (ha!) Rvm vẫn rất tốt để tìm ra thư viện gốc nào bị thiếu. Khá nhiều thứ không thể thiếu.
Isaac Rabinovitch

198

Như Tin Man gợi ý (ở trên) RVM ( Trình quản lý phiên bản Ruby ) là Tiêu chuẩn để nâng cấp cài đặt Ruby của bạn trên OSX: https://rvm.io

Để bắt đầu, hãy mở Cửa sổ đầu cuối và sử dụng lệnh sau:

\curl -L https://get.rvm.io | bash -s stable --ruby

(bạn sẽ cần phải tin tưởng Nhóm nhà phát triển RVM rằng lệnh không độc hại - nếu bạn là một con chim cánh cụt hoang tưởng như tôi, bạn luôn có thể đọc nguồn : https://github.com/wayneeseguin/rvm ) Khi nó hoàn tất bạn cần khởi động lại thiết bị đầu cuối để rvmlệnh hoạt động.

rvm list known

(hiển thị cho bạn các phiên bản Ruby mới nhất hiện có )

rvm install ruby-2.3.1

Đối với một phiên bản cụ thể, tiếp theo là

rvm use ruby-2.3.1

hoặc nếu bạn chỉ muốn phiên bản mới nhất (hiện tại):

rvm install current && rvm use current

(cài đặt bản phát hành ổn định hiện tại - tại thời điểm viết ruby-2.3.1 - vui lòng cập nhật wiki này khi các phiên bản mới được phát hành)

Lưu ý khi biên dịch Ruby : Trong trường hợp của tôi, tôi cũng phải cài đặt Homebrew http://mxcl.github.com/homebrew/ để có được những viên ngọc tôi cần ( RSpec ), điều này buộc bạn phải cài đặt Xcode (nếu bạn chưa cài đặt ) https://itunes.apple.com/us/app/xcode/id497799835 VÀ / HOẶC cài đặt gói GCC từ: https://github.com/kennethreitz/osx-gcc-installer để tránh lỗi chạy " make ".

Chỉnh sửa: Kể từ Mavericks, bạn có thể chọn chỉ cài đặt các công cụ dòng lệnh Xcode thay vì toàn bộ gói Xcode, đi kèm với gcc và nhiều thứ khác mà bạn có thể cần để xây dựng gói. Nó có thể được cài đặt bằng cách chạy xcode-select --installvà làm theo lời nhắc trên màn hình.

Lưu ý về lỗi : nếu bạn gặp lỗi " RVM không phải là một hàm " trong khi thử lệnh này, hãy truy cập: Làm cách nào để thay đổi phiên bản Ruby của tôi bằng RVM? cho giải pháp.


Để thiết lập tất cả những điều này trên Mountain Lion cần rất nhiều kiên nhẫn. Nếu bạn gặp lỗi "Error running 'env GEM_PATH = / Users / ..." thì đó không phải là đường dẫn của bạn và bạn sẽ thấy trong nhật ký rằng openssl (có thể đã được cài đặt) bị lỗi trong RVM và họ cung cấp trang về cách làm việc thông qua nó rvm.io/packages/openssl
Dylan Valade

4
Tôi thực sự ghét mớ hỗn độn đó là Ruby. Đó là một mớ hỗn độn. Tuy nhiên, câu trả lời này đã giúp tôi đi đúng đường và thực sự cảm ơn rất nhiều vì điều đó!
Ian Lewis

1
Lang thang giữa các bài đăng dẫn tôi đến các vấn đề khác, tôi thấy bài này rất hữu ích vì nó giải thích cách sử dụng RVM, không chỉ sử dụng nó.
Hector Ordonez

19

Với bia, đây là một lớp lót:

(giả sử rằng bạn đã khai thác homebrew / phiên bản, điều này có thể được thực hiện bằng cách chạy brew tap homebrew/versions)

brew install ruby193

Làm việc hiệu quả cho tôi trên OS X 10.8.4. Hoặc nếu bạn muốn 2.0, bạn chỉ cầnbrew install ruby

Nói chung hơn, brew search rubyhiển thị cho bạn các repo khác nhau có sẵn và nếu bạn muốn thực sự cụ thể, bạn có thể sử dụng brew versions rubyvà kiểm tra một phiên bản cụ thể thay thế.


1
Một lớp lót tuyệt vời để cài đặt một phiên bản cụ thể của ruby! chuyển đổi giữa các phiên bản ruby với bia không phải là khá dễ dàng ... stackoverflow.com/questions/8730676
nelsonic

4

Tôi biết đó là một bài viết cũ hơn, nhưng tôi muốn thêm một số thông tin bổ sung về điều đó. Thứ nhất, tôi nghĩ điều rvmđó rất tuyệt NHƯNG nó không cập nhật ruby ​​từ hệ thống của tôi (MAC OS Yosemite).

Những gì rvmđang làm: cài đặt đến một vị trí khác và thiết lập đường dẫn đến biến môi trường của tôi ... Và tôi thực sự cảm thấy buồn chán, bởi vì tôi đã có hai viên ruby ​​trên hệ thống của mình.

Vì vậy, để khắc phục điều đó, tôi đã gỡ cài đặt rvm, sau đó sử dụng trình quản lý gói Homebrew có sẵn ở đây và cài đặt lệnh đầu cuối ném ruby ​​bằng cách thực hiện brew install ruby.

Và sau đó, mọi thứ đã hoạt động hoàn hảo! Ruby từ hệ thống của tôi đã được cập nhật! Hy vọng nó sẽ giúp ích cho các nhà thám hiểm tiếp theo!


1
Tôi đang đấu tranh để quyết định xem tôi có nên sử dụng rvmhay không brew. điều này có ích. thanks
unifreak

Không phải nấu bia cũng làm điều tương tự?
anon

3

Tôi không đồng ý với Người Tin ở đây. Tôi coi rbenv là thích hợp hơn RVM. rbenvkhông can thiệp mạnh vào shell của bạn như cách RVM làm và nó cho phép bạn thêm các cài đặt Ruby riêng biệt trong các thư mục thông thường mà bạn có thể kiểm tra trực tiếp. Nó cho phép bạn tự biên dịch Ruby. Sơ lược về sự khác biệt ở đây: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Tôi cung cấp hướng dẫn để biên dịch Ruby 1.9 cho rbenv tại đây . Hơn nữa, thông tin chi tiết hơn tại đây . Tôi đã sử dụng kỹ thuật này dễ dàng thành công trên Snow Leopard, Lion và Mountain Lion.


1
Tại thời điểm câu hỏi này ban đầu được hỏi, rbenv không phải là một lựa chọn. Thời gian thay đổi, cũng như mã. RVM vẫn là một lựa chọn tốt, nhưng nó khá nặng so với rbenv. Tôi sử dụng cả hai trên các máy khác nhau, vì cả hai đều hữu ích theo những cách khác nhau.
the Tin Man

2

Bài viết Hivelogic của Dan Benjamin Cài đặt Ruby, RubyGems và Rails trên Snow Leopard là nơi được khuyến khích thực hiện mặc dù bài viết dành cho 1.8, vì vậy đây là cách cài đặt Ruby 1.9 cụ thể trên Snow Leopard . Cẩn thận với thứ 64-bit ... hoặc sử dụng tất cả 64-bit 'chất béo' (ví dụ như - Apache trên OS X, có thể gây ra sự cố với thư viện 32 bit) hoặc kiểm tra bất kỳ viên ngọc nào bạn có thể sử dụng để đảm bảo chúng ổn đối với 64-bit.


2

Lệnh này thực sự hoạt động

\curl -L https://get.rvm.io | bash -s stable --ruby


0

Như đã đề cập trước đó, phiên bản gói có thể quá cao đối với phiên bản đường ray của bạn.

Tôi gặp phải vấn đề tương tự khi sử dụng Rails 3.0.1 yêu cầu Bundler v1.0.0 - v1.0.22

Kiểm tra phiên bản gói của bạn bằng cách sử dụng: gem list bundler

Nếu phiên bản gói của bạn không nằm trong phạm vi thích hợp, tôi thấy giải pháp này hoạt động: rvm @global do gem uninstall bundler

Lưu ý: rvm là cần thiết cho giải pháp này ... một trường hợp khác cho lý do tại sao bạn nên sử dụng rvm ngay từ đầu.


0

Có một số trình quản lý phiên bản khác để xem xét, hãy xem một vài ví dụ và một trong những phiên bản không được liệt kê ở đó mà tôi sẽ sớm thử là ch-ruby . Tôi đã thử rbenv nhưng có quá nhiều vấn đề với nó. RVM là trụ cột của tôi, mặc dù nó đôi khi có vấn đề kỳ lạ (vì vậy tôi muốn thử ch-ruby khi có cơ hội). Tôi sẽ không đụng đến hệ thống Ruby, vì những thứ khác có thể dựa vào nó.

Tôi nên nói thêm rằng tôi cũng đã biên dịch Ruby của riêng mình nhiều lần và sử dụng bài báo Hivelogic (như Dave Everitt đã đề xuất) là một ý tưởng hay nếu bạn đi theo con đường đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.