从github存储库安装开发版R包时如何指定lib目录

时间:2014-07-09 05:38:25

标签: r git rstudio devtools

在Ubuntu中,我通过在/usr/lib/R/site-library中指定lib选项来安装目录install.packages()中的所有R包。

但是当我尝试使用install_github()安装R软件包的开发版本时,它总是安装在系统用户的本地存储库中。

.libPaths()有4个目录,包括本地存储库。所以,我有2个问题,

  1. 如果我从.libPaths()删除本地存储库,它会安装在任何其他3个存储库中吗?

  2. 有没有办法在install_github()中指定安装库路径?

  3. 我正在使用Ubuntu 12.04 64bitR 3.0.1

    ---------------------- UPDATE ------------------------ --------

    1. 无法从.libPaths()

    2. 中删除本地存储库
    3. 如果我尝试使用 RStudio 中的install_github()进行安装,则会安装在local repository中,因为未指定lib

    4. 如果我尝试使用install_github()作为非root用户进行安装,则会安装在local repository中,因为未指定lib。< / p>

    5. 如果我尝试使用install_github()作为 root用户进行安装,则会安装在/usr/local/lib/R/site-library中,因为未指定lib

    6. 是否要指定installation lib

3 个答案:

答案 0 :(得分:41)

要在devtools中添加指定的库路径,我们需要使用with_libpaths()

with_libpaths()的参数为with_libpaths(new, code)

以下是使用with_libpaths()

的示例
library(devtools)
with_libpaths(new = "/usr/lib/R/site-library/", install_github('rCharts', 'ramnathv'))

礼貌:哈德利,here:)

with_libpaths()以外,devtools::with_something()

还有更多选项
in_dir: working directory
with_collate: collation order
with_envvar: environmental variables
with_libpaths: library paths, replacing current libpaths
with_lib: library paths, prepending to current libpaths
with_locale: any locale setting
with_options: options
with_path: PATH environment variable
with_par: graphics parameters

更多解释here

答案 1 :(得分:11)

install_github会将...参数传递给devtools::installdevtools::installargs个参数。

  

ARGS
  要传递给R CMD安装的其他命令行参数的可选字符向量。这默认为选项&#34; devtools.install.args&#34;的值。

R CMD install采用库参数

 Options:
  -h, --help            print short help message and exit
  -v, --version         print INSTALL version info and exit
  -c, --clean           remove files created during installation
      --preclean        remove files created during a previous run
  -d, --debug           turn on debugging messages
                        and build a debug DLL
  -l, --library=LIB     install packages to library tree LIB

所以以下内容应该有效:

devtools::install_github("repo", args = c('--library="./mypath/gdfgdg/"'))

然而它似乎没有取代对R CMD install

的调用
"C:/PROGRA~1/R/R-31~1.0/bin/x64/R" --vanilla CMD INSTALL  \
  "C:\Users\john\AppData\Local\Temp\RtmpucrXMD/RSelenium_1.3.2.tar.gz"  \
  --library="C:/Users/john/Documents/R/win-library/3.1" --install-tests  \
  --library="C:/Users/john/Desktop/"

答案 2 :(得分:2)

这是一种解决方法,但我找到了使用命令行版本R的方法。

从Ubuntu开始:

sudo -i R

技巧(我发现)是使用-i选项

然后从R:

.libPaths()

我的本​​地R目录没有出现;默认目录是我想要的目录。

然后,我install.packages()install_github()而不受惩罚。

希望这有帮助,

伊恩