help

Introduction

This vignette exists as help is limited by CRAN to 5 seconds runs, and it depends a lot on user’s connection. It will also explain the advance use of the package.

Using anyLib

Loading the package

To load anyLib, simply :

library(anyLib)

For the purpose of the demonstration, installations in this vignette are done in a dummy library:

lib <- normalizePath(tempdir(), "/")
f1 <- paste(lib, "folder1", sep = "/")
dir.create(f1)
.libPaths(f1)

Install and load 1 package

CRAN package

So, if one wants to install a simple CRAN package and load it, simply:

anyLib("apercu", lib = f1)
#> also installing the dependencies 'utf8', 'crayon', 'pillar', 'pkgconfig', 'pkgbuild', 'rprojroot', 'diffobj', 'rematch2', 'tibble', 'callr', 'pkgload', 'praise', 'processx', 'ps', 'waldo', 'pls', 'testthat'
#> Loading required package: apercu
#> apercu 
#>   TRUE

Source package

For a source package:

anyLib(system.file("dummyPackage_0.1.0.tar.gz", package = "anyLib"),
       source = TRUE, lib = f1, loadLib = f1)
#> Loading required package: dummyPackage
#> dummyPackage 
#>         TRUE

Bioconductor package

For a Bioconductor package:

anyLib("limma", lib = f1, loadLib = f1)
#> Error in loadNamespace(x) : there is no package called 'BiocManager'
#> Loading required package: limma
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'limma'
#> limma 
#> FALSE

github package

And for github, to install, one needs the name in the format “maintainerName/packageName”:

anyLib("achateigner/dummyPackage", force = TRUE, lib = f1, loadLib = f1)
#> Error in loadNamespace(x) : there is no package called 'devtools'
#> dummyPackage 
#>         TRUE

But to load it once installed, one only needs its name:

anyLib("dummyPackage", lib = f1, loadLib = f1)
#> dummyPackage 
#>         TRUE

Install and load a list of packages

To install and load a list of packages, from various places, with the names. I install them in a different folder:

f2 <- paste(lib, "folder2", sep = "/")
dir.create(f2)
anyLib(list("apercu", "limma", "achateigner/dummyPackage"), lib = f2,
       loadLib = f2)
#> Error in loadNamespace(x) : there is no package called 'BiocManager'
#> Error in loadNamespace(x) : there is no package called 'devtools'
#> Loading required package: apercu
#> Loading required package: limma
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'limma'
#> Loading required package: dummyPackage
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'dummyPackage'
#>       apercu        limma dummyPackage 
#>         TRUE        FALSE        FALSE

To install and load from a list of packages in an object:

f3 <- paste(lib, "folder3", sep = "/")
dir.create(f3)
packagesNeeded <- list("apercu", "limma", "achateigner/dummyPackage")
anyLib(packagesNeeded, lib = f3, loadLib = f3)
#> Error in loadNamespace(x) : there is no package called 'BiocManager'
#> Error in loadNamespace(x) : there is no package called 'devtools'
#> Loading required package: apercu
#> Loading required package: limma
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'limma'
#> Loading required package: dummyPackage
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'dummyPackage'
#>       apercu        limma dummyPackage 
#>         TRUE        FALSE        FALSE

Advanced options

If one wants to reinstall a package or force the update (force = TRUE), not update the Bioconductor packages (autoUpdate = FALSE), install in a different lib and load from a set of libs:

f4 <- paste(lib, "folder4", sep = "/")
dir.create(f4)
anyLib(packagesNeeded,
       force = TRUE,
       autoUpdate = FALSE,
       lib = f4,
       loadLib = c(f1, f4))
#> Error in loadNamespace(x) : there is no package called 'BiocManager'
#> Error in loadNamespace(x) : there is no package called 'devtools'
#> Loading required package: apercu
#> Loading required package: limma
#> Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
#> logical.return = TRUE, : there is no package called 'limma'
#> Loading required package: dummyPackage
#>       apercu        limma dummyPackage 
#>         TRUE        FALSE         TRUE