缓解新手 R Packages 安装焦虑

前言

  对于一个刚学习生信和使用R的同学来说,安装 R Packages 可能算是一个小困难,因为光看 Packages 的名字,无法区分其来源是 CRAN、Github、Bioconductor、git repositories 或者 URL 等
  而不同来源的 R Packages,使用的命令又有所不同,比如从CRAN 上安装,使用install.packages("packageName")、安装Github上的Packages,可以使用 devtools::install_github("hadley/devtools"),详见从 Github 安装 R packages 不完全指南、而安装 Bioconductor 的工具又要使用 BiocManager::install(DESeq2)、等等…
   大概19年的时候,有个大佬发布了一个工具:pak,整合了几种不同来源工具的下载安装方式,包括从 CRAN、Bioconductor、GitHub、URL、git 存储库、本地文件和目录安装R包。
  这个工具几天前还在更新维护,这里简单介绍一下使用方式,希望可以一定程度上缓解安装 R Packages 的焦虑😐

安装 pak

工具作者发布在了CRAN上,所以直接可以:

install.packages("pak")
# 或者 从github安装二进制版本,需要良好的网络 
install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))

安装、更新 CRAN 或 Bioconductor 的工具

pak 会自动设置与当前 R 版本对应的 CRAN 仓库和 Bioconductor 仓库:

pak::pkg_install("tibble")

log:

#> ✔ Loading metadata database ... done
#>
#> → Will install 11 packages.
#> → Will download 11 CRAN packages (4.52 MB).
#> + cli         3.6.3 [bld][cmp][dl] (569.77 kB)
...
#>
#> ℹ Getting 11 pkgs (4.52 MB)
#> ✔ Got pkgconfig 2.0.3 (source) (6.08 kB)
#> ✔ Got magrittr 2.0.3 (source) (267.07 kB)
...
#> ℹ Building tibble 3.2.1
#> ✔ Built tibble 3.2.1 (3s)
#> ✔ Installed tibble 3.2.1  (1.2s)
#> ✔ 1 pkg + 10 deps: added 11, dld 11 (4.52 MB) [50.6s]
Reinstall

直接在R package 名字后面添加 ?reinstall

pak::pkg_install("tibble?reinstall")

log:

#>
#> → Will install 1 package.
#> → The package (724.32 kB) is cached.
#> + tibble   3.1.7
#> ℹ No downloads are needed, 1 pkg (724.32 kB) is cached
#> ✔ Installed tibble 3.1.7  (42ms)
#> ✔ 1 pkg + 12 deps: kept 11, added 1 [343ms]
升级更新 R Rackages

如果已经安装过,会自动检查并更新:

pak::pkg_install("tibble")
# 同时更新所有依赖
pak::pkg_install("tibble", upgrade = TRUE)

log:

#>
#> → Will update 1 package.
#> → The package (724.32 kB) is cached.
#> + tibble 3.1.7 → 3.1.8
#> ℹ No downloads are needed, 1 pkg (724.32 kB) is cached
#> ✔ Installed tibble 3.1.8  (36ms)
#> ✔ 1 pkg + 10 deps: kept 10, upd 1 [368ms]

从 GitHub 安装

使用user/repo 的形式。你可以指定一个分支或标签:user/repo@branch 或 user/repo@tag:

pak::pkg_install("tidyverse/tibble")

log:

#>
#> → Will update 1 package.
#> → The package (0 B) is cached.
#> + tibble 3.2.1 → 3.2.1.9027 [bld][cmp] (GitHub: fcb2461)
#>
#> ℹ No downloads are needed, 1 pkg is cached
#> ✔ Got tibble 3.2.1.9027 (source) (5.25 MB)
#> ℹ Packaging tibble 3.2.1.9027
#> ✔ Packaged tibble 3.2.1.9027 (1.3s)
#> ℹ Building tibble 3.2.1.9027
#> ✔ Built tibble 3.2.1.9027 (2.8s)
#> ✔ Installed tibble 3.2.1.9027 (github::tidyverse/tibble@fcb2461) (1s)
#> ✔ 1 pkg + 10 deps: kept 10, upd 1, dld 1 (NA B) [8.6s]

从 URL 安装

URL 可能指向一个由 R CMD build 创建的 R 包文件,或者一个包含包目录树的 .tar.gz 或 .zip 压缩包:

pak::pkg_install(
  "url::https://cran.r-project.org/src/contrib/Archive/tibble/tibble_3.1.7.tar.gz"
)

log:

#>
#> → Will install 1 package.
#> → Will update 1 package.
#> → All 2 packages (38.65 kB) are cached.
#> + ellipsis              0.3.2
#> + tibble   3.1.8.9002 → 3.1.7 👷🏻‍♀️🔧
#> ℹ No downloads are needed, 2 pkgs (38.65 kB) are cached
#> ✔ Installed ellipsis 0.3.2  (18ms)
#> ℹ Building tibble 3.1.7
#> ✔ Built tibble 3.1.7 (2.5s)
#> ✔ Installed tibble 3.1.7  (31ms)
#> ✔ 1 pkg + 11 deps: kept 10, upd 1, added 1 [3.3s]

安装本地工具及其依赖项

使用:

pak::local_install("cli")

log:

#>
#> → Will update 1 package.
#> → The package (0 B) is cached.
#> + cli 3.6.3 → 3.6.3 [bld][cmp]
#>
#> ℹ No downloads are needed, 1 pkg is cached
#> ✔ Got cli 3.6.3 (source) (568.16 kB)
#> ℹ Packaging cli 3.6.3
#> ✔ Packaged cli 3.6.3 (967ms)
#> ℹ Building cli 3.6.3
#> ✔ Built cli 3.6.3 (7.8s)
#> ✔ Installed cli 3.6.3 (local) (34ms)
#> ✔ 1 pkg: upd 1, dld 1 (568.16 kB) [9.6s]

查找、解释依赖

查找依赖:

pak::pkg_deps_tree("tibble")

log:

#> tibble 3.2.1 [new][bld][cmp]
#> ├─fansi 1.0.6 [new][bld][cmp]
#> ├─lifecycle 1.0.4 [new][bld]
#> │ ├─cli 3.6.3 [new][bld][cmp]
#> │ ├─glue 1.7.0 [new][bld][cmp]
#> │ └─rlang 1.1.4 [new][bld][cmp]
#> ├─magrittr 2.0.3 [new][bld][cmp]
#> ├─pillar 1.9.0 [new][bld]
#> │ ├─cli
#> │ ├─fansi
#> │ ├─glue
#> │ ├─lifecycle
#> │ ├─rlang
#> │ ├─utf8 1.2.4 [new][bld][cmp]
#> │ └─vctrs 0.6.5 [new][bld][cmp]
#> │   ├─cli
#> │   ├─glue
#> │   ├─lifecycle
#> │   └─rlang
#> ├─pkgconfig 2.0.3 [new][bld]
#> ├─rlang
#> └─vctrs
#>
#> Key:  [new] new | [bld] build | [cmp] compile

解释依赖:

pak::pkg_deps_explain("tibble", "rlang")

log:

#> tibble -> lifecycle -> rlang
#> tibble -> pillar -> lifecycle -> rlang
#> tibble -> pillar -> rlang
#> tibble -> pillar -> vctrs -> lifecycle -> rlang
#> tibble -> pillar -> vctrs -> rlang
#> tibble -> rlang
#> tibble -> vctrs -> lifecycle -> rlang
#> tibble -> vctrs -> rlang

就是一个依赖一个又依赖另一个…

pak 官方文档:

pak

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值