当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R install.packages 从存储库或本地文件安装包


R语言 install.packages 位于 utils 包(package)。

说明

从 CRAN-like 存储库或本地文件下载并安装软件包。

用法

install.packages(pkgs, lib, repos = getOption("repos"),
                 contriburl = contrib.url(repos, type),
                 method, available = NULL, destdir = NULL,
                 dependencies = NA, type = getOption("pkgType"),
                 configure.args = getOption("configure.args"),
                 configure.vars = getOption("configure.vars"),
                 clean = FALSE, Ncpus = getOption("Ncpus", 1L),
                 verbose = getOption("verbose"),
                 libs_only = FALSE, INSTALL_opts, quiet = FALSE,
                 keep_outputs = FALSE, ...)

参数

pkgs

应从存储库下载其当前版本的包名称的字符向量。

如果 repos = NULL ,文件路径的字符向量,

在 Windows 上,

‘的文件路径。压缩' 包含包的二进制构建的文件。 (‘⁠http://⁠' 和 '⁠文件://⁠’ URL 也被接受,文件将从本地副本下载并安装。)源目录或文件路径或存档的 URL 可以用以下方式指定:type = "source",但有些软件包需要安装合适的工具(请参阅“详细信息”部分)。

在类似 Unix 系统上,

这些文件路径可以是源目录或存档或二进制包存档文件(由R CMD build --binary)。 (‘⁠http://⁠' 和 '⁠文件://⁠' URL 也被接受,文件将从本地副本下载并安装。)在 CRAN 版本上R对于 macOS,这些可以是‘.tgz' 包含二进制包档案的文件。 Tilde-expansion 将在文件路径上完成。

如果缺少此选项,则会在可能的情况下以交互式方式显示可用包的列表框R会议。

lib

给出安装包的库目录的字符向量。根据需要回收。如果缺少,则默认为 .libPaths() 的第一个元素。

repos

字符向量,要使用的存储库的基本 URL,例如 CRAN 镜像的 URL,例如 "https://cloud.r-project.org" 。有关支持的 URL 方案的更多详细信息,请参阅 url

可以是 NULL 从本地文件、目录或 URL 安装:如果长度为 1,这将通过 pkgs 的扩展名推断出来。

contriburl

存储库贡献部分的 URL。如果您的存储库镜像不完整,请使用此参数,例如,因为您仅镜像了“贡献’部分,或者只有二进制包。覆盖参数repos。不兼容type = "both".

method

下载方法参见download.file。如果提供非 NULL available,则不使用。

available

available.packages 返回的矩阵,列出存储库中可用的包,或当函数对 available.packages 进行内部调用时由 NULL 返回。与 type = "both" 不兼容。

destdir

存储下载的包的目录。如果是NULL(默认),将使用会话临时目录的子目录downloaded_packages(并且文件将在会话结束时被删除)。

dependencies

逻辑指示是否还安装这些软件包所依赖/链接/导入/建议的已卸载软件包(等等递归地)。如果 repos = NULL 则不使用。也可以是字符向量,c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances") 的子集。

仅当 lib 长度为 1(或缺失)时才受支持,因此在何处安装依赖包是明确的。如果不是这种情况,则会被忽略并发出警告。

默认值 NA 表示 c("Depends", "Imports", "LinkingTo")

TRUE 意味着使用 c("Depends", "Imports", "LinkingTo", "Suggests") 表示 pkgs 并使用 c("Depends", "Imports", "LinkingTo") 来添加依赖项:这将安装运行 pkgs 所需的所有软件包、它们的示例、测试和小插图(如果软件包作者正确指定了它们)。

在所有这些中,二进制包省略了"LinkingTo"

type

字符,指示要下载和安装的包的类型。除 Windows 和某些 macOS 版本外,将是 "source":请参阅“二进制包”部分。

configure.args

(仅用于源安装。)字符向量或命名列表。如果提供没有名称的字符向量,则元素将连接成单个字符串(用空格分隔)并用作--configure-args调用中的标志R CMD INSTALL。如果字符向量有名称,则假定这些名称用于标识值--configure-args对于单独的包。这允许用户指定整个软件包集合的设置,如果要安装其中任何一个软件包,将使用这些设置。 (因此,这些设置可以重复使用并充当默认设置。)

命名列表也可以用于达到相同的效果,并且允许每个包的多元素字符串连接到单个字符串,用作值--configure-args.

configure.vars

(仅用于源安装。)类似于configure.args为旗帜--configure-vars,用于设置环境变量configure跑步。

clean

一个逻辑值,指示是否添加 - 干净的标记为调用R CMD INSTALL。除了删除中间文件之外,有时还用于在软件包安装结束时执行其他操作。

Ncpus

用于并行安装多个源包的并行进程数。如果满足以下条件,则支持大于一的值make由指定的命令Sys.getenv("MAKE", "make")接受论点-k -j \var{Ncpus}.

verbose

一个逻辑指示是否应该给出一些“progress report”。

libs_only

逻辑值:应该--libs-only选项可用于仅安装额外的 sub-architectures 进行源安装? (也可以看看INSTALL_opts.) 这也可以在 Windows 上使用,仅安装二进制包中的 DLL,例如将 64 位 DLL 添加到 32 位安装中。

INSTALL_opts

要传递给 R CMD INSTALL 以进行源包安装的附加选项的可选字符向量。例如,c("--html", "--no-multiarch", "--no-test-load")

也可以是用作附加选项的字符向量的命名列表,名称为相应的包名称。

quiet

逻辑:如果为真,则减少输出量。如果有意调用,则不会将其传递给available.packages()

keep_outputs

逻辑:如果为 true,则保留在当前工作目录中安装源包的输出,输出文件的名称为包名称带有“。出去” 附加。或者,给出保存输出的目录的字符串。从本地文件安装时被忽略。

...

要传递给 download.fileavailable.packages 或 macOS 和 Windows 上的二进制安装函数的参数(接受参数 "lock" :请参阅“锁定”部分)。

细节

这是安装软件包的主要函数。它采用名称向量和目标库,从存储库下载软件包并安装它们。 (如果省略库,则默认为 .libPaths() 中的第一个目录,如果有多个目录,则会显示一条消息。)如果省略 lib 或长度为 1 并且不是(组)可写目录,则在交互式使用提供的代码创建个人库树(Sys.getenv("R_LIBS_USER") 的第一个元素)并安装在那里。

在 Windows 上检测可写目录是有问题的:请参阅“注意”部分。

对于从存储库安装,会尝试按照尊重软件包依赖关系的顺序安装软件包。这确实假设所有条目lib位于安装的默认库路径上(由环境变量设置R_LIBS)。

建议您在 install.packages 之前运行 update.packages,以确保任何已安装的依赖项均具有最新版本。

看不见的NULL

二进制包

本节仅适用于提供二进制包的平台:Windows 和适用于 macOS 的 CRAN 版本。

R软件包主要分发为资源包,但是二进制还支持软件包(已安装软件包的打包),并且是 Windows 上最常用的类型以及 CRAN 为 macOS 构建的类型。此函数可以通过从存储库或本地文件下载文件来安装任一类型。

type 的可能值(当前)为 "source""mac.binary""win.binary" :也可以选择支持的适当二进制类型作为 "binary"

对于来自存储库的二进制安装,该函数会检查同一存储库上源包的可用性,并报告源包是否有更高版本,或者可用但没有二进制版本。可以通过使用来抑制此检查

    options(install.packages.check.source = "no")

如果存在仅包含二进制文件的部分存储库,则应该如此。

另一种选择(也是当前的默认值)是"both",这意味着“如果可用且当前使用二进制文件,否则尝试源代码”。如果存在首选的源包,但可能包含需要编译的代码,则由 getOption("install.packages.compile.from.source") 控制。如果指定了contriburlavailabletype = "both" 将自动更改为"binary"

如果包不包含需要编译的 C/C++/Fortran 代码,则将包与 type = "source" 一起使用始终有效。否则,

在 Windows 上,

您需要安装 Rtools 集合,如“R for Windows 常见问题解答”中所述你必须有PATH根据 Rtools 的要求设置环境变量。

对于 32/64 位安装R在 Windows 上,一小部分带有编译代码的包需要INSTALL_opts = "--force-biarch"或者INSTALL_opts = "--merge-multiarch"用于源安装。 (从存储库或 tarball 安装时始终设置后者是安全的,尽管速度会慢一些。)

在 Windows 上安装软件包时,install.packages如果检测到该软件包已安装且当前正在使用,将中止安装。在某些情况下(例如,多个实例R同时运行并共享库)它不会检测到问题,但安装可能会失败,因为 Windows 锁定正在使用的文件。

在类似 Unix 系统上,

当包中包含需要编译的C/C++/Fortran代码时,需要安装合适的编译器和相关工具。在 macOS 上,您需要安装“Xcode 命令行工具”(请参阅“R 安装和管理”手册),如果软件包需要,还需要安装 Fortran 编译器,并将它们放在您的路径中。

锁定

有多种锁定选项:这些选项在源安装和二进制安装之间有所不同。

默认情况下,对于源安装,库目录是‘locked’,通过创建目录‘00锁’在其中。这有两个目的:它防止任何其他进程同时安装到该库中,并用于存储包的任何先前版本以在错误时恢复。选项提供了更细粒度的锁定--pkglock它为每个包创建一个单独的锁:这为并行安装提供了足够的自由度。 Per-package 锁定是安装单个软件包时的默认设置,以及安装多个软件包时的默认设置Ncpus > 1L。最后可以通过以下方式抑制锁定(以及错误恢复)--no-lock.

对于 macOS 二进制安装,默认情况下不进行锁定。将参数 lock 设置为 TRUE (默认为 getOption("install.lock", FALSE) 的值)将使用 per-directory 锁定,如源安装所述。对于 Windows 二进制安装,默认使用 per-directory 锁定( lock 默认为 getOption("install.lock", TRUE) 的值)。如果值为"pkglock" per-package 将使用锁定。

如果在 Windows 上使用libs_only = TRUE 使用包锁定并且安装失败,则包将恢复到之前的状态。

请注意,软件包安装可能会严重失败,以致于锁定目录未被删除:这会禁止任何进一步安装到库目录(或--pkglock,包的),直到手动删除锁定目录。

并行安装

在以下情况下尝试并行安装:pkgs长度大于一并且Ncpus > 1。它利用并行make, 所以make指定(默认make) 什么时候R建成后必须能够支撑使 -j \var{n}:GNU 制造,dmakepmake可以,但是Solarismake和更旧的FreeBSDmake不要:如果需要环境变量MAKE可以为当前会话设置选择合适的make.

install.packages需要能够计算所有的依赖关系pkgsavailable,包括如果其中一个元素pkgs间接依赖于另一个。这意味着如果您正在安装CRAN依赖于 Bioconductor 包的包,而 Bioconductor 包又依赖于CRAN包,available需要涵盖两者CRAN和生物导体包。

超时

每次调用的经过时间限制R CMD INSTALL(所以对于源安装)可以设置通过环境变量_R_INSTALL_PACKAGES_ELAPSED_TIMEOUT_:以秒为单位(或以分钟或小时为单位,带有可选后缀‘⁠m⁠' 或者 '⁠h⁠', 后缀 '⁠s⁠' 允许默认秒数)0意思是没有限制。

对于非并行安装,这是实现的通过 timeout的论点system2:用于并行安装通过操作系统的timeout命令。 (测试的是来自GNUcoreutils,通常在 Linux 上可用,但在其他 Unix 类似系统上不可用。如果没有此类命令可用,则忽略超时请求并发出警告。在 Windows 上,需要指定一个合适的timeout通过环境变量执行命令R_TIMEOUT, 因为 'c:/Windows/system32/timeout.exe’不是。)对于并行安装,‘⁠错误124⁠’ 消息来自make表明发生超时。

安装期间超时可能会留下锁定目录并且无法恢复以前的版本。

源安装的版本要求

如果您没有运行 up-to-date 版本R您可能会看到类似这样的消息

   package 'RODBC' is not available (for R version 3.5.3)

一种可能性是该软件包在任何选定的存储库中都不可用;另一个是可用,但仅适用于当前或最新版本R。为了CRAN包查看包的 CRAN 页面(例如,https://cran.r-project.org/package=RODBC)。如果在‘⁠取决于⁠' 字段依赖于更高版本的R你需要查看‘⁠旧来源⁠’部分,然后选择与您的年龄相当的版本的 URLR。然后您可以提供该 URL 作为第一个参数install.packages():您可能需要首先手动安装其依赖项。

对于其他存储库,使用available.packages(filters = "OS_type")[pkgname, ]将显示该软件包是否可用于任何R版本(针对您的操作系统)。

注意

在 Unix 类系统上:

一些二进制发行版RINSTALL在一个单独的捆绑包中,例如一个R-devel转速。install.packages如果调用的话会给出错误type = "source"在这样一个系统上。

一些二进制 Linux 发行版R可以安装在没有安装软件包所需工具的机器上:可能的补救措施是完整安装R它应该将所有这些工具作为依赖项引入。

在 Windows 上:

install.packages尝试检测您是否对指定的库目录具有写权限,但 Windows 报告不可靠。如果只有一个库目录(默认),R尝试通过创建测试目录来找出答案,但即使这也不一定是全部:您可能有权在库目录中写入,但缺乏写入二进制文件的权限(例如“.dll’文件)那里。请参阅“R for Windows 常见问题解答”了解解决方法。

例子

## Not run: 
## A Linux example for Fedora's layout of udunits2 headers.
install.packages(c("ncdf4", "RNetCDF"),
  configure.args = c(RNetCDF = "--with-netcdf-include=/usr/include/udunits2"))

## End(Not run)

也可以看看

update.packagesavailable.packagesdownload.packagesinstalled.packagescontrib.url

请参阅download.file 了解如何处理代理和其他选项来监视文件传输。

untar 用于手动解压源包 tarball。

INSTALL , REMOVE , remove.packages , library , .packages , read.dcf

有关如何设置存储库的“R 安装和管理”手册。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Install Packages from Repositories or Local Files。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。