R: Downloads packages from CRAN to specified path and creates a...

makeRepo {miniCRAN} | R Documentation

## 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 `utils::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

  - bin

    - windows/contrib/version

      - PACKAGES

    - macosx/contrib/version

      - PACKAGES

    - macosx/mavericks/contrib/version

      - PACKAGES

    - macosx/leopard/contrib/version

      - PACKAGES

### Note

Internally makes use of `utils::download.packages()` and `write_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"
      )

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

[Package miniCRAN version 0.2.10 Index]