Windows环境下能否重命名安装同名R包?含loggr包测试场景
在Windows系统中同时安装两个同名GitHub R包的方案
当然可以!你遇到的这种同名包测试场景其实挺常见的,不用打乱现有库位置设置也能轻松搞定,这里给你两个实用的方案:
方案一:安装到独立临时目录,加载时指定路径
这个方法不用修改包本身,适合临时测试,用完就能清理,完全不会影响全局库。
步骤如下:
- 先创建两个独立的临时目录,分别用来存放两个不同版本的
loggr包 - 使用
install_github的lib参数,把每个包安装到对应的目录 - 测试时通过
library的lib.loc参数指定加载对应目录的包
具体代码示例:
# 创建两个临时目录(如果不存在的话) dir.create("loggr_erickramer", showWarnings = FALSE) dir.create("loggr_smbache", showWarnings = FALSE) # 分别安装两个包到对应目录 devtools::install_github("erickramer/loggr", lib = "./loggr_erickramer") devtools::install_github("smbache/loggr", lib = "./loggr_smbache") # 测试第一个包 library(loggr, lib.loc = "./loggr_erickramer") # 这里可以执行你的测试操作 # 测试完成后卸载当前包,避免冲突 detach("package:loggr", unload = TRUE) # 测试第二个包 library(loggr, lib.loc = "./loggr_smbache") # 进行第二个包的测试 # 测试完成后卸载 detach("package:loggr", unload = TRUE)
测试结束后,直接删除这两个临时目录就能清理干净,不会留下任何影响全局R环境的痕迹。
方案二:修改包名后安装到全局库
如果你需要长期保留这两个包,方便随时切换测试,可以修改包的名称后安装到全局库,这样它们就能共存而不冲突。
步骤如下:
- 先把两个包的源码下载到本地
- 分别修改每个包源码里的
DESCRIPTION文件,把Package:字段改成不同的名称(比如loggr_erick和loggr_smb) - 使用
install_local安装修改后的源码包
具体代码示例:
# 下载第一个包的源码到当前目录 devtools::download_github("erickramer/loggr", destdir = "./") # 解压下载的zip包后,找到里面的DESCRIPTION文件,把Package字段改成loggr_erick # 然后安装修改后的包 devtools::install_local("./loggr-master", force = TRUE) # 下载第二个包的源码 devtools::download_github("smbache/loggr", destdir = "./") # 同样修改DESCRIPTION里的Package字段为loggr_smb # 安装修改后的包 devtools::install_local("./loggr-master", force = TRUE) # 之后就可以直接加载不同名称的包了 library(loggr_erick) library(loggr_smb)
这个方法的好处是不用每次指定路径,但要注意:如果包内有硬编码引用原包名的情况,可能会出现小问题,但大部分GitHub上的开源包不会有这种情况,测试场景下基本可以正常使用。
内容的提问来源于stack exchange,提问作者JeanVuda
相关产品推荐
相关产品推荐

