Tải phiên bản R mới nhất trên Raspberry Pi


8

Tôi có một Raspi chạy Debian Jessie (được tải xuống từ Trang web Tải xuống Raspberry chính thức (Phiên bản 2015-11-21)). Đối với một trong những dự án của tôi, tôi muốn sử dụng phần mềm r và một số gói rất hữu ích (data.table và ggplot2 nếu bạn muốn biết). Tuy nhiên, các gói này yêu cầu phiên bản r mới nhất (hiện là 3.2.3 theo CRAN , ít nhất là cho các cửa sổ). Trang web Gói Debian chính thức liệt kê 3.1.1 là phiên bản mới nhất.

Nếu tôi chạy sudo apt-get update, và sau đó sudo apt-get install r-base, theo sau sudo Rtôi thấy rằng tôi đã cài đặt phiên bản 3.1.1 (do đó, install.packages("data.table")trong R trả về rằng nó không tồn tại cho phiên bản cũ hơn này).

Bây giờ câu hỏi của tôi là: Làm thế nào tôi có thể cài đặt phiên bản R (3.2.3) mới nhất, hoặc cách khác là làm thế nào tôi có thể cài đặt hai gói?

Trước tiên, tôi đã thử làm theo mô tả chính thức trên trang CRAN (liên kết không hoạt động chính xác, bạn cần nhấp qua: Tải xuống R cho Linux -> Debian và sau đó cuộn xuống "Chi nhánh được hỗ trợ" và "Jessie", nơi nó đưa ra lời khuyên cho người dùng Jessie. Tôi đã làm gì sudo nano /etc/apt/sources.listvà thêm dòng này deb http://cran.rstudio.com/bin/linux/debian jessie-cran3/, sau đó thử cài đặt lại (sau khi gỡ bỏ nó sudo apt-get remove r-base) sudo-apt-get install r-base. Nhưng tôi đã gặp lỗi sau:

Thông báo lỗi

Tôi đang thiếu / làm gì sai? Cảm ơn bạn rất nhiều cho bất kỳ ý tưởng / trợ giúp / lời khuyên.

Câu trả lời:


8

Những gì tôi đã làm là sudo nano /etc/apt/sources.listvà thêm dòngdeb http://cran.rstudio.com/bin/linux/debian jessie-cran3/

Coi chừng các gói nhị phân từ đó, chẳng hạn như trình thông dịch R, sẽ chỉ hoạt động trên các kiến ​​trúc cụ thể, có lẽ ít nhất là x86 và x86_64.

Nhưng bạn sẽ cần một bản biên dịch cho ARMv6. Nếu bạn đang sử dụng Pi 2, bạn cũng có thể sử dụng ARMv7, phổ biến hơn, nhưng có khả năng vẫn không có sẵn trong kho lưu trữ.

Đây là lý do tại sao việc thêm repo sẽ không cho phép bạn nâng cấp phiên bản R - bạn sẽ không và không thể có các phụ thuộc phù hợp có sẵn cho gói nhị phân x86 (-64), vì vậy nó không thể cung cấp cho bạn phiên bản cao hơn.

Có thể có các gói R thuần túy từ đó bạn có thể sử dụng nhưng rõ ràng nếu chúng phụ thuộc vào phiên bản cao hơn của trình thông dịch thì bạn sẽ cần tìm thấy nó ở đâu đó trước.


Có vẻ như là một R 3.2. 2 trong repo kéo dài Raspbian (thử nghiệm). Tôi có một B chạy kéo dài và không có bất kỳ vấn đề. Để cài đặt này, bạn sẽ phải chỉnh sửa /etc/apt/sources.list; bây giờ có lẽ chứa:

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

Thêm stretchvào cuối danh sách đó. Bây giờ bạn có thể áp dụng logic được giải thích ở đây , mặc dù điều đó được viết khi "jessie" đang thử nghiệm và "khò khè" đã ổn định.


Trên CRAN có dòng chữ: "Có các nhị phân i386 và amd64 cho jessie, wheezy, bóp.
David

Có, debian sử dụng i386amd64nơi tôi đã sử dụng x86 và x86-64 nhưng chúng đề cập đến cùng một điều. Đầu tiên là kiến ​​trúc Intel 32-bit chuẩn trên PC; thứ hai là kiến ​​trúc AMD / Intel 64 bit được sử dụng rộng rãi hơn hiện nay. Cả hai đều không tương thích với bộ xử lý ARMv6 / 7 được sử dụng bởi Raspberry Pis. Một vấn đề là các armnhị phân Debian sẽ là ARMv7.
goldilocks

... Trong khi đó Raspbian thực sự là một hệ điều hành ARMv6 bất kể bạn sử dụng nó trên pi nào. Vì vậy, nếu bạn đang sử dụng Pi 2 và bạn có thể nhận được armgói đó , bạn có thể dùng thử nhưng không có gì đảm bảo. Nếu bạn đang ở trên một mô hình khác, bạn có thể thử armelgói, nhưng một lần nữa, nó có thể hoặc không thể hoạt động. Trình cài đặt ( apt) có thể sẽ từ chối làm điều này cho bạn, điều này làm cho nó khó xử.
goldilocks

Đó là một câu trả lời rất hay (mặc dù có khả năng tàn phá (?)). Cảm ơn cho nó! Không có cách nào khác, phải (ngoại trừ cố gắng biên dịch lại các gói / chương trình từ nguồn). Có máy vi tính nào khác (Arduino, Raspi, v.v.) có kiến ​​trúc tương thích không?
David

1
Được rồi, có 3.2.2: / Xem nội dung được chỉnh sửa ở trên ở cuối.
goldilocks

7

[Để lại câu trả lời vì tôi chưa thể viết bình luận]

Tôi đã làm theo hướng dẫn từ @goldilocks (câu trả lời được chấp nhận) trên một Raspberry Pi 3 hoàn toàn mới (tháng 9 năm 2016) chạy Raspbian Jessie, và mọi thứ hoạt động như mong đợi.

Trước đây tôi đã cài đặt phiên bản R có sẵn trong repo Raspbian, đó là 3.1.1. - quá cũ cho nhiều gói! Tôi chỉ cần mở /etc/apt/source.list, thêm một dòng:

deb http://archive.raspbian.org/raspbian/ stretch main

Sau đó

sudo apt-get update
sudo apt-get install r-base r-base-core r-base-dev

Bây giờ khi tôi vào Rtrong một cửa sổ đầu cuối, tôi nhận được 3.3.1. Trong quá trình cài đặt, tôi thấy rằng bản cài đặt mới đã thay thế bản 3.1.1 cũ.


Điều này không hoạt động (cảm ơn, giờ tôi có R v3.3.2) nhưng nó cài đặt / cập nhật toàn bộ tải các gói khác mà có thể không cần thiết
Luke

Vui mừng nó đã làm việc cho bạn! apt-getchỉ nên cài đặt các gói cần thiết để cài đặt ba r-gói tôi liệt kê ở trên (ngay cả khi đó, không phải tất cả các phụ thuộc hệ thống đều được đảm bảo để đưa vào, dựa trên kinh nghiệm của tôi). Nếu có các gói bạn không thực sự cần, nó có thể là kết quả của gói phát triển r-base-dev. Bạn có thể tìm ra các gói R được tải vào một phiên theo mặc định và sau đó gỡ cài đặt chúng hoặc ngăn không cho chúng được tải trong các phiên trong tương lai.
n1k31t4

5

Cập nhật từ Raspbian GNU / Linux 8 (jessie):

Dòng

deb http://archive.raspbian.org/raspbian/ stretch main

không hoạt động (ít nhất là không từ RPi3 của tôi)

Thay thế nó, tuy nhiên, với

deb http://mirrordirector.raspbian.org/raspbian/ stretch main

đã làm việc.

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.