Cách cài đặt Ruby> = 2.1.9?


9

Tôi đã thử sudo apt-get install rubynhưng nó sẽ cài đặt Ruby 2.1.5.

Làm cách nào tôi có thể cài đặt phiên bản> = 2.1.9?

Câu trả lời:


6

Có một gói ruby ​​2.3 trong repos Raspbian, nhưng vì apt show rubytrên hệ thống "jessie" hiển thị 2.1, tôi cho rằng đây là gói "kéo dài" - tức là một phần của nhánh thử nghiệm / không ổn định hiện tại.

Tuy nhiên, tôi đã chạy lddtrên nó và libruby2.3một mình họ không có bất kỳ yêu cầu nào không phải là một phần của jessie, vì vậy bạn có thể cài đặt chúng theo cách này:

  1. Chỉnh sửa /etc/apt/sources.listvà thêm một dòng:

    deb http://archive.raspbian.org/raspbian/ stretch main
  2. Chạy apt get update; Nó có thể mất một thời gian.

Sau đó thử apt install ruby2.3. Điều này sẽ hoạt động nhưng có khả năng ruby ​​2,3 đá quý từ bản phân phối sẽ yêu cầu nâng cấp toàn bộ hệ thống để kéo dài. Tôi có một pi tôi đã làm điều này từ nhiều tháng trước và nó vẫn ổn, nhưng tôi không sử dụng ruby ​​và chỉ sử dụng pi đó cho những thứ cụ thể, vì vậy hãy nhớ rằng việc nâng cấp đầy đủ để thử nghiệm có thể (nhưng rất có thể sẽ không) trong các biến chứng.

Nâng cấp theo cách này cũng có thể làm cho việc sử dụng đá quý distro trở nên phức tạp hơn - một lần nữa, tôi không phải là người dùng ruby, vì vậy khả năng này tôi không thể nói thêm nữa. Có thể cài đặt các mô-đun ruby ​​bằng hệ thống quản lý gói riêng của nó và aptsẽ không phá vỡ điều này. Mặc dù apt có thể cuối cùng muốn cài đặt đôi khi là phụ thuộc, nhưng chúng không nên được ưu tiên khi sử dụng.

Đối với một số thứ, sử dụng gemthay thế sẽ yêu cầu bạn apt install -devgói cho những thứ mà các mô-đun được biên dịch lại và có thể có một số lượng nhỏ những thứ đơn giản sẽ không bay được.

Debian (và do đó Raspbian) có chính sách bảo thủ về phiên bản, có nghĩa là họ thích tránh khỏi tình trạng chảy máu trong nhánh ổn định (hiện tại là jessie), nhưng cũng duy trì một nhánh "không ổn định / thử nghiệm" khá ổn định (kéo dài) - hoặc là một khi nó đã được chơi trong một thời gian, mà bây giờ nó đã có.

Vì vậy, đề nghị của tôi là đi cho nó. Bây giờ bạn đã biết về sự cẩn thận và tất nhiên bạn nên giữ lại dữ liệu quan trọng của mình, vì vậy có lẽ không có nhiều rủi ro.


cảm ơn, nhưng tôi không thấy sources.list trong /etc/apt/sources.list.d, chỉ cần có raspi.list. Bạn có nghĩa là tôi cần phải tạo một tập tin mới?
Trevor

1
Xin lỗi, điều đó đã được /etc/apt/sources.list[sửa ở trên]. Tôi không chắc sự liên quan của việc sử dụng cái này với cái kia là gì (nếu có) nhưng sources.listchắc chắn hoạt động.
goldilocks

ok người đàn ông, nó hoạt động tốt.
Trevor

4

Cài đặt Ruby trên RPi3 với Raspbian Stretch (9.4)


Có hai cách để cài đặt ruby ​​trên RPi:

  1. Cài đặt ruby2.3gói APT.
  2. Sử dụng phương pháp cài đặt RVM chính thức.

(1) Cài đặt với APT

sudo apt-get install ruby2.3

Điều này cũng sẽ cài đặt các phụ thuộc bổ sung:

libruby2.3 rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet
ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration

Tuy nhiên, như đã biết, các nhà bảo trì phân phối Raspbian muốn giữ lại các phiên bản phát hành, vì vậy gói này rất có thể đã lỗi thời, so với những gì có sẵn. Để có phiên bản mới nhất (hoặc thậm chí là nhà phát triển), hãy sử dụng phương pháp RVM bên dưới.


(2) Cài đặt với RVM

RVM là gì?

Các của Ruby quản lý phiên bản ( RVM ) là một công cụ dòng lệnh cho phép bạn dễ dàng cài đặt, quản lý và làm việc với nhiều môi trường ruby từ dịch viên để bộ đá quý.

Cách chính xác để cài đặt Ruby trên RPi của bạn là làm theo hướng dẫn từ một trong những vị trí sau:

  1. Các rvm.io trang web
  2. Các RVM GitHub trang web

Dù bằng cách nào, bạn được yêu cầu chạy tập lệnh trực tiếp từ đầu ra phản hồi curl , như thế này.
( Đừng sử dụng sudo! )

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

Tuy nhiên, điều này thường không được khuyến nghị, vì lý do bảo mật rõ ràng, vì bạn không biết chuyện gì đang xảy ra hoặc đang xảy ra!

Vì vậy, thay vì làm như sau.

cd ~/Downloads/
\curl -sSL https://get.rvm.io -o rvm-installer
# ^^ That actually resolve to:
# curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer -o rvm-installer

chmod 755 rvm-installer
./rvm-installer

Downloading https://github.com/rvm/rvm/archive/master.tar.gz
Installing RVM to /home/pi/.rvm/
    Adding rvm PATH line to /home/pi/.profile /home/pi/.mkshrc /home/pi/.bashrc /home/pi/.zshrc.
    Adding rvm loading line to /home/pi/.profile /home/pi/.bash_profile /home/pi/.zlogin.
Installation of RVM in /home/pi/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/pi/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

. /home/pi/.rvm/scripts/rvm
rvm list

# No rvm rubies installed yet. Try 'rvm help install'.

rvm list known

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.7]
[ruby-]2.4[.4]
[ruby-]2.5[.1]
[ruby-]2.6[.0-preview1]
ruby-head
...

Thật không may rvm-installer help, không hiển thị một trong các tùy chọn ẩn hữu ích nhất : rvm-installer stable --ruby.

Ngoài ra, như đã lưu ý, khi bạn chạy trình cài đặt rvm , các tệp sau đây đã được sửa đổi để thêm một số nội dung liên quan đến rvm mới.

~/.profile
~/.mkshrc
~/.zshrc
~/.bash_profile
~/.zlogin
~/.rvm/scripts/rvm

Nếu bạn không thích điều này, hãy đảm bảo chuyển --ignore-dotfilestùy chọn cho trình cài đặt rvm . Nếu bạn làm như vậy, bạn sẽ cần phải làm thủ công:

echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

Tiếp theo, chúng tôi kiểm tra phiên bản Ruby ổn định nào thực sự được khuyến nghị:
https://www.ruby-lang.org/en/doads/

rvm install ruby-2.5.1 --binary         # this binary doesn't exist!
date; time rvm install ruby-2.5.1 -j 4  # we compile with 4 threads, 
                                        # this take ~XX min on a RPi3 

Một khi điều này đã được giải thích, tôi cũng có thể hoàn thành câu trả lời này ...

Vấn đề ở đây là rvmdường như thân thiện hơn rất nhiều, một khi các nhị phân đã được tạo. Tại sao những thứ này chưa có sẵn rộng rãi cho RPi3, có vẻ khá điên rồ.

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.