如何安装R的devtools和数字化?


8

我需要devtools,因为我需要功能install_github来在此处安装数字化 的非CRAN软件包。我安装了R

sudo apt-get install r-cran-robustbase

正如terdon的回答所建议的那样,我没有立即安装R的软件包,但是我可以更正权限:

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

我认为这是默认设置。然后,我必须按照rcs的答案建议进行操作,以成功安装devtoolstpoisot/digitize但只能使用

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')

最后一条命令的输出可以是

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

这样做install_github('tpoisot/digitize', force = TRUE),但你可能会得到

...
'/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)

如果没有,我找不到安装数字化的方法sudo。这样做sudo R,重复相同的操作,您会得到

...
'/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)

添加masi到现有的组staff来工作,而sudoR; 您还需要在全新安装中

sudo usermod -a -G staff masi

安装测试

  1. 我在这里按照指南进行操作。我从没有开始,R这里使用他们的测试图像。$HOME/Pictures/sudo

  2. 用鼠标在轴上选择四个点 cal = digitize::ReadAndCal('Rintro-snail1.jpg')

在此处输入图片说明

  1. 这样做data.points = digitize::DigitData(col = 'red')并手动选择哪些是你的数据点分

在此处输入图片说明

  1. 我通过双击来关闭“绘图”窗口。

  2. df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)和看df

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

    在做 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
    

安装细节

  • R与无sudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • ls /usr/lib/R/library/没有列出的命令devtools。为什么?

    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
    
  • 命令 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
    
  • 命令 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
    
  • 命令 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) 被加载

差动工具

先前错误的原因

  • 没有干净的系统:从14.04、15.10等升级的系统。
  • 由于先前的原因而陷入混乱的权限/所有者。
  • 在过程中出现自己的错误。
  • 发生故障时不备份。
  • ...
  • 缺少文件

系统:全新安装的Ubuntu 16.04 64位
硬件:Dell PC 2013,Macbook Air 2013-mid,...


我无法在Arch系统上重现此内容。devtools通过安装sudo R,让我library(devtools)从非sudo R会话运行。请添加以下各项的输出:i).Library从正常R会话运行,ii)从常规会话运行,sudo R以及iii)devtools在这些命令提供的路径中检查子目录。在我的系统上,它位于/usr/lib64/R/library/devtools/
terdon

好,devtools/usr/lib/R/library吗?
terdon

我的猜测是安装实际上并没有成功。再试一次,并密切注意输出。您真的能够运行library(devtools)并成功加载该库吗?
terdon

好的,我想我知道问题出在哪里。还有一件事,如果.libPaths()从R 运行,会得到什么?
terdon

1
好的,好的,您是否有devtools子目录/usr/local/lib/R/site-library?你可能会的。如果是这样,请参阅我的(最新)更新的答案。
terdon

Answers:


11

httr进口openssl这就需要如系统需求包libssl-devsudo apt install libssl-dev

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

curl软件包需要作为系统要求libcurl4-openssl-dev

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

因此,要安装,您将需要运行:

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

然后使用sudo R和启动R Shell :

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

我接受这个答案,因为它是一个很好的起点。之后devtools,您需要install.packages('readbitmap'),请参阅正文以获取最终版本。
莱奥波德·赫兹(LéoLéopoldHertz)2016年

2

通常,您不只是更改系统目录的权限!这就是root访问的目的。将权限放回找到它们的方式,并在下次运行时sudo Rinstall.packages从生成的root R shell中放回。

现在,您无法安装的原因就在显示的输出中:

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

显然,由RCS解释,在Ubuntu上,您需要安装libssl-devlibcurl4-openssl-dev第一。


下一个问题是您的根用户的R安装/usr/local/lib/R/site-library在其输出的第一个目录中具有.libPaths,而不在常规用户的路径中。因为它是root的第一个条目,所以库的安装位置是:

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

因此,一个简单的解决方案是创建一个名为的文件~/.Rprofile,并将以下行添加到其中:

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

另外,您也可以加入类似

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

这样一来,您以后就可以将库安装到目录中/home/masi/Rlibs (选择所需的名称),从而避免使用sudo R


或者,您可以将环境变量设置R_LIBS_USER/usr/local/lib/R/site-library//home/masi/Rlibs或在安装库的其他任何地方)。只需将此行添加到您的~/.profile

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

@Masi您是否尝试过上面的建议?您可以通过运行R_LIBS_USER="/usr/local/lib/R/site-library/" R,然后在R中运行来测试这是问题所在library(devtools)
terdon

如果.libPaths("/home/masi/Rlibs")之后执行.libPaths("/usr/local/lib/R/site-library/"),将替换原始设置。如果要添加库目录,则应为.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.