-
Notifications
You must be signed in to change notification settings - Fork 75
Open
Description
Context
I was playing around with the configuration options described here and trying to understand how the cache directory configuration is supposed to work, as setting them via options changes where they are stored, but pak's cache_* functions don't reflect that.
Setup:
> getOption('pkg.package_cache_dir')
[1] "/var/cache/pak/library"
> getOption('pkg.cache_dir')
[1] "/var/cache/pak/pkg"
> getOption('pkg.metadata_cache_dir')
[1] "/var/cache/pak/metadata"
> list.files("/var/cache/pak", recursive=T)
character(0)after installing some packages:
pak::pkg_install("dplyr")
> pak::pkg_install("dplyr")
! Failed to update system requirement mappings, will use cached mappings.
✔ Updated metadata database: 5.20 MB in 6 files.
✔ Updating metadata database ... done
→ Will install 15 packages.
→ Will download 15 packages with unknown size.
+ cli 3.6.5 [dl]
+ dplyr 1.1.4 [dl]
+ generics 0.1.4 [dl]
+ glue 1.8.0 [dl]
+ lifecycle 1.0.4 [dl]
+ magrittr 2.0.4 [dl]
+ pillar 1.11.1 [dl]
+ pkgconfig 2.0.3 [dl]
+ R6 2.6.1 [dl]
+ rlang 1.1.6 [dl]
+ tibble 3.3.0 [dl]
+ tidyselect 1.2.1 [dl]
+ utf8 1.2.6 [dl]
+ vctrs 0.6.5 [dl]
+ withr 3.0.2 [dl]
ℹ Getting 15 pkgs with unknown sizes
✔ Got lifecycle 1.0.4 (x86_64-pc-linux-gnu-ubuntu-22.04) (125.18 kB)
✔ Got generics 0.1.4 (x86_64-pc-linux-gnu-ubuntu-22.04) (82.34 kB)
✔ Got glue 1.8.0 (x86_64-pc-linux-gnu-ubuntu-22.04) (168.36 kB)
✔ Got pkgconfig 2.0.3 (x86_64-pc-linux-gnu-ubuntu-22.04) (18.20 kB)
✔ Got utf8 1.2.6 (x86_64-pc-linux-gnu-ubuntu-22.04) (151.76 kB)
✔ Got magrittr 2.0.4 (x86_64-pc-linux-gnu-ubuntu-22.04) (222.13 kB)
✔ Got pillar 1.11.1 (x86_64-pc-linux-gnu-ubuntu-22.04) (660.72 kB)
✔ Got tibble 3.3.0 (x86_64-pc-linux-gnu-ubuntu-22.04) (680.66 kB)
✔ Got cli 3.6.5 (x86_64-pc-linux-gnu-ubuntu-22.04) (1.33 MB)
✔ Got R6 2.6.1 (x86_64-pc-linux-gnu-ubuntu-22.04) (86.87 kB)
✔ Got withr 3.0.2 (x86_64-pc-linux-gnu-ubuntu-22.04) (224.16 kB)
✔ Got dplyr 1.1.4 (x86_64-pc-linux-gnu-ubuntu-22.04) (1.50 MB)
✔ Got tidyselect 1.2.1 (x86_64-pc-linux-gnu-ubuntu-22.04) (225.69 kB)
✔ Got vctrs 0.6.5 (x86_64-pc-linux-gnu-ubuntu-22.04) (1.32 MB)
✔ Got rlang 1.1.6 (x86_64-pc-linux-gnu-ubuntu-22.04) (1.60 MB)
✔ Downloaded 15 packages (8.39 MB) in 9.3s
✔ Installed cli 3.6.5 (251ms)
✔ Installed dplyr 1.1.4 (392ms)
✔ Installed generics 0.1.4 (510ms)
✔ Installed glue 1.8.0 (603ms)
✔ Installed lifecycle 1.0.4 (709ms)
✔ Installed magrittr 2.0.4 (801ms)
✔ Installed pillar 1.11.1 (968ms)
✔ Installed pkgconfig 2.0.3 (1.1s)
✔ Installed R6 2.6.1 (316ms)
✔ Installed rlang 1.1.6 (209ms)
✔ Installed tibble 3.3.0 (262ms)
✔ Installed tidyselect 1.2.1 (227ms)
✔ Installed utf8 1.2.6 (229ms)
✔ Installed vctrs 0.6.5 (223ms)
✔ Installed withr 3.0.2 (232ms)
✔ 1 pkg + 14 deps: added 15, dld 15 (8.39 MB) [47s] chosen cache directories listed with all files exists
> list.files("/var/cache/pak", recursive=T)
[1] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/cli_3.6.5.tar.gz"
[2] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/dplyr_1.1.4.tar.gz"
[3] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/generics_0.1.4.tar.gz"
[4] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/glue_1.8.0.tar.gz"
[5] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/lifecycle_1.0.4.tar.gz"
[6] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/magrittr_2.0.4.tar.gz"
[7] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/pillar_1.11.1.tar.gz"
[8] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/pkgconfig_2.0.3.tar.gz"
[9] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/R6_2.6.1.tar.gz"
[10] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/rlang_1.1.6.tar.gz"
[11] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/tibble_3.3.0.tar.gz"
[12] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/tidyselect_1.2.1.tar.gz"
[13] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/utf8_1.2.6.tar.gz"
[14] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/vctrs_0.6.5.tar.gz"
[15] "library/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/withr_3.0.2.tar.gz"
[16] "metadata/_metadata/CRAN-e992d6ade7/src/contrib/METADATA2.gz"
[17] "metadata/_metadata/CRAN-e992d6ade7/src/contrib/METADATA2.gz.etag"
[18] "metadata/_metadata/CRAN-e992d6ade7/src/contrib/PACKAGES.gz"
[19] "metadata/_metadata/CRAN-e992d6ade7/src/contrib/PACKAGES.gz.etag"
[20] "metadata/_metadata/pkgs-a38a46f50f.rds"
[21] "metadata/_metadata/PPM-49260a4dff/src/contrib/METADATA2.gz"
[22] "metadata/_metadata/PPM-49260a4dff/src/contrib/METADATA2.gz.etag"
[23] "metadata/_metadata/PPM-49260a4dff/src/contrib/PACKAGES.gz"
[24] "metadata/_metadata/PPM-49260a4dff/src/contrib/PACKAGES2.gz"
[25] "metadata/_metadata/RnD-fb5c089e8b/src/contrib/PACKAGES.gz"
[26] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/cli_3.6.5.tar.gz"
[27] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/dplyr_1.1.4.tar.gz"
[28] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/generics_0.1.4.tar.gz"
[29] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/glue_1.8.0.tar.gz"
[30] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/lifecycle_1.0.4.tar.gz"
[31] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/magrittr_2.0.4.tar.gz"
[32] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/pillar_1.11.1.tar.gz"
[33] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/pkgconfig_2.0.3.tar.gz"
[34] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/R6_2.6.1.tar.gz"
[35] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/rlang_1.1.6.tar.gz"
[36] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/tibble_3.3.0.tar.gz"
[37] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/tidyselect_1.2.1.tar.gz"
[38] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/utf8_1.2.6.tar.gz"
[39] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/vctrs_0.6.5.tar.gz"
[40] "pkg/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.5/withr_3.0.2.tar.gz" but pak::cache_* functions don't use those options
> pak::cache_summary()
$cachepath
[1] "/root/.cache/R/pkgcache/pkg"
$files
[1] 0
$size
[1] 0
Alternative
Looking through the source code, I noticed this in the pkgcache vendored code:
pak/src/library/pkgcache/R/cache-dirs.R
Lines 3 to 4 in 4c17d7a
| rdir <- Sys.getenv("R_USER_CACHE_DIR", "") | |
| cdir <- Sys.getenv("R_PKG_CACHE_DIR", "") |
root@b4efb3ea2368:~# export R_PKG_CACHE_DIR=/var/cache/pak
root@b4efb3ea2368:~# Rscript -e 'pak::cache_summary()'
$cachepath
[1] "/var/cache/pak/R/pkgcache/pkg"
$files
[1] 0
$size
[1] 0
So it looks like pkgdepends and pkgcache don't share the same logic to determine user-set config?
also willing to help sort this out, or extend this discussion to the specific pkg's repos if that makes this easier.
Thank you!
pak::pak_sitrep
> pak::pak_sitrep()
* pak version:
- 0.9.1
* Version information:
- pak platform: x86_64-pc-linux-musl (current: x86_64-pc-linux-gnu, compatible)
- pak repository: - (local install?)
* Optional packages installed:
- pillar
* Library path:
- /root/R/x86_64-pc-linux-gnu-library/4.5
- /opt/R/4.5.2/lib/R/library
* pak is installed at /root/R/x86_64-pc-linux-gnu-library/4.5/pak.
* Dependency versions:
- callr 3.7.6
- cli 3.6.5
- curl 5.2.3
- desc 1.4.3
- filelock 1.0.3
- jsonlite 2.0.0
- keyring 1.4.0.9000
- lpSolve 5.6.23
- pkgbuild 1.4.8
- pkgcache 2.2.4.9000
- pkgdepends 0.9.0.9000
- pkgsearch 3.1.5
- processx 3.8.6
- ps 1.9.1
- R6 2.5.1
- yaml 2.3.10
- zip 2.3.3
* Dependencies can be loaded
> Metadata
Metadata
Assignees
Labels
No labels