R:如何通过install_github()安装特定版本?

use*_*rJT 13 r devtools

如果包的当前版本出现一些错误,则用户可能更愿意安装特定版本(例如版本1.0.1).可以用什么样的R代码来实现呢?

举例来说,发布最新的OhdsiRToolsR包:

https://github.com/OHDSI/OhdsiRTools/tree/v1.0.1

命令如下:

install_github("OHDSI/OhdsiRTools", ref = 'v1.0.1')
Run Code Online (Sandbox Code Playgroud)

上面的代码不正确.它仅适用于分支(例如,masterdevA).但该devtools软件包具有引用版本的功能.

理想情况下,我会通过标签引用发布(但提交ID的解决方案也可以).

EXTRA BONUS:什么代码可以安装"最新"版本.(但认为这是一个奖金问题.关于主要问题的问题)

use*_*745 19

对于到达这里寻找如何从特定提交 SHA 进行安装的任何人,这很简单:

remotes::install_github("username/repository@commitSHA")
Run Code Online (Sandbox Code Playgroud)

例子

从github 上的“提交”页面查找要安装的提交的 SHA :

在此处输入图片说明

在这种情况下,提交 SHA 是: 8bc79ec6dd57f46f753cc073a3a50e0921825260,所以很简单:

remotes::install_github("wilkelab/ggtext@8bc79ec6dd57f46f753cc073a3a50e0921825260")
Run Code Online (Sandbox Code Playgroud)


coa*_*ess 14

您需要将版本的标记直接附加到存储库参数的名称.所以,username/repo@releasetag会工作.仅ref = "devA"在需要引用git存储库的特定分支时才使用该参数.

就你的例子而言,关于OhdsiRTools v1.0.1,我们有

我们有:

devtools::install_github("OHDSI/OhdsiRTools@v1.0.1")
Run Code Online (Sandbox Code Playgroud)

编辑

在使用devtools源代码后,我注意到可以请求最新的源代码:

username/repo@*release
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用:

devtools::install_github("OHDSI/OhdsiRTools@*release")
Run Code Online (Sandbox Code Playgroud)

结束编辑

过时,请参阅编辑

不幸的是,要获得最新的发布标记,其工作有点复杂,因为它涉及解析来自GitHub API的响应.如果你真的需要标记版本,这里有一些注释......你必须解析JSON:

https://api.github.com/repos/<user>/<repo>/releases/latest
Run Code Online (Sandbox Code Playgroud)

无论是使用RJSONIO,jsonlite,rjson

从中提取"tag_name":

{
  "url": "https://api.github.com/repos/OHDSI/OhdsiRTools/releases/2144150",
  "assets_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/releases/2144150/assets",
  "upload_url": "https://uploads.github.com/repos/OHDSI/OhdsiRTools/releases/2144150/assets{?name,label}",
  "html_url": "https://github.com/OHDSI/OhdsiRTools/releases/tag/v1.0.1",
  "id": 2144150,
  "tag_name": "v1.0.1",
  "target_commitish": "master",
  "name": "Minor bug fix",
  "draft": false,
  "author": {
    "login": "schuemie",
    "id": 6713328,
    "avatar_url": "https://avatars.githubusercontent.com/u/6713328?v=3",
    "gravatar_id": "",
    "url": "https://api.github.com/users/schuemie",
    "html_url": "https://github.com/schuemie",
    "followers_url": "https://api.github.com/users/schuemie/followers",
    "following_url": "https://api.github.com/users/schuemie/following{/other_user}",
    "gists_url": "https://api.github.com/users/schuemie/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/schuemie/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/schuemie/subscriptions",
    "organizations_url": "https://api.github.com/users/schuemie/orgs",
    "repos_url": "https://api.github.com/users/schuemie/repos",
    "events_url": "https://api.github.com/users/schuemie/events{/privacy}",
    "received_events_url": "https://api.github.com/users/schuemie/received_events",
    "type": "User",
    "site_admin": false
  },
  "prerelease": false,
  "created_at": "2015-11-18T00:55:28Z",
  "published_at": "2015-11-18T06:35:57Z",
  "assets": [

  ],
  "tarball_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/tarball/v1.0.1",
  "zipball_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/zipball/v1.0.1",
  "body": "Fixed bug in `convertArgsToList ` function."
}
Run Code Online (Sandbox Code Playgroud)

以上内容摘自https://api.github.com/repos/OHDSI/OhdsiRTools/releases/latest