R: List Available Packages at CRAN-like Repositories

available.packages {utils} | R Documentation

## List Available Packages at CRAN-like Repositories

### Description

`available.packages` returns a matrix of details corresponding to packages currently available at one or more repositories. The current list of packages is downloaded over the internet (or copied from a local mirror).

### Usage

    available.packages(contriburl = contrib.url(repos, type), method,
                       fields = NULL, type = getOption("pkgType"),
                       filters = NULL, repos = getOption("repos"),
                       ignore_repo_cache =  FALSE, max_repo_cache_age,
                       ...)

### Arguments

`contriburl` | URL(s) of the ‘contrib’ sections of the repositories. Specify this argument only if your repository mirror is incomplete, e.g., because you burned only the ‘contrib’ section on a CD.
`method` | download method, see `download.file`.
`type` | character string, indicate which type of packages: see `install.packages`. If `type = "both"` this will use the source repository.
`fields` | a character vector giving the fields to extract from the ‘PACKAGES’ file(s) in addition to the default ones, or `NULL` (default). Unavailable fields result in `NA` values.
`filters` | a character vector or list or `NULL` (default). See ‘Details’.
`repos` | character vector, the base URL(s) of the repositories to use.
`ignore_repo_cache` | logical. If true, the repository cache is never used (see ‘Details’).
`max_repo_cache_age` | any cached values older than this in seconds will be ignored. See ‘Details’.
`...` | allow additional arguments to be passed from callers (which might be arguments to future versions of this function).

### Details

The list of packages is either copied from a local mirror (specified by a file:// URI) or downloaded. If downloaded and `ignore_repo_cache` is false (the default), the list is cached for the R session in a per-repository file in `tempdir()` with a name like

    repos_http%3a%2f%2fcran.r-project.org%2fsrc%2fcontrib.rds

The cached values are renewed when found to be too old, with the age limit controlled via argument `max_repo_cache_age`. This defaults to the current value of the environment variable R_AVAILABLE_PACKAGES_CACHE_CONTROL_MAX_AGE, or if unset, to `3600` (one hour).

By default, the return value includes only packages whose version and OS requirements are met by the running version of R, and only gives information on the latest versions of packages.

Argument `filters` can be used to select which of the packages on the repositories are reported. It is called with its default value (`NULL`) by functions such as `install.packages`: this value corresponds to `getOption("available_packages_filters")` and to `c("R_version", "OS_type", "subarch", "duplicates")` if that is unset or set to `NULL`.

The built-in filters are

`"R_version"`

  Exclude packages whose R version requirements are not met.

`"OS_type"`

  Exclude packages whose OS requirement is incompatible with this version of R: that is exclude Windows-only packages on a Unix-alike platform and vice versa.

`"subarch"`

  For binary packages, exclude those with compiled code that is not available for the current sub-architecture, e.g. exclude packages only compiled for 32-bit Windows on a 64-bit Windows R.

`"duplicates"`

  Only report the latest version where more than one version is available, and only report the first-named repository (in `contriburl`) with the latest version if that is in more than one repository.

`"license/FOSS"`

  Include only packages for which installation can proceed solely based on packages which can be verified as Free or Open Source Software (FOSS, e.g., https://en.wikipedia.org/wiki/FOSS) employing the available license specifications. Thus both the package and any packages that it depends on to load need to be known to be FOSS.

  Note that this does depend on the repository supplying license information.

`"license/restricts_use"`

  Include only packages for which installation can proceed solely based on packages which are known not to restrict use.

`"CRAN"`

  Use CRAN versions in preference to versions from other repositories (even if these have a higher version number). This needs to be applied before the default `"duplicates"` filter, so cannot be used with `add = TRUE`.

If all the filters are from this set, then they can be specified as a character vector; otherwise `filters` should be a list with elements which are character strings, user-defined functions or `add = TRUE` (see below).

User-defined filters are functions which take a single argument, a matrix of the form returned by `available.packages`, and return a matrix consisting of a subset of the rows of the argument.

The special ‘filter’ `add = TRUE` appends the other elements of the filter list to the default filters.

### Value

A matrix with one row per package, row names the package names and column names including `"Package"`, `"Version"`, `"Priority"`, `"Depends"`, `"Imports"`, `"LinkingTo"`, `"Suggests"`, `"Enhances"`, `"File"` and `"Repository"`. Additional columns can be specified using the `fields` argument.

Where provided by the repository, fields `"OS_type"`, `"License"`, `"License_is_FOSS"`, `"License_restricts_use"`, `"Archs"`, `"MD5sum"` and `"NeedsCompilation"` are reported for use by the filters and package management tools, including `install.packages`.

### See Also

`install.packages`, `download.packages`, `contrib.url`.

The ‘R Installation and Administration’ manual for how to set up a repository.

### Examples

    ## Not run:
    ## Restrict install.packages() (etc) to known-to-be-FOSS packages
    options(available_packages_filters =
      c("R_version", "OS_type", "subarch", "duplicates", "license/FOSS"))
    ## or
    options(available_packages_filters = list(add = TRUE, "license/FOSS"))

    ## Give priority to released versions on CRAN, rather than development
    ## versions on Omegahat, R-Forge etc.
    options(available_packages_filters =
         c("R_version", "OS_type", "subarch", "CRAN", "duplicates"))

    ## End(Not run)

[Package utils version 3.5.1 Index]