[英]R: How can I install a specific release by install_github()?
如果软件包的当前版本出现一些错误,用户可能更愿意安装特定版本(例如 1.0.1 版)。 可以使用什么样的R代码来实现这一目标?
以最新OhdsiRTools
R 软件包的发布为例:
https://github.com/OHDSI/OhdsiRTools/tree/v1.0.1
命令类似于:
install_github("OHDSI/OhdsiRTools", ref = 'v1.0.1')
上面的代码不正确。 它只适用于分支(例如master
或devA
)。 但是devtools
包具有引用版本的功能。
理想情况下,我会通过他们的标签来引用发布(但带有提交 ID 的解决方案也可以)。
额外奖励:什么代码可以安装“最新”版本。 (但认为这是一个额外的问题。问题是主要的问题)
您需要将发布的标签直接附加到存储库参数的名称上。 因此, username/repo@releasetag
将起作用。 仅当您需要引用 git 存储库的特定分支时才使用参数ref = "devA"
。
对于您的示例,关于OhdsiRTools v1.0.1 ,我们有
我们有:
devtools::install_github("OHDSI/OhdsiRTools@v1.0.1")
编辑
在玩弄了devtools
源之后,我注意到可以通过以下方式请求最新的源:
username/repo@*release
因此,您可以使用:
devtools::install_github("OHDSI/OhdsiRTools@*release")
结束编辑
已过时,请参阅编辑
不幸的是,要获得最新的发布标签,这项工作有点复杂,因为它涉及解析来自 GitHub API 的响应。 如果您确实需要标记版本,请注意以下几点……您必须从以下位置解析 JSON:
https://api.github.com/repos/<user>/<repo>/releases/latest
从以下位置提取"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."
}
以上摘自https://api.github.com/repos/OHDSI/OhdsiRTools/releases/latest
对于到达这里寻找如何从特定提交 SHA 进行安装的任何人,这很简单:
remotes::install_github("username/repository@commitSHA")
从 github 上的“提交”页面查找要安装的提交的 SHA:
在这种情况下,提交 SHA 是: 8bc79ec6dd57f46f753cc073a3a50e0921825260
,所以简单:
remotes::install_github("wilkelab/ggtext@8bc79ec6dd57f46f753cc073a3a50e0921825260")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.