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)

Arguments

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. "http://cran.us.r-project.org". Passed to available.packages()

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 download.packages().

Rversion

List with two named elements: major and minor. If not supplied, defaults to system version of R, using R.version. Only used if type is not "source"

download

If TRUE downloads packages.

writePACKAGES

If TRUE, calls write_PACKAGES() to update the repository PACKAGES file.

quiet

If TRUE, suppress status messages (if any), and the progress bar during download.

Note

Internally makes use of utils::download.packages() and write_PACKAGES()

Repo folder structure

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

See also

Other update repo functions: addOldPackage, addPackage, checkVersions, updatePackages

Examples

# 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" ) # }
pkgList <- pkgDep(pkgs, availPkgs = pdb, repos = revolution, type = "source", suggests = FALSE) pkgList
#> [1] "foreach" "codetools" "iterators"
# 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) # }