write_PACKAGES {tools} | R Documentation

## Generate PACKAGES files

### Description

Generate ‘PACKAGES’ and ‘PACKAGES.gz’ files for a repository of source or Mac/Windows binary packages.

### Usage

    write_PACKAGES(dir = ".", fields = NULL,
                   type = c("source", "mac.binary", "win.binary"),
                   verbose = FALSE, unpacked = FALSE, subdirs = FALSE,
                   latestOnly = TRUE, addFiles = FALSE)

### Arguments

`dir` | Character vector describing the location of the repository (directory including source or binary packages) to generate the ‘PACKAGES’ and ‘PACKAGES.gz’ files from and write them to.

`fields`

a character vector giving the fields to be used in the ‘PACKAGES’ and ‘PACKAGES.gz’ files in addition to the default ones, or `NULL` (default). The default corresponds to the fields needed by `available.packages`: `"Package"`, `"Version"`, `"Priority"`, `"Depends"`, `"Imports"`, `"LinkingTo"`, `"Suggests"`, `"Enhances"`, `"OS_type"`, `"License"` and `"Archs"`, and those fields will always be included, plus the file name in field `"File"` if `addFile = TRUE` and the path to the subdirectory in field `"Path"` if subdirectories are used.

`type` | Type of packages: currently source ‘.tar.{gz,bz2,xz}’ archives, and OS X or Windows binary (‘.tgz’ or ‘.zip’, respectively) packages are supported. Defaults to `"win.binary"` on Windows and to `"source"` otherwise.
`verbose` | logical. Should packages be listed as they are processed?
`unpacked` | a logical indicating whether the package contents are available in unpacked form or not (default).
`subdirs` | either logical (to indicate if subdirectories should be included, recursively) or a character vector of name of subdirectories to include.
`latestOnly` | logical: if multiple versions of a package are available should only the latest version be included?
`addFiles` | logical: should the filenames be included as field File in the ‘PACKAGES’ file.

### Details

`write_PACKAGES` scans the named directory for R packages, extracts information from each package's ‘DESCRIPTION’ file, and writes this information into the ‘PACKAGES’ and ‘PACKAGES.gz’ files.

Including non-latest versions of packages is only useful if they have less constraining version requirements, so for example `latestOnly = FALSE` could be used for a source repository when foo_1.0 depends on R >= 2.15.0 but foo_0.9 is available which depends on R >= 2.11.0.

Support for repositories with subdirectories and hence for `subdirs != FALSE` depends on recording a `"Path"` field in the ‘PACKAGES’ file.

Support for more general file names (e.g., other types of compression) via a `"File"` field in the ‘PACKAGES’ file can be used by `download.packages`. If the file names are not of the standard form, use `addFiles = TRUE`.

`type = "win.binary"` uses `unz` connections to read all ‘DESCRIPTION’ files contained in the (zipped) binary packages for Windows in the given directory `dir`, and builds files ‘PACKAGES’ and ‘PACKAGES.gz’ files from this information.

### Value

Invisibly returns the number of packages described in the resulting ‘PACKAGES’ and ‘PACKAGES.gz’ files. If `0`, no packages were found and no files were written.

### Note

Processing ‘.tar.gz’ archives to extract the ‘DESCRIPTION’ files is quite slow.

This function can be useful on other OSes to prepare a repository to be accessed by Windows machines, so `type = "win.binary"` should work on all OSes.

### Author(s)

Uwe Ligges and R-core.

### See Also

See `read.dcf` and `write.dcf` for reading ‘DESCRIPTION’ files and writing the ‘PACKAGES’ and ‘PACKAGES.gz’ files.

### Examples

    ## Not run:
    write_PACKAGES("c:/myFolder/myRepository")  # on Windows
    write_PACKAGES("/pub/RWin/bin/windows/contrib/2.9",
                   type = "win.binary")  # on Linux

    ## End(Not run)

[Package tools version 3.3.0 Index]