我写技术帖有一种曲高和寡的感觉,上次写了一个花我四个小时才解决的问题,阅读量 190 哈哈哈,4小时欸,怎么也得值个千儿八百的吧~~~幸好我也就记录一下,不指着这个挣钱,不然三天饿九顿啊!
本文也是,只有你受过 github 安装 R 包网络问题的摧残,才能理解它的含金量啊!如果你理解了赶紧在评论区给我夸两句啊,造造势!!
如果还没学到这块儿,那要不拉到最后点个赞?凑点完读率也可以欸,给我增加点动力。
我们经常需要从 GitHub 安装一些优秀的 R 包,比如cellchat
、SeuratData
等。然而,由于 GitHub API 访问限制,经常无法安装。传统的解决办法是:
在 R 包对应的页面点击绿色 code 键,Download ZIP,将文件放在工作目录下,用下列代码安装:
devtools::install_local("idmap1-master.zip")
"idmap1-master.zip"是下载下来的包文件名,需要自行替换。
当需要大量下载时,每次都去手动操作就比较麻烦了。而且本地安装处理配套依赖包的能力太差了,换句话说,就是你还需要自行安装依赖包,虽然有个参数,但设置了也没啥用。
这就需要更有技术含量的操作--生成 GitHub 个人访问令牌,并在 R 中正确配置和使用,让你的 devtools::install_github()畅行无阻。
GitHub 个人访问令牌(Personal Access Token, PAT)是 GitHub 提供的一种身份验证方式,用于代替传统的用户名和密码。它可以让 R 语言工具如devtools
顺利访问 GitHub API,避免因访问频率过高导致的限制。
➡️打开 GitHub 官网,并登录你的账户。
➡️点击右上角头像,选择 Settings(设置)。
➡️在左侧菜单最后,选择 Developer settings(开发者设置)。
➡️在开发者设置页面,点击 Personal access tokens(个人访问令牌) → Tokens (classic)。
➡️点击 Generate new token (classic) 按钮,进入令牌生成页面。
Note(备注):输入令牌的用途说明,例如 "R package installation"。
Expiration(有效期):选择令牌的有效期(建议选较长时间,或根据需求选择)。
Scopes(权限范围):勾选read:packages 权限 ,用于读取公开仓库的包。
拉到最后,点击“generate token”,复制下来。
千万记得:生成令牌后,一定要复制保存,因为页面关闭后无法再次查看。
Sys.setenv(GITHUB_PAT = "xxxxxxx")
将 xxxxxxx 替换为你刚刚生成的令牌,然后使用代码安装:
devtools::install_github("jmzeng1314/idmap1")
这里的 jmzeng1314 是 R 包的开发者的用户名,idmap1 是包名。
注意:Sys.setenv 代码设置,在重启 Rstudio 窗口之后就会失效,也就是说你每次要安装之前,都需要先运行 Sys.setenv 来设置令牌。
好处:不用在每次重启 Rstudio 窗口之后自行运行 Sys.setenv...设置。
但是~新手谨慎操作!因为配置文件一旦搞错了,可能你要折腾很久。以.开头的文件都是配置文件,是不建议新手操作的。
在 R 中运行以下代码打开 .Renviron
文件:
file.edit("~/.Renviron")
➡️在文件中添加以下内容:
GITHUB_PAT=xxxxxx
将 xxxxxxx 替换为你刚刚生成的令牌,注意等号前后不能有空格。
➡️保存并关闭文件,重启 Rstudio。
这样,每次运行 R 时,令牌会自动加载,无需重复设置。
➡️检查是否配置成功
关闭在重新打开 Rstudio,运行:
Sys.getenv("GITHUB_PAT")
能看到自己的令牌就是成功了。
令牌等同于密码,不可轻易示人。所以你不要企图抢我的啊,不给!
一般不建议设置永久有效,万一被盗了咋整。当然你嫌麻烦,github 也没什么好盗的话,设置永久也可以。
给令牌的权限不要太多,够用就行。