我在 Red Hat Enterprise Linux 6 上使用 R 3.4.1。我有 3.0 版的软件包 asreml
安装在 /tools/bioinfo/app/R-3.4.1/lib64/R/library
下.
> library(asreml)
Loading required package: lattice
Checking for license <redacted>
> .libPaths()
[1] "/tools/bioinfo/app/R-3.4.1/lib64/R/library"
该软件包的第 4 版现已发布,但我们想将第 3 版与第 4 版的结果进行比较。为此,我们希望将第 4 版安装在我们的系统上,名称为
asreml4
.我已经下载了最新版本的 *tar.gz 文件,但如果我这样做了R CMD INSTALL asreml_4.1.0.93.tar.gz
它安装在
asreml
文件夹,覆盖旧版本。那不是我想要的。我也尝试将它安装在另一个地方,将文件夹重命名为
asreml4
,然后将该文件夹复制到 /tools/bioinfo/app/R-3.4.1/lib64/R/library
然后尝试加载它,但它加载了错误的版本:> library(asreml, lib.loc="/tools/bioinfo/app/R-3.4.1/lib64/R/library/asreml4")
> packageVersion("asreml")
[1] ‘3.0.1’
那么,我如何将它安装在
asreml4
中?文件夹的方式,我可以用 library(asreml4)
调用它?
最佳答案
1) 编辑说明 下载源代码,编辑描述文件以使用不同的名称,然后构建并安装它。
2) 独立库或者将新版本安装到单独的库中,然后使用其中之一来获取所需的版本:
library(asreml, lib = ...)
library(asreml)
2a) .libPaths 一个变体是使用
.libPaths(new)
要更改默认库路径,请发出library(asreml)
然后把它改回来。
2b) 开发模式 完成库切换的一种简单方法是使用
dev_mode()
不带参数(来自 devtools 包)。后第一dev_mode()
命令发出后,默认库变为 ~/R-dev 。此时使用普通 install.packages
安装新版本的 asrmel命令不指定 lib=
它将被安装到 ~/R-dev 中。使用 library
加载它不指定库将导致它首先查看 ~/R-dev 。然后测试一下,最后当你准备好切换回原始库和原始 asreml 问题时 dev_mode()
再次。 dev_mode()
操作默认库路径,以便您可以使用 .libPaths()
不带参数随时检查当前默认值是什么。library(devtools)
dev_mode() # ~/R-dev now default library
# ...
dev_mode() # restore usual default library
关于r - 如何以其他名称安装 R 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447227/