Làm cách nào để cài đặt gói R từ nguồn?


392

Một người bạn đã gửi cho tôi cùng hướng dẫn tuyệt vời này trên webscraping NYTimes với R . Tôi thực sự thích thử nó. Tuy nhiên, bước đầu tiên là cài đặt một gói có tên là RJSONIO từ nguồn.

Tôi biết R khá hợp lý, nhưng tôi không biết làm thế nào để cài đặt một gói từ nguồn.

Tôi đang chạy Mac OSX.


1
Điều này có liên quan rất chặt chẽ: stackoverflow.com/questions/11105131/ từ
GSee

Câu trả lời:


487

Nếu bạn có tệp cục bộ, sau đó sử dụng install.packages()và đặt repos=NULL:

install.packages(path_to_file, repos = NULL, type="source")

Trường hợp path_to_filesẽ đại diện cho đường dẫn và tên tệp đầy đủ:

  • Trên Windows, nó sẽ trông giống như thế này : "C:\\RJSONIO_0.2-3.tar.gz".
  • Trên UNIX, nó sẽ trông như thế này : "/home/blah/RJSONIO_0.2-3.tar.gz".

2
Điều này cũng hoạt động nếu file_name_and_pathlà kho lưu trữ nguồn cục bộ của gói R.
Faheem Mitha

1
Lưu ý INSTALL_optstùy chọn có thể được sử dụng để chuyển các tùy chọn đến R CMD INSTALL. Ví dụ: "--no-multiarch"
Andy Barbour

2
install.packages ("/ tmp / Shiny_0.13.1.tar.gz", repos = NULL, type = "source") tôi gặp lỗi này: -ksh: lỗi cú pháp: `('không mong đợi
iaav

3
Như @Cerin đã chỉ ra, bạn phải chăm sóc phần mở rộng. Tôi đã gặp lỗi "(vì 'lib' là không xác định)" từ R với lưu trữ .zip. Tất cả đều hoạt động tốt sau khi thay đổi phần mở rộng thành .tar.
Mohamed Hasan

2
đáng lưu ý rằng vì repos = NULLcách tiếp cận này sẽ không cài đặt các phụ thuộc, ví dụ từ CRAN. câu trả lời này cho thấy devtools::install_local(path_to_file)cái nào đơn giản hơn (cung cấp ít đối số hơn) và tốt hơn (cài đặt phụ thuộc quá).
mac

97

Tải xuống gói nguồn, mở Terminal.app, điều hướng đến thư mục nơi bạn hiện có tệp và sau đó thực thi:

R CMD INSTALL RJSONIO_0.2-3.tar.gz

Xin lưu ý rằng điều này sẽ chỉ thành công khi: a) gói không cần biên dịch hoặc b) các công cụ hệ thống cần thiết để biên dịch có mặt. Xem: https://cran.r-project.org/bin/macosx/tools/


3
Tôi đã thử điều này và gặp lỗi: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD CÀI ĐẶT RJSONIO_0.2-3.tar.gz Cảnh báo: gói không hợp lệ 'RJSONIO_0.2-3.tar.gz' Lỗi: LRI: không có gói được chỉ định

1
Bạn phải chỉ định đường dẫn chính xác đến tệp .tar.gz và các công cụ XCode ( developer.apple.com/TOOLS/Xcode ) là bắt buộc.
rcs

1
Có cách nào để xây dựng .zip nhị phân từ nguồn không?
haridsv

5
Tìm thấy giải pháp, bạn cần sử dụng tùy chọn --binary.
haridsv

Đã bao nhiêu lần bạn đến đây vì bạn đã gõ cài đặt thay vì CÀI ĐẶT?
Brandon Bertelsen

50

Bạn có thể cài đặt trực tiếp từ kho lưu trữ (lưu ý type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")

3
Tôi đã thử điều này và gặp lỗi: * Cài đặt gói nguồn 'RJSONIO' ... ** libs ** arch - i386 sh: make: lệnh không tìm thấy LRI: quá trình biên dịch không thành công cho gói 'RJSONIO' RMate dừng ở dòng 3 * Đang xóa / L Library / Framework / chỉ mục của các gói trong '.L Library' Thông báo cảnh báo: Trong install.packages ("RJSONIO", repos = " omegahat.org/R " ,: cài đặt gói 'RJSONIO' có trạng thái thoát không bằng 0

6
Bạn đã cài đặt các công cụ dành cho nhà phát triển chưa? Chúng có trong dvd cài đặt Mac OS X. Vì gói này có mã C, bạn sẽ cần một trình biên dịch để cài đặt nó từ nguồn.
Eduardo Leoni

1
Tôi nghi ngờ tôi không cài đặt các công cụ dành cho nhà phát triển. Atleast, tôi không nhớ cài đặt chúng. Cảm ơn!

4
Nếu bạn đang làm điều này trên windows, bạn có thể lấy các công cụ dành cho nhà phát triển từ murdoch-sutherland.com/Rtools ... đảm bảo khi cài đặt, bạn hãy chọn hộp có nội dung cập nhật đường dẫn của bạn (có thể hơi khó đọc ... . chỉ kiểm tra hộp không được chọn xuất hiện)
Dan Goldstein

27

Một mẹo bổ sung tiện dụng (nhưng tầm thường) để cài đặt phiên bản cũ hơn của các gói từ nguồn.

Đầu tiên, nếu bạn gọi "install.packages", nó luôn cài đặt gói mới nhất từ ​​repo. Nếu bạn muốn cài đặt phiên bản cũ hơn của các gói, hãy nói về tính tương thích, bạn có thể gọi install.packages ("url_to_source", repo = NULL, type = "source"). Ví dụ:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")

Không tải thủ công các gói vào đĩa cục bộ và chuyển sang dòng lệnh hoặc cài đặt từ đĩa cục bộ, tôi thấy nó rất thuận tiện và đơn giản hóa cuộc gọi (một bước).

Ngoài ra, bạn có thể sử dụng thủ thuật này với dev_mode của thư viện devtools, để quản lý các phiên bản khác nhau của các gói:

Tham khảo: tài liệu devtools


9

Từ cran , bạn có thể cài đặt trực tiếp từ địa chỉ kho lưu trữ github. Vì vậy, nếu bạn muốn gói tại https://github.com/twitter/AnomalyDetection:

library(devtools)
install_github("twitter/AnomalyDetection")

không lừa


8

Ngoài ra, bạn có thể xây dựng gói nhị phân bằng tùy chọn --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz

21
R CMD build --binarybị phản đối; sử dụng R CMD INSTALL --buildthay thế
f3lix
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.