Skip to main content
 首页 » 编程设计

r之使用 devtools::install_git 从 Gitlab 安装非公共(public)包

2024年09月07日22itcoder

我的机构最近为我们安装了 GitLab。我已经弄清楚如何使用 devtools::install_git 从 GitLab 服务器安装 R 包只要项目是公开的,它就可以工作。

#* When modeltable project has Public status 
devtools::install_git('https://mini-me2.lerner.ccf.org/nutterb/modeltable.git') 

但是,如果我有一个列为“内部”或“私有(private)”的包,我无法在没有某种形式的身份验证的情况下安装该包。到目前为止,我还没有弄清楚如何通过 URL 进行身份验证。有人有从 GitLab 下载软件包的经验吗?
#* After changing the 'modeltable' project to Private status 
devtools::install_git('https://mini-me2.lerner.ccf.org/nutterb/modeltable.git') 
Preparing installation of modeltable using the Git-URL: https://mini-me2.lerner.ccf.org/nutterb/modeltable.git 
'/usr/bin/git'clone --depth 1 --no-hardlinks https://mini-me2.lerner.ccf.org/nutterb/modeltable.git /tmp/Rtmp5aj1cU/file24493dc03a32 
Error: There seems to be a problem retrieving this Git-URL. 

请您参考如下方法:

我强烈建议您使用 SSH 路由,以下内容适用于此。我发现过渡到 SSH 很容易,尤其是使用 R 和 RStudio。我在下面的示例中使用 Windows。我在实践中使用的代码编辑全部大写。

creds = git2r::cred_ssh_key("C:\\Users\\MYSELF\\.ssh\\id_rsa.pub", 
                            "C:\\Users\\MYSELF\\.ssh\\id_rsa") 
devtools::install_git("git@gitlab.WORKDOMAIN.com:GITLABGROUP/PACKAGE.git", 
                      credentials = creds) 

两个快速的附加评论:
  • git2r 是使用 devtools 导入的,您不需要单独安装它。
  • 此外,我认为这不需要提及,但脚本中的明文密码是一个非常糟糕的主意。