在我的工作场所,我们正在安装不同版本的R语言库。所需的空间很快就会增加。我应该怎么做来尽量减小每个安装包的大小呢?
我知道可以使用 --no-docs 选项并需要使用 --with-keep.source。
编辑:这是我的设置的快速研究:
我将我的库复制到了 /tmp/library
library(fs)
library(data.table)
library(stringr)
lib_dir <- "/tmp/library"
pkgs <- dir_ls(lib_dir)
dirs <- dir_info(pkgs, recurse = TRUE)[,1:3]
setDT(dirs)
dirs <- dirs[type != "directory"]
# ==> We can see files at the root of each library take 12M in aggreagte <==
dirs[depth == 4, .(size = sum(size))]
# size
# 1: 12M
dirs[, depth := str_count(path, "/")]
dirs[, pkg := file.path(lib_dir, str_match(path, sprintf("%s/(.*?)/.*", lib_dir))[,2L])]
dirs[depth > 4L, pkg_dir := str_match(path, sprintf("%s/(.*?)/.*", pkg))[,2L]]
# ==> The worst offenders are indeed libs, and lib is also large <==
dirs[depth > 4, .(size = sum(size)), pkg_dir][order(-size)][1:10]
# pkg_dir size
# 1: libs 610.77M
# 2: include 144.18M
# 3: doc 140.93M
# 4: lib 104.58M
# 5: R 91.31M
# 6: help 61.78M
# 7: html 51.02M
# 8: data 25.9M
# 9: java 11.74M
# 10: www 8.38M
接下来,我对libs
和lib
运行了strip --strip-debug
命令,得到了以下结果:
dirs[depth > 4, .(size = sum(size)), pkg_dir][order(-size)][1:10]
# pkg_dir size
# 1: include 144.18M
# 2: doc 140.93M
# 3: libs 95.24M
# 4: R 91.31M
# 5: help 61.78M
# 6: html 51.02M
# 7: data 25.9M
# 8: java 11.74M
# 9: www 8.38M
# 10: htmlwidgets 8.24M
通过上述示例,我有以下疑问: docs
似乎包含了可以使用 browseVignettes()
访问的小册子。虽然我不需要这些小册子,但我仍然需要 help("stuff")
起作用。
- 我是否可以使用
--no-docs
或--no-help
实现这一点(我尝试过运行R CMD INSTALL --no-docs --no-html xtable
,但仍会生成pdf和html文件)? - 是否还有其他东西可以保存而不失去基本功能?