2011-09-24 28 views
10

Logic đằng sau các vị trí lắp đặt khác nhau của các gói R khác nhau là gì? Tôi dường như có gói cài đặt ở một số địa điểm khác nhau trên máy linux của tôi. Đây có phải là hành vi điển hình này và nếu vậy thì điều gì là hợp lý để cài đặt một gói trong thư mục/usr/lib/R/thư viện vs/usr/lib/R/site-library? Tôi không thực sự quan tâm nơi gói được cài đặt nhưng nó có vẻ ngớ ngẩn để có các cài đặt trải ra ở các vị trí khác nhau trên hệ thống của tôi.Logic vị trí lắp đặt các gói R trong Linux

Renviron có nhận xét bên dưới, có vẻ như gợi ý rằng/usr/lib/R/thư viện trang web dành cho gói đóng gói Debian, nhưng không thực sự giải thích mục đích của hai thư mục kia. Ngoài ra, bằng cách thiết lập/usr/lib/R/thư viện cuối cùng trong danh sách không làm cho nó không phải là thư mục mặc định cho install.packages()?

# edd Apr 2003 Allow local install in /usr/local, also add a directory for 
#    Debian packaged CRAN packages, and finally the default dir 


> .libPaths() 
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"  
[3] "/usr/lib/R/library"  

Trả lời

8

Matt,

Bạn khái quát một cách sai lầm từ cụ thể (Debian/Ubuntu) cho generic (tất cả các distro Linux).

Thiết lập cụ thể này đã được đề xuất cho tôi bởi hai thành viên R Core sử dụng Debian (và đây là trước buổi bình minh của Ubuntu). Đây là không phải là đề xuất rộng R là lý do tại sao bạn sẽ không tìm thấy nó trong sách hướng dẫn, mà là đề xuất cụ thể của người dùng R sẽ được triển khai trên hệ thống Debian và Debian.

Ý tưởng cơ bản là

  • vẫn hoàn toàn trung thành với việc tách /usr/, /var/, .... để được xử lý bởi hệ thống quản lý gói (ví dụ apt-get, dpkg ...) trên một mặt, và /usr/local/... vv bởi người sử dụng, mặt khác: hai thì không bao giờ trộn

  • để /usr/local/lib/R/site-library nhận được linh sam t vị trí trong danh sách phát ra bởi .libPaths() và do đó trở thành mặc định, do đó đảm bảo rằng gói do người dùng cài đặt kết thúc dưới /usr/local/ theo điểm trước

  • để dưới /usr chúng ta có được một sự tách biệt giữa R của đề nghị đóng gói (bao gồm trong các nguồn R cơ bản quá: boot, grid, lattice, ...) bên trong /usr/lib/R/library và sau đó tất cả các gói khác quản lý gói được kiểm soátr-cran-* gói bên dưới /usr/lib/R/site-library. Vì vậy, ví dụ: r-cran-xml kết thúc ở đó, hoặc r-cran-zoo, hoặc ...

tôi vẫn nghĩ rằng chia tay là tuyệt vời, và đó là lý do tại sao tôi duy trì thiết lập này trong gói Debian R.

Có gói địa phương trên toàn trang web cho tất cả người dùng là ý tưởng hay về hệ điều hành đa người dùng.

+0

Ok cảm ơn. Tôi nhận ra rằng có lẽ có một lý do cho những chia tách mà tôi là một người dùng Linux tương đối mới (Ubuntu) không nắm bắt được. –

Các vấn đề liên quan