Làm thế nào để cài đặt devtools của R và số hóa?


8

Tôi cần devtools vì tôi cần hàm install_github để cài đặt gói không CRAN số hóa tại đây . Tôi đã cài đặt Rbởi

sudo apt-get install r-cran-robustbase

Tôi đã không cài đặt các gói của R ngay lập tức, như câu trả lời của terdon đề xuất, nhưng tôi có thể sửa các quyền:

sudo chmod 755 /usr/lib/R/site-library/

mà tôi nghĩ là cài đặt mặc định. Sau đó tôi đã phải làm như đề xuất câu trả lời của rcs, để cài đặt thành công devtoolstpoisot/digitizenhưng chỉ với

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev
R
install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install.packages('readbitmap')
install_github('tpoisot/digitize')

Đầu ra của lệnh cuối cùng có thể là

Skipping install for github remote, the SHA1 (d16e28b9) has not changed since last install.
  Use `force = TRUE` to force installation

Làm install_github('tpoisot/digitize', force = TRUE)nhưng bạn có thể nhận được

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpX8eOLX/devtools57475d25a113/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

Error: ERROR: no permission to install to directory ‘/usr/local/lib/R/site-library’
Error: Command failed (1)

Tôi không thể tìm cách cài đặt số hóa mà không có sudo. Vì vậy sudo R, và lặp lại tương tự và bạn nhận được

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpAlAT4e/devtools57e864e8c490/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘digitize’ ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (digitize)

Thêm vào masinhóm hiện có staffđể làm việc mà không cần sudovào R; mà bạn cần cũng trong một cài đặt mới

sudo usermod -a -G staff masi

Các thử nghiệm cài đặt

  1. Tôi làm theo hướng dẫn ở đây . Tôi bắt đầu Rtrong $HOME/Pictures/không sudovà sử dụng hình ảnh thử nghiệm của họ ở đây .

  2. Chọn bốn điểm trong các trục bằng chuột cal = digitize::ReadAndCal('Rintro-snail1.jpg')

nhập mô tả hình ảnh ở đây

  1. Làm data.points = digitize::DigitData(col = 'red')và chọn điểm thủ công là điểm dữ liệu của bạn

nhập mô tả hình ảnh ở đây

  1. Tôi đóng cửa sổ Plot bằng cách nhấp chuột thứ hai.

  2. Làm df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)và nhìndf

           x  y
    1  71.50 NA
    2  65.65 NA
    ...
    24 26.80 NA
    

    Đang làm head(df)

          x  y
    1 71.50 NA
    2 65.65 NA
    3 64.60 NA
    4 60.85 NA
    5 59.05 NA
    6 58.15 NA
    

Chi tiết cài đặt

  • Trong Rvà khôngsudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Lệnh ls /usr/lib/R/library/không liệt kê devtools. Tại sao?

    base       compiler   grid        methods   rpart    survival
    boot       datasets   KernSmooth  mgcv      spatial  tcltk
    class      foreign    lattice     nlme      splines  tools
    cluster    graphics   MASS        nnet      stats    translations
    codetools  grDevices  Matrix      parallel  stats4   utils
    
  • Chỉ huy ls -la /usr/local/lib/R/

    total 12
    drwxrwsr-x 3 root staff 4096 touko 19 22:25 .
    drwxr-xr-x 5 root root  4096 touko 19 22:25 ..
    drwxrwsr-x 2 root staff 4096 touko 19 22:25 site-library
    
  • Chỉ huy ls -la /usr/local/lib/

    total 20
    drwxr-xr-x  5 root root  4096 touko 19 22:25 .
    drwxr-xr-x 14 root root  4096 touko 19 22:13 ..
    drwxrwsr-x  4 root staff 4096 huhti 21 01:13 python2.7
    drwxrwsr-x  3 root staff 4096 huhti 21 01:08 python3.5
    drwxrwsr-x  3 root staff 4096 touko 19 22:25 R
    
  • Chỉ huy R_LIBS_USER="/usr/local/lib/R/site-library/" R

     R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
     Copyright (C) 2015 The R Foundation for Statistical Computing
     Platform: x86_64-pc-linux-gnu (64-bit)
     ...
    
  • library(devtools) được tải

Công cụ khác biệt

Lý do lỗi trước

  • Không có hệ thống sạch: các hệ thống được nâng cấp từ 14.04, 15.10, v.v.
  • Bối rối quyền / chủ sở hữu vì những điều trước đó.
  • Lỗi chính trong quá trình.
  • Không có bản sao lưu trong trường hợp thất bại.
  • ...
  • tài liệu còn thiếu

