如何解决R开发包添加Bitbucket私有依赖时的授权错误?
解决R包依赖私有Bitbucket包的安装权限问题
方法1:手动前置安装私有依赖包
先单独安装依赖的privatePackage,确保授权验证通过,再安装主包myNewPackage:
# 先安装私有依赖包 install_bitbucket(repo = "my_company_username/privatePackage", auth_user = my_user, password = my_pwd) # 再安装主包(关闭自动依赖安装,避免重复触发权限问题) install_bitbucket(repo = "my_company_username/myNewPackage@dev_branch", auth_user = my_user, password = my_pwd, dependencies = FALSE)
方法2:通过环境变量传递认证信息
install_bitbucket在拉取主包依赖时,不会自动传递主包安装命令里的auth_user和password,可以通过设置环境变量让devtools自动使用认证信息访问私有仓库:
# 设置Bitbucket认证环境变量 Sys.setenv(BITBUCKET_USER = my_user, BITBUCKET_PASSWORD = my_pwd) # 正常安装主包,自动处理依赖 install_bitbucket(repo = "my_company_username/myNewPackage@dev_branch", auth_user = my_user, password = my_pwd, dependencies = TRUE)
也可以用Bitbucket个人访问令牌(PAT)替代账号密码,更安全:
Sys.setenv(BITBUCKET_PAT = "你的Bitbucket个人访问令牌") install_bitbucket(repo = "my_company_username/myNewPackage@dev_branch", dependencies = TRUE)
方法3:在Remotes字段中嵌入认证信息(不推荐硬编码)
如果允许在DESCRIPTION中临时嵌入认证信息,可以修改Remotes字段:
Remotes: bitbucket::my_company_username/privatePackage?auth_token=你的Bitbucket_PAT Imports: bigrquery, ... privatePackage
之后直接执行原安装命令即可,但注意不要把带令牌的DESCRIPTION提交到代码仓库。
内容的提问来源于stack exchange,提问作者GNicoletti
相关产品推荐
相关产品推荐

