write_PACKAGES {tools} | R Documentation |
Generate PACKAGES Files
Description
Generate ‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ 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, rds_compress = "xz",
validate = FALSE)
Arguments
dir |
Character vector describing the location of the repository (directory including source or binary packages) to generate the ‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files from and write them to. |
fields |
a character vector giving the fields to be used in the
‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files in
addition to the default ones, or The default corresponds to
the fields needed by |
type |
Type of packages: currently source ‘.tar.{gz,bz2,xz}’ archives,
and macOS or Windows binary (‘.tgz’ or ‘.zip’,
respectively) packages are supported. Defaults to
|
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 names of subdirectories to include (which are not recursed). |
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. |
rds_compress |
The type of compression to be used for
‘PACKAGES.rds’: see |
validate |
a logical indicating whether ‘DESCRIPTION’ files should be validated, and the corresponding packages skipped in case this finds problems. |
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’, ‘PACKAGES.gz’
and ‘PACKAGES.rds’ files, where the first two represent the
information in DCF format, and the third serializes it via
saveRDS
.
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’ files.
Support for more general file names (e.g., other types of compression)
via a "File"
field in the ‘PACKAGES’ files 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’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ files from
this information.
For a remote repository there is a tradeoff between download speed and
time spent by available.packages
processing the
downloaded file(s). For large repositories it is likely to be
beneficial to use rds_compress = "xz"
.
Value
Invisibly returns the number of packages described in the resulting
‘PACKAGES’, ‘PACKAGES.gz’ and ‘PACKAGES.rds’ 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. See update_PACKAGES
for
efficiently updating existing ‘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)