Generate PACKAGES
, PACKAGES.gz
and PACKAGES.rds
files for a repository of source or Mac/Windows binary packages.
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")
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.
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 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 of packages: currently source .tar.{gz,bz2,xz}
archives,
and macOS or Windows binary (.tgz
or .zip
,
respectively) packages are supported. Defaults to
"win.binary"
on Windows and to "source"
otherwise.
logical. Should packages be listed as they are processed?
a logical indicating whether the package contents are available in unpacked form or not (default).
either logical (to indicate if subdirectories should be included, recursively) or a character vector of names of subdirectories to include (which are not recursed).
logical: if multiple versions of a package are available should only the latest version be included?
logical: should the filenames be included as field
File in the PACKAGES
file.
The type of compression to be used for
PACKAGES.rds
: see saveRDS
. The default is the
one found to give maximal compression, and is as used on CRAN.
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.
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"
.
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.
# NOT RUN {
write_PACKAGES("c:/myFolder/myRepository") # on Windows
write_PACKAGES("/pub/RWin/bin/windows/contrib/2.9",
type = "win.binary") # on Linux
# }
Run the code above in your browser using DataLab