Tôi đang phát triển gói R đầu tiên của mình (sử dụng R 2.13, Ubuntu 10.10). Hãy gọi nó là foo và giả sử rằng mã trong R/thư mục bắt đầu với dòng thư viện (bar), nơi thanh là một gói phần mềm hiện có, trong Cran, trên đó foo phụ thuộc. tập tin MÔ TẢ My chứa dòng:Làm thế nào để cài đặt các phụ thuộc khi sử dụng "R CMD INSTALL" để cài đặt các gói R?
Depends: bar
Khi gói foo đã sẵn sàng để thử nghiệm, tôi cài đặt nó tại địa phương sử dụng:
R CMD INSTALL foo_1.0.tar.gz
Tuy nhiên, nếu thanh không được cài đặt, tôi thấy:
ERROR: dependency ‘bar’ is not available for package ‘foo’
Rõ ràng, nếu tôi foo là được cài đặt từ CRAN sử dụng install.packages(), thanh sẽ được cài đặt cùng một lúc. Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể đảm bảo rằng gói CRAN thanh được cài đặt, nếu cần, khi tôi cài đặt gói foo bằng cách sử dụng R CMD INSTALL? Đây có phải là một công việc cho một kịch bản cấu hình?
Vâng, hiểu biết của tôi là DESCRIPTION khai báo các phụ thuộc, nhưng không cài đặt chúng. Và vấn đề với thiết lập repos = NULL cho tarball là các gói phụ thuộc sau đó sẽ không được lấy từ CRAN. Tôi đang cố gắng đặt mình vào vị trí của một người dùng tải xuống và cài đặt tarball của tôi; họ có nên đọc tài liệu và thông báo lỗi hoặc có giải pháp không? – neilfws
Giải pháp là dành cho bạn để đặt gói của bạn trên CRAN và sau đó yêu cầu người dùng cài đặt gói và nhận phụ thuộc. Tôi đoán có thể có một số lý do tại sao bạn không thể làm điều này. Cài đặt từ tarballs không phải là một hoạt động 'người dùng đơn giản', vì vậy chúng không phải là spoonfed, và sẽ có thể đọc các thông báo lỗi và tài liệu của bạn. – Spacedman
Phải. Tôi đoán khi thử nghiệm tại địa phương, tôi biết rằng tôi có các phụ thuộc và nếu nó đi đến CRAN, CRAN sẽ chăm sóc các phụ thuộc, do đó, thực sự không có một vấn đề :) – neilfws