| makeRepo {miniCRAN} | R Documentation |
Given a list of packages, downloads these packages to a specified destination folder using the required CRAN folder structure, and finally creates the PACKAGES index file. Since the folder structure mimics the required structure and files of a CRAN repository, it supports functions like utils::install.packages().
makeRepo(pkgs, path, repos = getOption("repos"), type = "source",
Rversion = R.version, download = TRUE, writePACKAGES = TRUE,
quiet = FALSE)
updateRepoIndex(path, type = "source", Rversion = R.version)
pkgs |
Character vector of packages to download |
path |
Destination download path. This path is the root folder of your new repository. |
repos |
URL(s) of the 'contrib' sections of the repositories, e.g. |
type |
Possible values are (currently) "source", "mac.binary" and "win.binary": the binary types can be listed and downloaded but not installed on other platforms. Passed to |
Rversion |
List with two named elements: |
download |
If TRUE downloads packages. |
writePACKAGES |
If TRUE, calls |
quiet |
If TRUE, suppress status messages (if any), and the progress bar during download. |
The folder structure of a repository
Root
src/contrib
PACKAGES
bin
windows/contrib/version
PACKAGES
macosx/contrib/version
PACKAGES
macosx/mavericks/contrib/version
PACKAGES
macosx/leopard/contrib/version
PACKAGES
Internally makes use of utils::download.packages() and write_PACKAGES()
Other update repo functions: addOldPackage,
addPackage, checkVersions,
updatePackages
# Specify list of packages to download
revolution <- c(CRAN = getOption("minicran.mran"))
pkgs <- c("foreach")
pdb <- cranJuly2014
## Not run:
pdb <- pkgAvail(
repos = c(CRAN = getOption("minicran.mran")),
type = "source"
)
## End(Not run)
pkgList <- pkgDep(pkgs, availPkgs = pdb, repos = revolution, type = "source", suggests = FALSE)
pkgList
## Not run:
# Create temporary folder for miniCRAN
dir.create(pth <- file.path(tempdir(), "miniCRAN"))
# Make repo for source and win.binary
makeRepo(pkgList, path = pth, repos = revolution, type = "source")
# List all files in miniCRAN
list.files(pth, recursive = TRUE)
# Check for available packages
pkgAvail(repos = pth, type = "source")
# Repeat process for windows binaries
makeRepo(pkgList, path = pth, repos = revolution, type = "win.binary")
pkgAvail(repos = pth, type = "win.binary")
# Delete temporary folder
unlink(pth, recursive = TRUE)
## End(Not run)