Learn R Programming

miniCRAN (version 0.2.4)

makeRepo: Downloads packages from CRAN to specified path and creates a local repository.

Description

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

Usage

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.

Repo folder structure

The folder structure of a repository
  • Root
  • src/contrib
  • PACKAGES

item

  • bin
  • macosx/contrib/version
  • macosx/mavericks/contrib/version
  • macosx/leopard/contrib/version

itemize

  • PACKAGES

See Also

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

Examples

Run this code
# Specify list of packages to download
revolution <- c(CRAN="http://cran.revolutionanalytics.com")
pkgs <- c("foreach")

pdb <- cranJuly2014

pdb <- pkgAvail(
    repos = c(CRAN="http://cran.revolutionanalytics.com"),
    type="source"
  )

pkgList <- pkgDep(pkgs, availPkgs = pdb, repos=revolution, type="source", suggests=FALSE)
pkgList


# 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)

Run the code above in your browser using DataLab