Yes, that makes much more sense. I guess I asked the question much earlier than I should. Actually I made a fresh install of R, and then installed pak as the first package. Then pak_setup created copies of them, and hence I was worried about space problem and created the topic. Then, while installing other packages later on, this didn't repeat.
I've two questions based on your reply.
First, I can see that the private library contains 40 packages, as opposed to 43 as indicated in your answer.
pak_revcursive_dependencies <- tools::package_dependencies(packages = 'pak',
recursive = TRUE)$pak
installed_packages <- as.data.frame(x = installed.packages())
installed_base_packages <- installed_packages[installed_packages$Priority %in% "base",][,1]
(expected_packages_in_private_library <- pak_revcursive_dependencies[!(pak_revcursive_dependencies %in% installed_base_packages)])
#> [1] "assertthat" "base64enc" "callr" "cli" "cliapp"
#> [6] "crayon" "curl" "desc" "filelock" "glue"
#> [11] "jsonlite" "lpSolve" "pkgbuild" "pkgcache" "prettyunits"
#> [16] "processx" "ps" "R6" "rematch2" "rprojroot"
#> [21] "tibble" "fansi" "prettycode" "progress" "selectr"
#> [26] "withr" "xml2" "digest" "rappdirs" "rlang"
#> [31] "uuid" "magrittr" "backports" "pillar" "pkgconfig"
#> [36] "utf8" "hms" "stringr" "Rcpp" "stringi"
Created on 2019-03-01 by the reprex package (v0.2.1)
These are the packages I find in the private library. Am I missing something to make a dumb question once again?
Second, you said that pak will update the private library itself as required. So, does that mean that I won't need to run pak_setup even when one of these dependencies get updated?