Skip to content
Snippets Groups Projects
Commit 2537476f authored by thierry Balliau's avatar thierry Balliau
Browse files

test script install generaliste

parent 152b1005
No related branches found
No related tags found
No related merge requests found
### Script d'installation des dependances de MCQR avec R 4.1 pou la version 0.6.1 de MCQR
### Script d'installation de MCQR
## internal variable to modify depending on R version and current mcqr version
Rminrequirement <- "3.6.0"
packagesForOldVersion <- list()
packagesForOldVersion$R36 <- list()
packagesForOldVersion$R36 = list(c("name" = "caTools", "version" = "1.17.1.4"),c("name" = "quantreg", "version" = "5.85"))
packages = c("stringr", "readODS", "VIM", "reshape2", "ade4", "multcomp", "gplots", "clValid", "agricolae", "ggplot2", "RColorBrewer", "plotly", "plyr", "dplyr", "data.table", "nlme", "ggVennDiagram")
## internal function to ask for valdiation
## inspired from https://stackoverflow.com/questions/27112370/make-readline-wait-for-input-in-r
askValid <- function(){
raw <- "this is not a valid answer"
if(interactive()){
while(!(raw %in% c("n", "y", ""))){
raw <- readline("continue? (y/n (default y): ")
}
} else{
# non-interactive
while(!(raw %in% c("n", "y", ""))){
cat("continue? (y/n (default y): ");
raw <- readLines("stdin",n=1);
}
}
if (raw == "n"){
validation <- F
} else {
validation <- T
}
return(validation)
}
checkLibrary <- function(libraries){
result = TRUE
for(library in libraries){
if(!require(library['name'], character.only = TRUE)){
result = FALSE
}else{
detach(paste0("package:",library['name']), unload=TRUE, character.only = TRUE)
}
}
return(result)
}
checkLibraryAndInstallIt <- function(libraries){
result = TRUE
for(library in libraries){
if(!require(library['name'], character.only = TRUE)){
install_version(library['name'], library['version'])
}else{
detach(paste0("package:",library['name']), unload=TRUE, character.only = TRUE)
}
}
return(result)
}
checkPackageAndInstallIt <- function(libraries, osName){
result = TRUE
for(library in libraries){
if(!require(library, character.only = TRUE)){
if (osName=="windows"){
install.packages(library, type="binary")
}else{
install.packages(library)
}
}else{
detach(paste0("package:",library), unload=TRUE, character.only = TRUE)
}
}
return(result)
}
# Check environnment
os <- Sys.info()
cat("Operating System\n")
cat(paste0(os['sysname'], " ", os['release'], " ", os['version'], "\n"))
cat(paste0("Machine type : ", os['machine']))
### checking R version for listing of necessary packages
RVersion <- R.Version()
cat(paste0(RVersion$version.string, "\n"))
## specific installation depending on R version
if(as.integer(RVersion$major)<4){
if(as.integer(RVersion$major)<3){
stop(cat(paste0("Sorry your R version is too old for the MCQR Package, the minimum requirement is R version",Rminrequirement, "\n")))
}else{
if(as.double(RVersion$minor <0.6)){
stop(cat(paste0("Sorry your R version is too old for the MCQR Package, the minimum requirement is R version",Rminrequirement, "\n")))
}else{
## check if dependancies can be loaded
if(suppressWarnings(!checkLibrary(packagesForOldVersion$R36))){
cat("need some old version of package\n")
cat("installing remote package to get package from cran archive and load it\n")
install.packages("remotes")
library(remotes)
suppressWarnings(checkLibraryAndInstallIt(packagesForOldVersion$R36))
detach("package:remotes", unload=TRUE)
}else{
cat("no need special install\n")
}
}
}
}else{
cat("no need special install\n")
}
## check and install needed packages
cat("for windows install prefer binary install instead of source install\n")
test = suppressWarnings(checkPackageAndInstallIt(packages, os["sysname"]))
## install dependancies
install.packages(pkgs=c("stringr", "readODS", "VIM", "reshape2", "ade4", "multcomp", "gplots", "clValid", "agricolae", "ggplot2", "RColorBrewer", "plotly", "plyr", "dplyr", "data.table", "nlme", "ggVennDiagram"))
#Install MCQR
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment