install.pkg {mvbutils} | R Documentation |
These are convenient wrappers for R's package creation and installation tools. They are designed to be used on packages created from tasks via mvbutils
. However, the mvbutils
approach deliberately makes re-installation a rare event, and one call to install.pkg
might suffice for the entire life of a simple package. After that very first installation, you'd probably only need to call install.pkg
if (when...) new versions of R entail re-installation of packages, and build.pkg/build.pkg.binary/check.pkg
when you want to give your package to others, either directly or via CRAN etc. Set the argument intern=F
if you want to see progress on-screen (but the result won't be captured); if you can handle the disconcertingly blank wait, set intern=T
to get a character vector result. cull.old.builds
deletes ".tar.gz" and ".zip" files for versions before the current one (as determined by the versions set.rcmd.vars
does nothing (yet).
# Usually: build.pkg( mypack) etc install.pkg( pkg, character.only=FALSE, dir.above.source='+', lib=.libPaths()[1], flags=character(0), intern=TRUE) build.pkg( pkg, character.only=FALSE, dir.above.source='+', flags=character(0), intern=TRUE) build.pkg.binary( pkg, character.only=FALSE, dir.above.source='+', flags=character(0), intern=TRUE) check.pkg( pkg, character.only=FALSE, dir.above.source='+', build.flags=character(0), check.flags=character( 0), CRAN=FALSE, intern=TRUE) cull.old.builds( pkg, character.only=FALSE, dir.above.source='+') set.rcmd.vars( ...) # not yet implemented. If you need to set env vars eg PATH for R CMD to work, you have to do so yourself; see *Details*
See the examples
pkg |
usually an unquoted package name, but interpretation can be changed by non-default |
character.only |
default FALSE. If TRUE, treat |
dir.above.source |
where to look for source package; see |
intern |
?return the result as a character vector? (See |
lib |
where to install to; default is the same place R would install to, i.e. |
flags |
character vector, by default empty. Any entries should be function-specific flags, such as "–md5" for |
build.flags, check.flags |
as per |
CRAN |
if TRUE, set the |
... |
name-value pairs of system environment variables (not used for now) |
Before doing any of this, you need to have used pre.install
to create a source package. (Or patch.install
, if you've done all this before and just want to re-install/build/check for some reason.)
The only environment variable currently made known to R CMD is R_LIBS– let me know if others would be useful.
install.pkg
calls "R CMD INSTALL" to install from a source package.
build.pkg
calls "R CMD build" to wrap up the source package into a "tarball", as required by CRAN and also for distribution to non-Windows-and-Mac platforms.
build.pkg.binary
(Windows & Mac only) calls "R CMD INSTALL –build" to generate a binary package. A temporary installation directory is used, so your existing installation is not overwritten or deleted if there's a problem; R CMD INSTALL –build has a nasty habit of doing just that unless you're careful, which build.pkg.binary
is.
check.pkg
calls "R CMD check" after first calling build.pkg
(more efficiently, I should perhaps try to work out whether there's an up-to-date tarball already). It may also be possible to do some checks directly from R via functions in the utils package, but NB the possibility of interference with your current R session. For example, at one stage codoc
(which is the only check that I personally find very useful) tried to unload & load the package, which was very bad; but I think that may no longer be the case.
You may have to set some environment variables (eg PATH, and perhaps R_LIBS) for the underlying R CMD calls to work. Currently you have to do this manually— your .First
or .Rprofile
would be a good place. If you really object to changing these for the whole R session, let me know; I've left a placeholder for a function set.rcmd.vars
that could store a list of environment variables to be set temporarily for the duration of the R CMD calls only, but I haven't implemented it (and won't unless there's demand).
Perhaps it would be desirable to let some flags be set automatically, eg via something in the pre.install.hook
for a package. I'll add this if requested.
If intern=TRUE
: the stuff printed out, with class cat
so it prints nicely. If intern=FALSE
: various things about the paths (purely for my programming convenience).
## Not run: # First time package installation # Must be cd()ed to task above 'mvbutils' maintain.packages( mvbutils) pre.install( mvbutils) install.pkg( mvbutils) # Subsequent maintenance is all done by: patch.install( mvbutils) # For distro to build.pkg( mvbutils) # or on Windows (?and Macs?) build.pkg.binary( mvbutils) # If you enjoy R CMD CHECK: check.pkg( mvbutils) # will print "live" as it does them # If you want the results directly in R, and don't mind not seeing them "live": check.pkg( mvbutils, intern=T) # Also legal: build.pkg( ..mvbutils) # To do it under programmatic control for( ipack in all.my.package.names) build.pkg( char=ipack) ## End(Not run)