Hệ thống: Ubuntu 16.04 64 bit trong cài đặt sạch
Phần cứng: Dell PC 2013, Macbook Air 2013-mid, ...


Tôi không thể tái tạo điều này trên hệ thống Arch của mình. Cài đặt devtoolsqua sudo R, hãy để tôi chạy library(devtools)từ phiên R không sudo. Vui lòng thêm đầu ra của i) .Librarychạy từ Rphiên thông thường và ii) từ sudo Rvà iii) kiểm tra devtoolsthư mục con trong đường dẫn được cung cấp bởi các lệnh đó. Trên hệ thống của tôi, nó ở /usr/lib64/R/library/devtools/.
terdon

OK, có một devtoolsthư mục con trong /usr/lib/R/library?
terdon

Tôi đoán là cài đặt đã không thực sự thành công sau đó. Hãy thử lại và chú ý đến đầu ra. Bạn đã thực sự có thể chạy library(devtools)và tải thư viện thành công chưa?
terdon

OK, tôi nghĩ rằng tôi biết vấn đề là gì. Một điều nữa, bạn nhận được gì nếu bạn chạy .libPaths()từ R?
terdon

1
Argh, OK, và bạn có một tiểu thư devtools /usr/local/lib/R/site-librarykhông? Bạn có thể làm. Nếu vậy, hãy xem câu trả lời (mới) được cập nhật của tôi.
terdon

Câu trả lời:


11

httrnhập opensslgói cần theo yêu cầu hệ thống libssl-dev( sudo apt install libssl-dev)

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because openssl was not found. Try installing:
 * deb: libssl-dev (Debian, Ubuntu, etc)
...

Các curlgói cần theo yêu cầu hệ thống libcurl4-openssl-dev:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
...

Vì vậy, để cài đặt, bạn sẽ cần phải chạy:

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev

Sau đó bắt đầu một vỏ R với sudo Rvà:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')

Tôi chấp nhận câu trả lời này bởi vì nó là một khởi đầu tốt. Sau khi devtools, bạn cần install.packages('readbitmap'), xin vui lòng xem cơ thể cho phiên bản cuối cùng.
Léo Léopold Hertz

2

Theo nguyên tắc chung, bạn không chỉ thay đổi quyền của các thư mục hệ thống! Đó là những gì truy cập root là dành cho. Đặt các quyền trở lại cách bạn tìm thấy chúng và lần chạy tiếp theo sudo Rinstall.packagestừ vỏ R kết quả.

Bây giờ, lý do bạn không thể cài đặt là có ngay trong đầu ra mà bạn hiển thị:

ERROR: dependencies ‘httr’, ‘git2r’ are not available for package ‘devtools’

Rõ ràng, như được giải thích bởi rcs , trên Ubuntu, bạn cần cài đặt libssl-devlibcurl4-openssl-devđầu tiên.


Vấn đề tiếp theo là cài đặt R của người dùng root của bạn có /usr/local/lib/R/site-librarythư mục đầu tiên trong đầu ra .libPathsvà nó không nằm trong đường dẫn của người dùng thông thường của bạn. Vì đó là mục nhập đầu tiên cho root, nên đó là nơi thư viện của bạn đã được cài đặt:

 Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

Vì vậy, một giải pháp đơn giản là tạo một tệp có tên ~/.Rprofilevà thêm dòng này vào nó:

.libPaths("/usr/local/lib/R/site-library/")

Ngoài ra, hoặc ngoài ra, bạn có thể bao gồm một dòng như

   .libPaths("/home/masi/Rlibs")

Điều đó sẽ cho phép bạn cài đặt các thư viện vào thư mục /home/masi/Rlibs (chọn bất kỳ tên nào bạn muốn) trong tương lai và do đó tránh được sự cần thiết sudo R.


Ngoài ra, bạn có thể đặt biến môi trường R_LIBS_USERthành /usr/local/lib/R/site-library/( /home/masi/Rlibshoặc bất cứ nơi nào thư viện của bạn đang được cài đặt). Chỉ cần thêm dòng này vào ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/

@Masi bạn đã thử đề xuất của tôi ở trên? Bạn có thể kiểm tra xem đây có phải là sự cố không bằng cách chạy R_LIBS_USER="/usr/local/lib/R/site-library/" Rvà sau đó, trong R, chạy library(devtools).
terdon

Nếu bạn thực hiện .libPaths("/home/masi/Rlibs")sau .libPaths("/usr/local/lib/R/site-library/")đó sẽ thay thế cài đặt ban đầu. Nếu bạn muốn thêm một thư mục thư viện thì nên.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-
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.