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 |
应从存储库下载其当前版本的包名称的字符向量。 如果
如果缺少此选项,则会在可能的情况下以交互式方式显示可用包的列表框R会议。 |
lib |
给出安装包的库目录的字符向量。根据需要回收。如果缺少,则默认为 |
repos |
字符向量,要使用的存储库的基本 URL,例如 CRAN 镜像的 URL,例如 可以是 |
contriburl |
存储库贡献部分的 URL。如果您的存储库镜像不完整,请使用此参数,例如,因为您仅镜像了“贡献’部分,或者只有二进制包。覆盖参数 |
method |
下载方法参见 |
available |
由 |
destdir |
存储下载的包的目录。如果是 |
dependencies |
逻辑指示是否还安装这些软件包所依赖/链接/导入/建议的已卸载软件包(等等递归地)。如果 仅当 默认值
在所有这些中,二进制包省略了 |
type |
字符,指示要下载和安装的包的类型。除 Windows 和某些 macOS 版本外,将是 |
configure.args |
(仅用于源安装。)字符向量或命名列表。如果提供没有名称的字符向量,则元素将连接成单个字符串(用空格分隔)并用作--configure-args调用中的标志 命名列表也可以用于达到相同的效果,并且允许每个包的多元素字符串连接到单个字符串,用作值--configure-args. |
configure.vars |
(仅用于源安装。)类似于 |
clean |
一个逻辑值,指示是否添加 - 干净的标记为调用 |
Ncpus |
用于并行安装多个源包的并行进程数。如果满足以下条件,则支持大于一的值 |
verbose |
一个逻辑指示是否应该给出一些“progress report”。 |
libs_only |
逻辑值:应该--libs-only选项可用于仅安装额外的 sub-architectures 进行源安装? (也可以看看 |
INSTALL_opts |
要传递给 也可以是用作附加选项的字符向量的命名列表,名称为相应的包名称。 |
quiet |
逻辑:如果为真,则减少输出量。如果有意调用,则不会将其传递给 |
keep_outputs |
逻辑:如果为 true,则保留在当前工作目录中安装源包的输出,输出文件的名称为包名称带有“。出去” 附加。或者,给出保存输出的目录的字符串。从本地文件安装时被忽略。 |
... |
要传递给 |
细节
这是安装软件包的主要函数。它采用名称向量和目标库,从存储库下载软件包并安装它们。 (如果省略库,则默认为 .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")
控制。如果指定了contriburl
或available
,type = "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 制造,dmake
和pmake
可以,但是Solarismake
和更旧的FreeBSDmake
不要:如果需要环境变量MAKE可以为当前会话设置选择合适的make
.
install.packages
需要能够计算所有的依赖关系pkgs
从available
,包括如果其中一个元素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 类系统上:
-
一些二进制发行版R有
INSTALL
在一个单独的捆绑包中,例如一个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.packages
、available.packages
、download.packages
、installed.packages
、contrib.url
。
请参阅download.file
了解如何处理代理和其他选项来监视文件传输。
untar
用于手动解压源包 tarball。
INSTALL
, REMOVE
, remove.packages
, library
, .packages
, read.dcf
有关如何设置存储库的“R 安装和管理”手册。
相关用法
- R installed.packages 查找已安装的软件包
- R isS3method “method”是 S3 方法的名称吗?
- R isS3stdGeneric 检查函数是否充当 S3 通用函数
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R getFromNamespace 用于开发命名空间的实用函数
- R demo R 函数演示
- R mirrorAdmin 管理存储库镜像
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Install Packages from Repositories or Local Files。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。